Ř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
DMA
STOP
SYSTÉMOVÉ ČINNOSTI
Start Halt
WAIT
NOP FETCH
INT
Graf stavů počítače OBNOVA DRAM E1 E2 E3
PROVEDENÍ INSTRUKCE
VÝPOČET ADRESY OPERANDU
NEPŘÍMÁ ADRESA
ČTENÍ OPERANDU
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 IRQ1 IRQ . 2 ..
adresa Řadič přerušení
Zdroj přerušení
Adresová sběrnice adresa
Přerušovací místa 5 6 v paměti 7 8 9
obsah
IRQ
i
i
JSB A6 JSB A7
...
1. Dokončení instrukce 2. Vnucení adresy zdroje INT 3. Spuštění cyklu FETCH
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 IRQ1 IRQ . 2 ..
instrukce Řadič přerušení
Zdroj přerušení
Datová sběrnice
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.
IRQ0 IRQ1 IRQ2 . ..
Řadič přerušení
Datová sběrnice vektor přerušení
Obvod pro obsluhu přerušení
Zdroj přerušení
i
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 PAMĚT ŽÁDOSTÍ IRQ
0
&
&
.. .
& .. .
REGISTR m 0 m1 m2 . . . MASKY
INT0
&
INT 1
D
&
INT2
R
.. .
R D
IAK1 IRQ 2
&
D IAK 0
IRQ1
IEN
R
IAK 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.
1
A
J
1
B
J
C
J
K
K
K
CK
CK
CK
CLK a)
1
0
0 1 1 1 0 0 0 0 0 1 1
0 0 1 1 1 0 0 1 0 0 1
3
0 0 0 1 1 1 0 0 1 1 0
(0) (1) b) (3) (7) (6) (4) (0) (2) (4) (5) (6)
7
4
6
5
2
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ů
0 1 0 CLK
0 0 0
OSCILÁTOR
T0 T1 T2 T3 T4 T5
0 T6 0 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ů T0 až T7 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
AC=0
Jednoduchý procesor P1
C (ADD) 0 C1 (AND) C2 (CPL)
ALU AC
C12
C5
C6
C (READ) C (WRITE) 3 4
M
DR
C 11
C8
C7 PC
IR
AR C10
C9
ŘADIČ AC=0
C0 C1 C2 .. . 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ů T0 T1 T2 T3 T4 T5 T6 T7 LOAD
Obvodový řadič P1
NAČTENÍ INSTRUKCE
STORE ADD AND DEKODÉR JMP JMPZ INSTRUKCE CMP RSHIFT
Enable
OVF
. . . KOMBINAČNÍ OBVOD
. . .
PROVEDENÍ INSTRUKCE
... IR
Stavové bity AC=0 Z
C C C 0 1 2
... C 12
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
c8 c7 c6 c5 c4 c3 c2 c1 c0 řídicí signály
a2 a1 a0 adresa
vnější podmínka
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 c8 c7 c6 c5 c4 c3 c2 c1 c0
funkce:
řízení operací
a2 a1 a0
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
S Z C O
Mapování (LUT)
Zásobník návratových adres
Adresový MX
CMAR INC
Logika skoků
Tvorba příští adresy
Řídicí paměť
µ 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 C0
X1 C1
X2 C2
X3
Řízený spínač
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 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
R ← X0 R ← X1 R ← X2 R ← X3 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 log2(n+1) bitů Nevýhoda: nutnost dekódovat, tj. zpoždění 33
řídicí bity ... ... 2 1 0
řídicí vodiče a) horizontální řídicí bity zakódované do polí
Formáty mikroinstrukcí
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í I1, I2, ..., Im definovaných pro daný procesor. Každá mikroinstrukce určuje podmnožinu řídicích vodičů c1, c2, ..., cn, 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 Ci je nejbližší větší přirozené číslo k log2(|Ci|+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. I0 = a, b, c, g; I1 = a, d, f; I2 = a, e, c, h; I3 = 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í:
d a
třída e
b
a NOP f
c
c e b d NOP f g h NOP NOP
g h
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).
Hm
adresa log 2
H m
řízení
Hm
adresa ukazat
řízení
log H 2 m
N
log H 2 n
a) organizace 'mikro' Hn
ří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