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 nabá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...vpodstatě 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 adresahp čtení (trvá: PC adresa HP) data IR PC+ l PC,kde ljedélkainstrukce 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íodkroku2 BI-JPO G 2 c A.Pluháček 2010
operace přesuny meziregistry R1 R2 1takt:otevřítcestuzvýstupuR1navstupR2 zápisdor2 zpamětidoregistru IR.adr R IR.adr adresa HP předstih IR.adr adresahp dalšítakty čtenízhp datahp R konec zregistrudopaměti R IR.adr IR.adr adresa HP předstih R datahp IR.adr adresahp dalšítakty R datahp zápisdohp BI-JPO G 3 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. operacesezásobníkem rostoucímnahoru zápisregistrur(pushr) ++SP Æ preinkrementace R datahp SP adresahp zápisdohp čtenídoregistrur(popr) SP adresahp čtenízhp datahp R SP Æ postdekrementace R ++SP : SP R: operacesezásobníkem rostoucímdolů 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 (jakopop) 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ímiobvody(tzv. hlídači ) výpadek napájení BI-JPO G 7 c A.Pluháček 2010
obsluha přerušení kontext=obsah PC +stavprocesoru maskapřerušení typpřerušení=jednaneboví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(podletypupřerušení) ad 1. uložení dat přerušení na zásobník na určené adresy podle typu přerušení ad2. 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 kontextuzvektorů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 8bitů=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ápisdo podregistrů IR1,IR2,IR3) BI-JPO G 13 c A. Pluháček 2010
příklad čtení instrukce iii BI-JPO G 14 c A. Pluháček 2010
příklad čtení instrukce iv řídicí signály: MR čtení z hlavní paměti MW zápis do hlavní paměti WIR1 SB.dat IR1 WIR2 SB.dat IR3 WIR3 SB.dat IR3 PCA PC SB.adr PCINCPC+1 PC. stavové signály: WAIT operace s hlavní pamětí dosud neskončila I1B 8bitová instrukce(1 B) OZ7 bitozvřádu7 OZ6 bitozvřádu6. BI-JPO G 15 c A. Pluháček 2010
příklad čtení instrukce v BI-JPO G 16 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čnabázičítače jinak navržený možná struktura mikroinstrukce: µoz adr V P µoz mikrooperační znak hodnoty řídicích signálů adr adresa následující mikroinstrukce V P 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
příklad část µprogramu. MR MW WIR1 WIR2 WIR3 PCA PCINC....... adr VP M3 120 0 0 0 0 0 0 1... 122 0A M2 121 1 0 1 0 0 1 0... 120 09 M4 122 0 0 0 0 0 1 0... 125 00 M20123???????...?????? M6 124 0 0 0 0 0 0 1... 126 01 M5 125 1 0 0 1 0 1 0... 124 09 M30126???????...?????? M7 127???????...?????? M1 128 0 0 0 0 0 1 0... 121 00......... VP podmínka 00 adr0 01 OZ7 02 OZ6 03 OZ5 04 OZ4 05 OZ3 06 OZ2 07 OZ1 08 OZ0 09 WAIT 0A I1B.. BI-JPO G 19 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žna2místa sudáadresaanásl.lichá náhrada: žádná(bitje nahrazen sebousamým) = žádné větvení (adresa následující µinstr. = adresa v prováděné µinstr.) náhrada2bitů(viznásl.obr.)= větvenína4mí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 nbitů= větvenína2 n míst.. dekódování OZ: bity OZ stavové signály nbitůoz větvenína2 n míst POZOR:!!!instrukce mikroinstrukce a OZ µoz!!! BI-JPO G 20 c A. Pluháček 2010
mikroprogramovaný řadič horizontální iii BI-JPO G 21 c A. Pluháček 2010
mikroprogramovaný řadič horizontální iv mikropodprogramy návratová adresa: Co je? Kamsní? SKOK do mikropodprogramu jen ze sudé (příp.jenzliché) adresy α NÁVRAT na adresu, která se od α liší posledním bitem adresa αseuklá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 1mikroinstrukce... 1takt 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) 1mikroinstrukce... několiktaktů: čtení µinstrukce µprogramový čítač dekódování µoz provedení µoperace diagonální kompromis řídicí signály mikroinstrukce µoz 1mikroinstrukce... 1takt µ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ód1zn ř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ígrafupřechodujako 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... nastavitna20 apod. jinak... čítat BI-JPO G 27 c A. Pluháček 2010
příklad čtení instrukce v BI-JPO G 28 c A. Pluháček 2010
klasický řadič řadič na bázi čítače ii stavyčítače: 1,2,3,... M1,M2,M3,...(pořadě) dekodér(pravdivostní tabulka): MR MW WIR1 WIR2 WIR3 PCA PCINC stav M1 0...0001 0 0 0 0 0 1 0... M2 0...0010 1 0 1 0 0 1 0... M3 0...0011 0 0 0 0 0 0 1... M4 0...0100 0 0 0 0 0 1 0... M5 0...0101 1 0 1 0 0 1 0... M6 0...0110 0 0 0 0 0 0 1... ovládání: M2& WAIT STOP M3&I1B N20 M5&WAIT STOP M6&OZ7 N30. BI-JPO G 29 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(aliasRAM) 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