C. Ř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) řízení — „vlastní řadičÿ mikroprogramovaný řadič – horizontální – horizontální / vertikální • klasický řadič – s řídicími řetězci – na bázi čítače • mikroprogramovaný versus klasický řadič
• • • • • • •
JPO 2005/6
c A. Pluháček 20.3.2006
ř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. JPO 2005/6
C1
c A. Pluháček 20.3.2006
základní cyklus počítače
i
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í • 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
JPO 2005/6
C2
c A. Pluháček 20.3.2006
operace
operace (některé): • přesuny • zásobník (rostoucí nahoru) zápis (PUSH): čtení (POP): SP++ (preinkrementace) SP → adresa HP data (z registru) → data HP čtení SP → adresa HP data (z HP) → registr zápis SP−− (postdekrementace) • aritmetické a logické operace • skoky: – efektivní adresa → PC • skoky do podprogramu (při použití zásobníku): – PC → zásobník (uložení návratové adresy) — (jako PUSH) – efektivní adresa → PC (skok) • návrat z podprogramu (při použití zásobníku): – zásobník → PC — (jako POP) JPO 2005/6
C3
c A. Pluháček 20.3.2006
přerušení
přerušení: • synchronní – 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. • 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í JPO 2005/6
C4
c A. Pluháček 20.3.2006
obsluha přerušení
i
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 JPO 2005/6
C5
c A. Pluháček 20.3.2006
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í
JPO 2005/6
C6
c A. Pluháček 20.3.2006
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
JPO 2005/6
C7
c A. Pluháček 20.3.2006
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.
JPO 2005/6
C8
c A. Pluháček 20.3.2006
příklad — čtení instrukce
i
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 . JPO 2005/6
C9
c A. Pluháček 20.3.2006
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) JPO 2005/6
C 10
c A. Pluháček 20.3.2006
příklad — čtení instrukce
JPO 2005/6
C 11
iii
c A. Pluháček 20.3.2006
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 .. .
JPO 2005/6
č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
C 12
c A. Pluháček 20.3.2006
příklad — čtení instrukce
JPO 2005/6
C 13
v
c A. Pluháček 20.3.2006
ří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 JPO 2005/6
C 14
c A. Pluháček 20.3.2006
mikroprogramovaný řadič — horizontální
JPO 2005/6
C 15
i
c A. Pluháček 18.4.2006
MR MW WIR1 WIR2 WIR3 PCA PCINC .. .
příklad — část µprogramu
.. . M3 M2 M4 M20 M6 M5 M30 M7 M1 .. .
.. . 120 121 122 123 124 125 126 127 128 .. .
JPO 2005/6
... 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 1 0 0 1
? ? ? ? ? ? ? ? ? ? ? ? 0 0 0 0 0
...
1
adr .. . 1 . . . 122 0 . . . 120 0 . . . 125 ? . . . ??? 1 . . . 126 0 . . . 124 ? . . . ??? ? . . . ??? 0 . . . 121 .. .
C 16
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 2.6.2006 (opraveno)
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 !!! JPO 2005/6
C 17
c A. Pluháček 20.3.2006
mikroprogramovaný řadič — horizontální
JPO 2005/6
C 18
iii
c A. Pluháček 18.4.2006
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)
JPO 2005/6
α
C 19
c A. Pluháček 20.3.2006
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č JPO 2005/6
C 20
c A. Pluháček 20.3.2006
klasický řadič vývojový diagram ∼ graf přechodů ⇒ sekvenční obvod Příklad:
JPO 2005/6
C 21
c A. Pluháček 20.3.2006
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
JPO 2005/6
C 22
i
?
c A. Pluháček 20.3.2006
klasický řadič — řadič s řídicími řetězci
ii
použití grafu přechodu jako „mezistupněÿ není nutné:
JPO 2005/6
C 23
c A. Pluháček 20.3.2006
klasický řadič — řadič na bázi čítače
i
• čí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
JPO 2005/6
C 24
c A. Pluháček 20.3.2006
příklad — čtení instrukce
JPO 2005/6
C 25
v
c A. Pluháček 20.3.2006
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í:
JPO 2005/6
M2 M3 M5 M6 .. .
& & & &
stav 0. . . 0001 0. . . 0010 0. . . 0011 0. . . 0100 0. . . 0101 0. . . 0110
WAIT I1B WAIT OZ7
C 26
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 20.3.2006
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í JPO 2005/6
C 27
c A. Pluháček 20.3.2006