Řadiče. INP 2008 FIT VUT v Brně



Podobné dokumenty
Princip funkce počítače

Strojový kód. Instrukce počítače

Architektury počítačů a procesorů

Pohled do nitra mikroprocesoru Josef Horálek

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Principy počítačů I - Procesory

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

3. Počítačové systémy

Principy komunikace s adaptéry periferních zařízení (PZ)

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Přerušovací systém s prioritním řetězem

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Řízení IO přenosů DMA řadičem

Procesor. Procesor FPU ALU. Řadič mikrokód

Počítač jako prostředek řízení. Struktura a organizace počítače

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Paměti a jejich organizace

Metody připojování periferií BI-MPP Přednáška 2

Vstupně - výstupní moduly

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

Komunikace procesoru s okolím

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Profilová část maturitní zkoušky 2014/2015

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

Paměťový podsystém počítače

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

Systém řízení sběrnice

Struktura a architektura počítačů (BI-SAP) 7

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. 25

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Systém adresace paměti

SEKVENČNÍ LOGICKÉ OBVODY

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Architektura počítačů

Periferní operace využívající přerušení

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Periferní operace využívající přerušení

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Pokročilé architektury počítačů

Technické prostředky počítačové techniky

Přerušení na PC. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení

Architektury CISC a RISC, uplatnění v personálních počítačích

ASYNCHRONNÍ ČÍTAČE Použité zdroje:

Periferní operace využívající přerušení

Struktura a architektura počítačů (BI-SAP) 9

Procesory, mikroprocesory, procesory na FPGA O. Novák, CIE 11 1

Přerušovací systém 12.přednáška

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Profilová část maturitní zkoušky 2015/2016

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

C2115 Praktický úvod do superpočítání

Jak do počítače. aneb. Co je vlastně uvnitř

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

Vstupně výstupní moduly. 13.přednáška

Mikrokontroléry. Doplňující text pro POS K. D. 2001

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

3. Sekvenční logické obvody

Principy činnosti sběrnic

Pohled do nitra mikroprocesoru

PROCESOR. Typy procesorů

Struktura a architektura počítačů (BI-SAP) 10

Algoritmizace a programování

OPS Paralelní systémy, seznam pojmů, klasifikace

Architektura počítačů Implementace procesoru

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

Systémová sběrnice, souvislost architektury počítače a systémové

3. Principy komunikace s perifériemi: V/V brány, programové řízení, přerušení, řešení priorit. Řadiče, DMA kanály. Popis činnosti DMA kanálu.

Úvod do problematiky návrhu počítačových systémů. INP 2008 FIT VUT v Brně

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Architektura počítačů

5. Sekvenční logické obvody

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. L322

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Architektura procesoru ARM

V 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a

Témata profilové maturitní zkoušky

BI-JPO (Jednotky počítače) Cvičení

Pozice sběrnice v počítači

Periferní operace využívající přímý přístup do paměti

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ. MEIII Paměti konstant

Návrh asynchronního automatu

Procesor z pohledu programátora

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Architektura Intel Atom

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4

Architektura počítače

řadič počítače část(jednotka) počítače/procesoru,

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Provádění instrukcí. procesorem. Základní model

PRINCIPY POČÍTAČŮ Metodický list číslo 1

Transkript:

Řadiče INP 2008 FIT VUT v Brně 1

Hlavní funkce řadiče interpretace instrukcí dekódování a provedení krokování instrukcí vytváření toku instrukcí řízení systémových procesů přerušení, obsluha RVP cache, řízení segmentace a stránkování, atd. Řadič uvedený ve struktuře von Neumannova počítače se ve skutečnosti realizuje jako centrálněřízená soustava místních řadičů, které mají svoje funkce rozdělené a specializované. Centrální řadič Místní řadič 1. Místní řadič 2.... Místní řadič N. 2

Soustava místních řadičů počítače řadič provedení instrukce ALU s pevnou řádovou čárkou včetně výpočtu efektivní adresy operandu, řízení algoritmu operace, vyhodnocení podmínky skoku apod. řadič provedení instrukce FPU s pohyblivou řádovou čárkou řadič přerušení řadič vstup-výstupních operací, který má u počítače s nezávislými I/O kanály podobu řadiče kanálu řadič paměti M řadič kanálu přímého přístupu k paměti M (DMA - Direct Memory Access) řadiče jednotlivých periferních zařízení U některých procesorů jsou definovány i další typy řadičů, jako systémový řadič, který generuje systémové hodinové impulsy a nastavuje jednotlivé stavy počítače, řadič sběrnice apod. 3

SYSTÉMOVÉ ČINNOSTI STOP Halt Start DMA NOP Graf stavů počítače OBNOVA DRAM E 1 E 2 E 3 WAIT PROVEDENÍ INSTRUKCE FETCH ČTENÍ OPERANDU INT VÝPOČET ADRESY OPERANDU NEPŘÍMÁ ADRESA Podle typu cyklu, který počítač právě provádí, můžeme pojmenovat jednotlivé stavy počítače a pomocí grafu přechodů popsat na této úrovni chování počítače (viz obrázek). Automat s popsaným chováním realizujeme buďto po binárním zakódování jednotlivých stavů, nebo po zakódování kódem 1 z n (single-hot, single-fire). 4

Přerušení Přerušení bylo u počítačů zavedeno pro ošetření nestandardních situací, jako dělení nulou chyba v datech přečtených z paměti M výpadek síťového napájení připravenost diskové jednotky číst nebo zapsat blok dat přeplnění disku síťového serveru výpadek bloku dat RVP (cache miss) atd. Má-li se přerušení správně obsloužit, musí se v první řadě správně identifikovat zdroj a typ přerušení, a pak spustit příslušná obslužná rutina. Klasifikace přerušení podle typu není zcela ustálená, a proto u různých typů procesorů můžeme nacházet terminologické i principiální rozdíly. 5

Klasifikace přerušení (1) Podle typu zdroje rozeznáváme přerušení programové, vyvolané prováděním instrukcí, např. instrukcí INTn, přeplněním při sčítání, dělením nulou, neexistující adresou paměti apod. technické, vyvolané poruchou některé jednotky, výpadkem napájení, překročením časového limitu (watchdog) atd. vstup-výstupní, jako přerušení od časovače, připravenost V/V operace, zpráva z počítačové sítě aj. Přerušení tedy můžeme rozdělit na vnitřní a vnější, nebo z hlediska jejich synchronismu s hodinovým taktem procesoru na synchronní (trap), např. při krokování instrukcí asynchronní (interrupt) hlášení výjimek (exceptions) 6

Klasifikace přerušení (2) Z hlediska naléhavosti rozlišují některé procesory přerušení maskovatelná nemaskovatelná U procesorů INTEL se rozlišují přerušení a výjimky. přerušení se používá pro ošetření asynchronních vnějších událostí a výjimky zpracovávají závady instrukcí (faults). Výjimky se dále dělí na selhání (faults), trapy a aborty. Selhání jsou výjimky, které se detekují a obslouží před provedením selhávající instrukce. Selhání může nastat u virtuálního paměťového systému, když se žádá přístup do stránky nebo segmentu, který není k dispozici. Operační systém přenese stránku nebo segment z disku, a pak se instrukce znovu spustí. Trapy jsou výjimky, které se hlásí okamžitě po provedení instrukce, která způsobila problém. Příkladem jsou uživatelem definovaná přerušení. Aborty jsou výjimky, které neumožňují přesnou lokalizaci instrukce, která způsobila výjimku. Aborty se používají k hlášení vážných chyb, jako obvodových závad nebo nesprávných hodnot v systémových tabulkách. 7

Mechanismy přerušení Vlastní mechanismus přerušení může být založen na vnucení adresy (do registru MAR) vnucení instrukce (do registru IR) vnucení vektoru Dále se setkáme s dělením přerušení na vektorové a nevektorové. 8

Vnucení přerušovací adresy MAR IRQ 0 IRQ 1 IRQ 2. Řadič přerušení Přerušovací místa v paměti adresa 5 6 7 8 9 1. Dokončení instrukce... adresa Adresová sběrnice obsah JSB A6 JSB A7 2. Vnucení adresy zdroje INT 3. Spuštění cyklu FETCH IRQ i Zdroj přerušení i Každý zdroj přerušení je identifikován adresou, kterou je schopen při přerušení zaslat do procesoru. Tato adresa se zapíše do registru adresy paměti MAR. Následuje cyklus načtení instrukce z takto definovaného paměťového místa. Jsou-li přerušovacími adresami adresována sousední paměťová místa, bude toto místo většinou obsahovat skok do podprogramu obsluhy (JSB, CALL). 9

Vnucení adresy - poznámky U některých procesorů určují přerušovací adresy úseky po čtyřech, nebo po osmi paměťových místech. V takovém případě už tedy přerušovací adresa není úplná adresa paměťového místa a jde spíše o vektor přerušení. V úseku 4 nebo 8 adres může být v případě jednoduchých typů přerušení celá obslužná rutina. Při přerušení programu je obecně nutno uložit obsah programového čítače PC, příznakové bity (flagy) a obsahy registrů operandů pro pozdější pokračování přerušeného programu. V našem příkladě zajistí uložení obsahu PC a příznakových bitů instrukce CALL XX, obsahy registrů se musí uložit při provádění obslužné rutiny. U některých procesorů je popsaný proces zajištěn standardním úklidem stavového slova programu PSW. 10

Vnucení instrukce U některých procesorů bylo řešeno přerušení programu vnucováním celé instrukce, např. RST nnn, nebo CALL XX. Tuto instrukci zašle po datové sběrnici do procesoru jednotka vyžadující přerušení, případně řadič přerušení, který soustřeďuje žádosti ze všech přerušovacích zdrojů: IR IRQ 0 IRQ 1 IRQ 2. Řadič přerušení instrukce Datová sběrnice Zdroj přerušení i IRQ i V procesoru se instrukce vloží do instrukčního registru IR a spustí se její provedení. Obě uvedené instrukce jsou odkazem na začátek rutiny pro obsluhu přerušení a další postup je stejný jako u přerušení s vnucováním adresy. 11

Vnucení přerušovacího vektoru Vnucení přerušovacího vektoru je nejobvyklejší. Každý zdroj přerušení generuje přerušovacíčíslo, zvané vektor přerušení (např. 8 bitů), které je ukazatelem do tabulky počátečních adres přerušovacích rutin. Obsahem tabulky mohou být např. 4 byty čísla segmentu a adresy uvnitř segmentu, nebo 8 bytů, které se vloží do tabulky přerušovacího deskriptoru (I 80 286 a další) a definují tak začátek obslužné rutiny. IRQ 0 IRQ 1 IRQ 2. Řadič přerušení Datová sběrnice vektor přerušení Zdroj přerušení i Obvod pro obsluhu přerušení IRQ i TABULKA. vektor počáteční adresa. 12

Rozhodovací obvod - popis Pořadí důležitosti jednotlivých žádostí o přerušení je dáno jejich prioritou (IRQ0 má nejvyšší prioritu). Rozhodování o pořadí obsluhy provádí rozhodovací obvod (arbitr). Pro možné maskování (blokování) jednotlivých žádostí o přerušení IRQi (Interrupt Request) je doplněn programově přístupný registr masky přerušení. Dále jsou doplněny klopné obvody paměti žádostí, takže žádosti pak mohou mít impulsový průběh. Paměť žádosti se vynuluje signálem potvrzujícím přijetí přerušení IAKi (Interrupt Acknowledge), který je v tomto případě totožný se signálem přerušení INTi. 13

Rozhodovací obvod IRQ 0 & PAMĚT ŽÁDOSTÍ D IEN & INT 0 IRQ 1 & IAK 0 R D & INT 1 IRQ 2. REGISTR MASKY m m m 0 1 2 &.... IAK 1 IAK 2 R D R... &. INT 2 ROZHODOVACÍ OBVOD 14

Podpůrné obvody řadiče: Bezpečné čítače Vzhledem k tomu, že generátory hodinových impulsů jsou základem činnosti celého počítače, je snaha zmenšit možnost jejich selhání na minimum. Konstruují se proto jako bezpečné obvody, které se po zapnutí nebo při náhodném nastavení chybného stavu rychle vracejí do správné posloupnosti stavů. Příklad bezpečného čítače pracujícího v Johnsonově kódu a jeho graf přechodů se dvěma nekódovými počátečními stavy je uveden na obrázku. CLK 1 1 J K CK A a) J K CK B J K CK 0 1 3 7 6 4 0 0 0 (0) 1 0 0 (1) b) 1 1 0 (3) 1 1 1 (7) 0 1 1 (6) 0 0 1 (4) 0 0 0 (0) 0 1 0 (2) 0 0 1 (4) 1 0 1 (5) 1 1 0 (6) 5 2 C 15

Taktování řadiče V jednotlivých stavech (cyklech) se činnost realizuje v dílčích krocích, které jsou postupně spouštěny (synchronizovány) pomocí signálů hodinových taktů. Jeden cyklus může být rozdělen například na 8 taktů: T0 T1 T2 T3 T4 T5 T6 T7 T0 T1 T2 T3 T4 T5 T6 T7 T0 T1 T2... F - Fetch D - Decode E E1 - Execute 16

Generátor hodinových taktů CLK OSCILÁTOR 0 1 0 0 0 0 0 0 T0 T1 T2 T3 T4 T5 T6 T7 CLK posuvný registr Generátor hodinových taktů je založen na cirkulačním registru, ve kterém obíhá jedna jednička - uvedenéřešení však není bezpečné. Skupina osmi synchronizačních signálů T 0 až T 7 tvoří vlastně osmifázové hodiny. 17

Implementace řadiče Obvodový řadič Řadič je definován pomocí automatu a tento automat je implementován běžným způsobem. Mikroprogramový řadič Namísto řadiče je vytvořen malý procesor, který vykonává mikroprogramy. Vykonáním jednoho mikroprogramu je provedena jedna instrukce procesoru. 18

Jednoduchý procesor P1 C (READ) C (WRITE) 3 4 AC=0 C (ADD) 0 C 1 (AND) C 2 (CPL) ALU AC C 12 C 5 C 6 M DR C 7 C 8 C 11 AR PC C 9 C 10 AC=0 IR ŘADIČ C 0 C 1 C 2. 19

Řídicí signály jednoduchého procesoru P1 Podle funkce můžeme řídicí signály rozdělit na povely ALU, povely paměti M, povely hradlům a povely pro zápis do registrů. 20

Základem obvodového řadiče je dekodér instrukce, který se zapíná stavovým signálem fáze provedení instrukce EXECUTE. Vstupem do kombinačního obvodu jsou dekódované signály typu instrukcí, signály taktů a příznakové bity z procesoru. Realizace sekvenčního řadiče operací ALU kombinačním obvodem je častější, než realizace automatem. Realizace automatem se uplatňuje spíše u menších lokálních řadičů, jako je řadič sběrnice, řadič DMA atd. čítač taktů Obvodový řadič P1 NAČTENÍ INSTRUKCE PROVEDENÍ INSTRUKCE DEKODÉR INSTRUKCE Enable IR LOAD STORE ADD AND JMP JMPZ CMP RSHIFT. T0 T1 T2 T3 T4 T5 T6 T7 KOMBINAČNÍ OBVOD...... C C C C 0 1 2 12 Stavové bity AC=0 Z OVF. 21

Mikroprogramový řadič Konstrukce mikroprogramového řadiče a podpůrná disciplina mikroprogramování jsou velmi rozšířené postupy, které se po mnoho let staly převažující metodikou návrhu řadičů. Mikroprogramování je systematický postup, který za pomoci překladače mikroprogramů napsaných v mikroassembleru vytvoří binární obsah permanentní řídicí paměti, která je základem mikroprogramového řadiče. Převažující část problému syntézy řadiče operací procesoru je tak přesunuta na programovou úroveň, která byla v historii vybavena komfortními podpůrnými prostředky dříve, než disciplina obvodového návrhu. Mikroprogram slouží jako interpret instrukce v reálném čase. 22

Základní schéma mikroprogramového řadiče Paměť mikroprogramů. řídicí signály.. Datová část procesoru (Datapath) AR µι +1 Logika pro výběr adresy podmínka (příznakové bity) IR Začátek mikroprogramu zajišťujícího provedení určité instrukce se určí logikou pro výběr adresy podle kódu operace v IR. Jednotlivé mikroinstrukce se čtou z paměti mikroprogramů podle obsahu adresového registru mikroinstrukce AR µi v nejjednodušším případě sekvenčně, tedy adresa příští mikroinstrukce se určí ze současné adresy inkrementací. Jednotlivé bity mikroinstrukce jsou řídicí signály pro datovou část procesoru, tj. ALU, a dále M a I/O. 23

Wilkesovo schéma (1951) vnější zdroj adresy CMAR Řídicí paměť ROM DC bin / 1z8 S c c c c c c c c c a a a 8 7 6 5 4 3 2 1 0 2 1 0 řídicí signály vnější podmínka adresa Registr CMAR je adresový registr řídicí paměti (Control Memory Address Register), přepínač S (demultiplexor) řízený vnější podmínkou určuje adresu příští mikroinstrukce; buď je to 011, nebo 100. 24

Firmware Paměť mikroprogramů díky své pružnosti umožňuje poměrně rychlé a snadné modifikace, opravy a rozšiřování instrukčního souboru. Nejdříve šlo v podstatě o výměnu pouzder PROM nebo EPROM za pouzdra s novým obsahem. Obsah těchto pamětí je označen názvem firmware - něco mezi hardware a software, navíc je to firemní záležitost. Další zvýšení pružnosti paměti mikroprogramů bylo dosaženo konstrukcí zapisovatelné paměti mikroprogramů - Writable Control Store WCS. Místo prvků ROM je použito prvků RWM a je doplněna cesta pro vstup dat. Takovouto paměť měly např. počítače IBM System/370 jako standardní rys; využívala se po startu systému nejdříve pro uložení diagnostických mikroprogramů, které velmi podrobně a rychle provedly diagnózu systému. Teprve po úspěšném testu se zapsaly do řídicí paměti mikroprogramy pro standardní instrukční soubor. 25

Nevýhody mikroprogramování Mikroprogramovýřadič je pomalejší. O 10% u HP 2116 (obvodový řadič) vs HP 2100S (mikroprogramový řadič). Tato ztráta se však dalším technologickým vývojem brzy nahradila a výhody mikroprogramového řadiče na dlouhou dobu jednoznačně převážily. Zásah do mikroprogramů vyžaduje vysokou kvalifikaci a není to v žádném případě běžná uživatelská záležitost. Změna mikroprogramů oproti firemní verzi se uplatňovala pouze ve výjimečných situacích, jako při řešení závažného selhání systému vlivem poruchy a neměla trvalý charakter. U současných procesorů je paměť mikroprogramů pro uživatele nepřístupná. Mikroprogramy nejsou přemístitelné a optimalizace mikroprogramů z hlediska činnosti celého systému je náročná a dlouhodobá záležitost. Může totiž snadno dojít k potlačeníči přibrzdění některého podsystému, což se může projevit poklesem výkonnosti I/O podsystému, paměti M, přerušovacího systému atd. 26

Formát Wilkesovy mikroinstrukce c c c c c c c c c 8 7 6 5 4 3 2 1 0 a a a 2 1 0 funkce: řízení operací krokování sledu mikroinstrukcí Základní dvě funkce mikroinstrukčního řadiče jsou řízení operací, resp. mikrooperací a krokování sledu mikroinstrukcí. Kromě těchto funkcí musí mikroprogramový řadič obecně provádět tyto činnosti: přiřadit každé instrukci mikroprogram a provádět nepodmíněné i podmíněné skoky. K těmto funkcím se postupně přidaly další. 27

Obecný formát mikroinstrukce zdroj 1 zdroj 2 ALU cíl M R/W konst různé CC adresa modadr modadr Mikroinstrukce je tříadresová. Pole zdroj 1 a zdroj 2 určují vstupní operandy, pole ALU určuje operaci, cíl je adresa pro výsledek operace, polem M R/W se může spustit operace paměti M, konst je pole pro výběr konstant z permanentní paměti, zvláštní situace se mohou ošetřit v poli různé, adresa je pole udávající adresu příští mikroinstrukce, která se může dále modifikovat polem modadr. Tento formát je s jistými modifikacemi použit ve všech mikroprogramových řadičích. 28

Schéma rozšířeného mikroprogramového řadiče IR Mapování (LUT) Zásobník návratových adres Adresový MX CMAR S Z C O Logika skoků Řídicí paměť INC Tvorba příští adresy IR µ n Řídicí signály do ALU, M, I/O 29

Popis mikroprogramového řadiče Blok Mapování I je překladová tabulka LUT (Look-Up Table), která každému operačnímu znaku instrukce přiřadí počáteční adresu mikroprogramu. Je realizovaná rychlou permanentní pamětí ROM. Registr µir je datový registr, ve kterém se objevují postupně čtené mikroinstrukce. Část mikroinstrukce se podílí na řízení adresy příští mikroinstrukce prostřednictvím bloku Logika skoků, kde se testují příznakové bity S, Z, C, O atd. Registr CMAR plní společně s blokem inkrementace INC funkci čítače instrukcí PC. Pro odskok do podmikroprogramu je použit zásobník. Adresový multiplexor MX vytváří adresu příští mikroinstrukce, v tomto příkladě ze čtyř zdrojů. Adresa příští mikroinstrukce se tedy vytváří některým z těchto způsobů: - počáteční adresa systémového mikroprogramu po startu a vynulování počítače - počáteční adresa mikroprogramu podle IR - sekvenční adresace podle CMAR - adresa začátku podmikroprogramu - návratová adresa po ukončení podmikroprogramu - adresa podmíněného nebo nepodmíněného skoku 30

Další modifikace základního schématu Všechny modifikace se projevují na délce mikroinstrukce a ovlivňují velikost a cenu řídicí paměti. Hlavní faktory ovlivňující délku mikroinstrukce: Maximální počet současně prováděných mikrooperací, tj. stupeň paralelizmu požadovaný na mikrooperační úrovni. Způsob reprezentace řídicí informace, tj. její kódování Způsob určení adresy příští mikroinstrukce. 31

Kostra mikroprogramu Načtení I Test přerušení ano Adresa do MAR ne Interpretace OZ... Provedení I Konec provedení I, nastavení PC 32

Kódování povelů Př. Zápis do registru ze 4 nezávislých zdrojů X0 X1 X2 X3 Řízený spínač C0 C1 C2 C3 Registr R a) Nekódovaný formát (1 z N) b) Kódovaný formát (bin) C0 C1 C2 C3 K0 K1 K2 1 0 0 0 R X0 0 1 0 0 R X1 0 0 1 0 R X2 0 0 0 1 R X3 0 0 0 0 nop 0 0 1 R X0 0 1 0 R X1 0 1 1 R X2 1 0 0 R X3 0 0 0 nop log 2 (n+1) bitů Nevýhoda: nutnost dekódovat, tj. zpoždění 33

řídicí bity...... řídicí vodiče 2 1 0 a) horizontální Formáty mikroinstrukcí řídicí bity zakódované do polí Pole 2 Pole 1 DC 2 DC 1 DC 0......... řídicí vodiče b) formát s kódováním do polí jediné řídicí pole... DC... řídicí vodiče c) vertikální 34

Formáty mikroinstrukcí popis a) Horizontální, neboli dlouhý formát mikroinstrukce obsahuje přímo hodnoty řídicích signálů, které se dále nedekódují. Nárok na kapacitu permanentní paměti je nejvyšší, vybavování řídicích signálů probíhá s nejvyšší možnou rychlostí. Formát je nejpružnější, protože připouští jakoukoliv kombinaci současných řídicích signálů. b) Kódování do polí - jisté skupiny řídicích signálů jsou kódovány do společného pole. Výstupní kód dekodérů je 1 z n. Platí, že v jednom okamžiku se nemohou současně vytvořit dva řídicí signály, zakódované v jedné skupině odlišnými binárními kombinacemi. Odtud vyplývá pravidlo pro sdružování řídicích signálů do skupin (polí): do jedné skupiny můžeme zařadit jenom ty signály, které nejsou nikdy zapotřebí současně. Formát s kódováním do polí přináší značnou úsporu objemu řídicí paměti, v obvodech řídicí paměti však vzniká při dekódování mikroinstrukcí časové zpoždění. Z hlediska pružnosti existují v rozdělení do skupin omezení, která mohou později zabránit provést nepředpokládané modifikace. 35

Formáty mikroinstrukcí popis c) Vertikální formát je maximálně úsporný. Dekodér však musí být schopen generovat i současné řídicí signály. Celkový počet použitých binárních kombinací je tedy počet řídicích signálů vyskytujících se samostatně, plus počet různých dvojic současně se vyskytujících signálů, plus počet současných trojic, čtveřic, atd. Je zřejmé, že analýza současnosti řídicích signálů není jednoduchá. Navíc takto navržený dekodér je omezený, a nedovoluje další rozšiřování. 36

Optimalizace kódování mikroinstrukcí nižší úroveň Jak odvodit formát mikroinstrukce s kódováním do polí tak, aby celkový počet bitů v řídicích polích byl minimální? Předpokládejme množinu mikroinstrukcí I 1, I 2,..., I m definovaných pro daný procesor. Každá mikroinstrukce určuje podmnožinu řídicích vodičů c 1, c 2,..., c n, které musejí být aktivovány. Zakódované pole může aktivovat vždy jen jediný řídicí signál. Dva řídicí signály se mohou zařadit do stejného řídicího pole je tehdy, pokud se mikroinstrukcí nikdy neaktivují současně. Takovéřídicí signály se nazývají kompatibilní. Třída kompatibility je množina řídicích signálů, které jsou po dvojicích kompatibilní. Tedy řídicí signály zahrnuté do jednoho řídicího pole musí tvořit třídu kompatibility. Ke každé třídě kompatibility ještě musíme přidat jeden stav, protože v každém řídicím poli musí být možno zakódovat prázdnou operaci NOP. Minimální počet bitů potřebných k zakódování třídy kompatibility C i je nejbližší větší přirozenéčíslo k log 2 ( C i +1), kde C je počet prvků množiny C. Optimální kódování se hledá exaktními, nebo heuristickými metodami. Mezi heuristické metody patří např. metoda barvení grafu současnosti, ve kterém hrana mezi dvěma uzly odpovídajícími dvěma mikrooperacím vyznačuje současnost, tedy nekompatibilitu těchto operací. Dva uzly v grafu současnosti můžeme obarvit stejně tehdy, pokud není mezi nimi hrana. 37

Příklad optimálního kódování Jsou zadány čtyři instrukce a jejich mikrooperace. I 0 = a, b, c, g; I 1 = a, d, f; I 2 = a, e, c, h; I 3 = b, c, f. Máme najít jejich optimální kódování. Obrázek ukazuje graf současnosti mikrooperací, tedy jejich vzájemných neslučitelností: b c a d h g e f a NOP třída b e d f h g NOP NOP c NOP počet bitů: 1 2 2 1 38

Nanoprogramování (1) U některých počítačů (např. Motorola 68020) má mikroinstrukce funkci adresy do sekundárnířídicí paměti, zvané nanopaměť, ze které se teprve čtou řídicí signály. V takovém řadiči je tedy dvojúrovňový paměťový systém, přičemž na nižší úrovni se čtou řídicí nanoinstrukce. z IR Mikroinstrukční AR Nanoinstrukční AR Paměť mikroinstrukcí Paměť nanoinstrukcí Registr mikro-i Registr nanoinstrukcí... řídicí signály 39

Nanoprogramování (2) Koncept nanoprogramování se snaží snížit neefektivitu mikroprogramování způsobenou častým opakováním mikroinstrukcí v řídicí paměti. V nanopaměti je každá řídicí instrukce uložena pouze jedenkrát. V místě mikroinstrukce původního mikroprogramu je proto namísto celé mikroinstrukce uložen pouze ukazatel do nanopaměti, který má značně méně bitů, než původní mikroinstrukce => úspora paměti (desítky procent). H m adresa řízení H m adresa ukazat řízení log 2 H m N H m log 2 H log 2 n a) organizace 'mikro' H n řízení N b) organizace 'nano' 40

Poznámky Mikroprogramový řadič je často implementován jako řetězená jednotka Musí se řešit stejné problémy jako u řetězeného zpracování na úrovni instrukcí. Mikroprogramová realizace instrukcí je typická pro procesory se složitým instrukčním souborem (CISC). Pružnost této koncepce se přímo nabízí pro doplňování dalších složitějších funkcí. Typickou aplikací je realizace mikrodiagnostického systému, který se spustí po startu počítače a provede základní testy paměti M, procesoru, periferií apod. Často doplňovanými funkcemi jsou mikroprogramové realizace typických instrukčních posloupností generovaných překladači vyšších jazyků. Tyto prostředky přinášely zrychlení provádění programůřádově v jednotkách až desítkách procent. Emulace je napodobeníčinnosti jiné jednotky. V historii počítačů se používalo emulace např. pro náhradu paměti ROM, často se používala emulace terminálu. Nejsložitější emulační úloha je emulace instrukčního souboru procesoru. Pro vývoj nových struktur procesorů a pro hledání jejich optimálního instrukčního souboru se jako vývojový prostředek používal procesor s pružnou řídicí pamětí, která umožňovala dostatečně rychle měnit instrukční soubor a pracovat s ním (např. počítač Nanodata QM-1) 41