BI-JPO
(Jednotky počítače)
G. Řadiče
c doc. Ing. Alois Pluháček, CSc. 2010
Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
G. Řadiče úvod základní cyklus počítače (1) provádění některých operací přerušení základní cyklus počítače (2) demonstrační příklad řízení — „vlastní řadičÿ mikroprogramovaný řadič – horizontální – horizontální / vertikální • klasický (obvodový) řadič – s řídicími řetězci – na bázi čítače • mikroprogramovaný versus klasický řadič • • • • • • • •
BI-JPO
c A. Pluháček 2010
řadič
řadič počítače — část (jednotka) počítače/procesoru, která řídí činnost počítače
• řídicí část — „ jádro řadičeÿ . . . v podstatě „vlastní řadičÿ • datová část – registry PC — programový čítač adresa následující instrukce IR — registr instrukcí (instrukční registr) právě prováděná instrukce jiné, např: PSW - stavové slovo programu maska přerušení ∈ PSW (?) SP — ukazatel zásobníku bázové registry, indexregistry aj. – další potřebné obvody, např. ∗ dekodér operačního znaku ∗ čítače, sčítačka aj. BI-JPO
G–1
c A. Pluháček 2010
základní cyklus počítače
základní cyklus (instrukční cyklus) 1. počáteční nastavení zejm. PC a stav procesoru (např. maska přerušení) 2. čtení instrukce • PC → adresa HP • čtení (trvá: PC → adresa HP) • data → IR • PC+ l → PC, kde l je délka instrukce 3. dekódování operačního znaku (OZ) 4. provedení operace (včetně vyhodnocení efektivních adres, čtení operandů apod.) 5. ošetření příčiny přerušení 6. opakování od kroku 2
BI-JPO
G–2
c A. Pluháček 2010
operace • přesuny R1 → R2 – mezi registry 1 takt: otevřít cestu z výstupu R1 na vstup R2 zápis do R2
– z paměti do registru IR.adr → adresa HP IR.adr → adresa HP čtení z HP data HP → R – z registru do paměti IR.adr → adresa HP R → data HP IR.adr → adresa HP R → data HP zápis do HP BI-JPO
hIR.adri → R
předstih další takty konec
G–3
R → hIR.adri
předstih další takty
c A. Pluháček 2010
operace
ii
Časování (dělení do taktů) u dále uvedených operací je analogické jako v předchozích případech a nebude dále explicitně uváděno. • operace se zásobníkem „rostoucím nahoruÿ – zápis registru R (PUSH R) R → h++SPi: preinkrementace ++SP R → data HP SP → adresa HP zápis do HP
Æ
– čtení do registru R (POP R) SP → adresa HP čtení z HP data HP → R SP−− postdekrementace
hSP−−i → R:
Æ
• operace se zásobníkem „rostoucím dolůÿ místo preinkrementace se provádí predekrementace a místo postdekrementace se provádí postinkrementace BI-JPO
G–4
c A. Pluháček 2010
operace
iii
• aritmetické a logické operace operand(y) z paměti → registr(y), pokud je to třeba otevřít cesty z registrů na vstupy arit./log. jednotky zapsat výsledek • skoky IR.adr → PC • skoky do podprogramu (při použití zásobníku): – PC → zásobník (uložení návratové adresy) — (jako PUSH) – IR.adr → PC (skok) • návrat z podprogramu (při použití zásobníku): – zásobník → PC — (jako POP)
BI-JPO
G–5
c A. Pluháček 2010
přerušení
přerušení (výjimky): • synchronní — přerušení je důsledkem provádění nějaké instrukce • asynchronní — příčina přerušení s právě prováděnou instrukcí nesouvisí
• synchronní přerušení – vyvolané speciální instrukcí (INT, TRAP, SVC apod.) – vyvolané jinou instrukcí (v podstatě nežádoucí stav) ∗ dělení nulou ∗ přeplnění ∗ nedovolený operační znak (OZ) ∗ aj.
BI-JPO
G–6
c A. Pluháček 2010
přerušení
ii
• asynchronní – vnější ∗ způsobená periferními zařízeními ∗ požadavek operátora, jiného procesoru, od modemu apod. – vnitřní ∗ způsobená časovačem ∗ způsobená kontrolními obvody (tzv. „hlídačiÿ) ∗ výpadek napájení
BI-JPO
G–7
c A. Pluháček 2010
obsluha přerušení kontext = obsah PC + stav procesoru ∋ maska přerušení typ přerušení = jedna nebo více „příbuznýchÿ příčin
Obsluha přerušení
(na úrovni technického vybavení — HW) : 1. uložení dat přerušení • uložení „staréhoÿ kontextu — umožňuje pokračovat v přerušeném programu • uložení bližší specifikace příčiny přerušení 2. nastavení „novéhoÿ kontextu (podle typu přerušení) ad 1. uložení dat přerušení • na zásobník • na určené adresy — podle typu přerušení ad 2. nastavení „novéhoÿ kontextu • z tzv. vektorů přerušení — podle typu přerušení • jinak BI-JPO
G–8
c A. Pluháček 2010
obsluha přerušení
ii
uložení dat přerušení na zásobník a nastavení „novéhoÿ kontextu z vektorů přerušení
BI-JPO
G–9
c A. Pluháček 2010
základní cyklus počítače
ii
obsluha přerušení: asynchronní: na začátku (viz obr.) nebo na konci základního cyklu synchronní: v místě výskytu
BI-JPO
G – 10
c A. Pluháček 2010
základní cyklus počítače
iii
Poznámky k vývojovému diagramu: • Vývojový diagram je třeba modifikovat tak, aby vyhovoval požadovanému chování konkrétního procesoru a co nejvíce vyhovoval jeho realizaci. • V rámci realizace konkrétních operací se provádí také příp. čtení operandů a uložení výsledku; součástí těchto akcí může být i příp. vyhodnocení efektivních adres. •
Operační znak bývá dekódován postupně, např.:
– skupina aritmetických a logických operací se dekóduje společně; – přečtou se operandy; – dekóduje se a provede se konkrétní operace.
BI-JPO
G – 11
c A. Pluháček 2010
příklad — čtení instrukce předpokládané formáty instrukce:
sběrnice (podsběrnice): • adresová . . . SB.adr • datová . . . SB.dat — 8 bitů = 1B • řídicí řídicí signály: MR čtení z hlavní paměti MW zápis do hlavní paměti .. . stavové signály: WAIT operace s hlavní pamětí .. dosud neskončila . BI-JPO
G – 12
c A. Pluháček 2010
příklad — čtení instrukce
ii
předpokládaná struktura registru instrukcí:
registr instrukcí bude mít další potřebné výstupy WIR1, WIR2, WIR3 — řídicí signály (zápis do „podregistrůÿ IR1, IR2, IR3) BI-JPO
G – 13
c A. Pluháček 2010
příklad — čtení instrukce
BI-JPO
G – 14
iii
c A. Pluháček 2010
příklad — čtení instrukce
iv
řídicí signály:
MR MW WIR1 WIR2 WIR3 PCA PCINC .. .
stavové signály:
WAIT operace s hlavní pamětí dosud neskončila I1B 8bitová instrukce (1 B) OZ7 bit OZ v řádu 7 OZ6 bit OZ v řádu 6 .. .
BI-JPO
čtení z hlavní paměti zápis do hlavní paměti SB.dat → IR1 SB.dat → IR3 SB.dat → IR3 PC → SB.adr PC+1 → PC
G – 15
c A. Pluháček 2010
příklad — čtení instrukce
BI-JPO
G – 16
v
c A. Pluháček 2010
řízení — „vlastní řadičÿ
řadič — jednotka / sekvenční obvod výstupy: řídicí signály vstupy: stavové signály • řadič mikroprogramovaný (řízený mikroprogramem) – horizontální – vertikální – diagonální • řadič klasický, též obvodově realizovaný, popř. „obvodovýÿ – řadič s řídicími řetězci – řadič na bázi čítače – jinak navržený možná struktura mikroinstrukce: µOZ adr VP µOZ mikrooperační znak — hodnoty řídicích signálů adr adresa následující mikroinstrukce VP výběr podmínky BI-JPO
G – 17
c A. Pluháček 2010
mikroprogramovaný řadič — horizontální
BI-JPO
G – 18
c A. Pluháček 2010
MR MW WIR1 WIR2 WIR3 PCA PCINC .. .
příklad — část µprogramu
.. . M3 M2 M4 M20 M6 M5 M30 M7 M1 .. . BI-JPO
.. . 120 121 122 123 124 125 126 127 128 .. .
... 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1
? ? ? ? ? ? 0 0 0 0 0 0 1 0 0 1 0 1
? ? ? ? ? ? ? ? ? ? ? ? 0 0 0 0 0
...
1
adr .. . 1 . . . 122 0 . . . 120 0 . . . 125 ? . . . ??? 1 . . . 126 0 . . . 124 ? . . . ??? ? . . . ??? 0 . . . 121 .. .
G – 19
VP .. . 0A 09 00 ???
01 09
??? ???
00 .. .
VP podmínka 00 adr0 01 OZ 7 02 OZ 6 03 OZ 5 04 OZ 4 05 OZ 3 06 OZ 2 07 OZ 1 08 OZ 0 09 WAIT 0A I1B .. .. . .
c A. Pluháček 2010
mikroprogramovaný řadič — horizontální
ii
adresa následující µinstrukce ∈ prováděná µinstrukce • náhrada: 1 bit adresy násl. µinstr. ← podmínka (VP) =⇒ větvení až na 2 místa — sudá adresa a násl. lichá • náhrada: žádná (bit je „nahrazenÿ sebou samým) =⇒ žádné větvení (adresa následující µinstr. = adresa v prováděné µinstr.) • náhrada 2 bitů (viz násl. obr.) =⇒ větvení na 4 místa — adresa dělitelná 4 a tři adresy následující • náhrada 1 bitu =⇒ větvení na 2 místa (týž multiplexor) • náhrada žádného bit =⇒ bez větvení (týž multiplexor) • náhrada n bitů =⇒ větvení na 2 n míst • .. .
dekódování OZ: bity OZ ∈ stavové signály
n bitů OZ → větvení na 2 n míst POZOR: !!! instrukce 6= mikroinstrukce a OZ 6= µOZ !!! BI-JPO
G – 20
c A. Pluháček 2010
mikroprogramovaný řadič — horizontální
BI-JPO
G – 21
iii
c A. Pluháček 2010
mikroprogramovaný řadič — horizontální
iv
mikropodprogramy — návratová adresa: ⋄ Co je?
⋄ Kam s ní?
• SKOK do mikropodprogramu — jen ze sudé (příp. jen z liché) adresy α • NÁVRAT na adresu, která se od α liší posledním bitem • adresa α se ukládá do speciální tzv. zásobníkové paměti — LIFO (z té se čte vždy ta „nejmladšíÿ položka)
BI-JPO
G – 22
α
c A. Pluháček 2010
mikroprogramovaný řadič — horizontální / vertikální • horizontální – dlouhé mikroinstrukce (typicky ≥ 64b, např. 136b) – řídicí signály ∈ mikroinstrukce — µOZ – 1 mikroinstrukce . . . 1 takt – není třeba µprogr. čítač — adresa ∈ mikroinstr. • vertikální v podstatě velmi zjednodušený řadič počítače (jakoby malý počítač uvnitř daného počítače) – krátké mikroinstrukce (typicky 16b) – 1 mikroinstrukce . . . několik taktů: ∗ čtení µinstrukce −→ µprogramový čítač ∗ dekódování µOZ ∗ provedení µoperace • diagonální — kompromis – řídicí signály ∈ mikroinstrukce — µOZ – 1 mikroinstrukce . . . 1 takt – µprogramový čítač BI-JPO
G – 23
c A. Pluháček 2010
klasický řadič vývojový diagram ∼ graf přechodů ⇒ sekvenční obvod Příklad:
BI-JPO
G – 24
c A. Pluháček 2010
klasický řadič — řadič s řídicími řetězci sekvenční obvod — ? kódování vnitřních stavů kód 1 z n −→ řadič s řídicími řetězci
BI-JPO
G – 25
?
c A. Pluháček 2010
klasický řadič — řadič s řídicími řetězci
ii
použití grafu přechodu jako „mezistupněÿ není nutné:
BI-JPO
G – 26
c A. Pluháček 2010
klasický řadič — řadič na bázi čítače • čítač umožňující přednastavování • kombinační část: – dekodér − řídicí signály – ovládání čítače (přednastavit, nečítat apod.) Příklad — čtení instrukce ovládání (výstupy): STOP . . . nečítat N20 . . . nastavit na 20 apod. jinak . . . čítat
BI-JPO
G – 27
c A. Pluháček 2010
příklad — čtení instrukce
BI-JPO
G – 28
v
c A. Pluháček 2010
klasický řadič — řadič na bázi čítače
1, 2, 3, . . .
∼
M1, M2, M3, . . . (po řadě)
dekodér (pravdivostní tabulka):
M1 M2 M3 M4 M5 M6 ovládání:
BI-JPO
M2 M3 M5 M6 .. .
& & & &
stav 0. . . 0001 0. . . 0010 0. . . 0011 0. . . 0100 0. . . 0101 0. . . 0110
WAIT I1B WAIT OZ7
G – 29
MR MW WIR1 WIR2 WIR3 PCA PCINC .. .
stavy čítače:
ii
0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0
... ... ... ... ... 0 0 0 0 0 0 1 ...
STOP N20 STOP N30 .. . c A. Pluháček 2010
mikroprogramovaný versus klasický řadič rychlost — rychlejší: klasický řadič cena levnější: • velmi jednoduché řízení — klasický řadič • jinak — mikroprogramovaný řadič flexibilita flexibilnější: mikroprogramovaný řadič změna mikroprogramu ⇒ změna chování procesoru řídicí paměť • ROM • RWM (alias RAM) — snadná emulace
emulace: simulace procesoru na jiném procesoru
mikroprogramovými prostředky firmware = mikroprogramové vybavení software = programové vybavení hardware = technické vybavení BI-JPO
G – 30
c A. Pluháček 2010