Architektura počítačů

Podobné dokumenty
Architektura počítačů

Architektura počítačů

Architektura počítačů Implementace procesoru

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

Pohled do nitra mikroprocesoru Josef Horálek

Architektury počítačů

Architektura počítačů

Procesor z pohledu programátora

Princip funkce počítače

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

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

Operace ALU. INP 2008 FIT VUT v Brně

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

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

Architektury počítačů a procesorů

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

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

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

Architektura počítače

Architektura počítačů Logické obvody

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

Principy počítačů I - Procesory

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

MSP 430F1611. Jiří Kašpar. Charakteristika

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

Architektura počítačů Logické obvody

Architektura počítačů

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

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Architektury počítačů

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

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.

Architektura počítačů. Instrukce a návrh instrukční sady. Lubomír Bulej KDSS MFF UK

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

RISC a CISC architektura

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

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

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.

PROGRAMOVATELNÉ LOGICKÉ OBVODY

Y36SAP 2007 Y36SAP-4. Logické obvody kombinační a sekvenční používané v číslicovém počítači Sčítačka, půlsčítačka, registr, čítač

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

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

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

Proudové zpracování instrukcí I. Celočíselná pipeline RISC

4. Elektronické logické členy. Elektronické obvody pro logické členy

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

SEKVENČNÍ LOGICKÉ OBVODY

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

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

Pohled do nitra mikroprocesoru

35POS Počítačové systémy. 8 Mnohaúrovňová organizace počítače 1

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

PROCESOR. Typy procesorů

LOGICKÉ OBVODY X36LOB

Aritmetické operace a obvody pro jejich realizaci

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

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

Kubatova Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR Kubátová Y36SAP-strojový kód 1

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

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

B. Sčítání,odčítání adoplňkovýkód

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Čísla, reprezentace, zjednodušené výpočty

8. Laboratoř: Aritmetika a řídicí struktury programu

Architektury počítačů

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

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

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

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů

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

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

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Program "Světla" pro mikropočítač PMI-80

Řetězené zpracování. INP 2008 FIT VUT v Brně

1 z :27

požadovan adované velikosti a vlastností Interpretace adresy POT POT

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška I / 21

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

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

Sčítačky Válcový posouvač. Demonstrační cvičení 6

Čísla, reprezentace, zjednodušené výpočty

Vstupně - výstupní moduly

Z{kladní struktura počítače

Příklady popisu základních obvodů ve VHDL

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

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

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

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

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

Paměti a jejich organizace

Násobení. MI-AAK(Aritmetika a kódy)

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

Způsoby realizace této funkce:

a operačních systémů

Systém adresace paměti

zení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení

Kubatova Y36SAP 9. Strojový kód ISA architektura souboru instrukcí střadačově, zásobníkově orientovaná, GPR Kubátová Y36SAP-ISA 1

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Transkript:

Architektura počítačů Procesor V přednášce byly použity (se souhlasem vydavatelství) obrázky z knihy Paterson, D., Henessy, V.: Computer Organization and Design, The HW/SW Interface. Elsevier, ISBN: 978--2-3766-5 České vysoké učení technické, Fakulta elektrotechnická AB36APO Architektura počítačů Ver..

Osnova přednášky. Aritmetické operace, základní HW pro realizaci aritmetických a logických operací 2. Návrh ednoduchého procesoru 3. Řadič procesoru, eho funkce a možnosti realizace AB36APO Architektura počítačů 2

Aritmetické operace znaménková čísla Přímý kód Zvlášť pracueme se znaménkem a zvlášť s hodnotou Algoritmus pro + a - -3-3 + -6-4 +5 +?????? Inverzní kód Vystačíme si s edním algoritmem nutnost provádět tzv. kruhový přenos = přičtení přenosu z nevyššího řádu k výsledku -4 +5 +? + + Dvokový doplněk Jeden algoritmus Žádný kruhový přenos -4 +5 + není součástí výsledku AM36APO Architektury počítačů 3

A co čísla neznaménková? Na ty nezapomíneme V tomto případě sledueme přenos z nevyššího řádu Opět situace, kdy výsledek operace není správný, protože se nevešel do zobrazitelného rozsahu. Měme k dispozici 5 bitů: 28 +5 + 2? +5 + 7 28 2 +? 28 9 +? AM36APO Architektury počítačů 4

Je výsledek správný? Rozumíte pomu přeplnění? Přeplnění - říká se tomu také přetečení (overflow). Situace, kdy výsledek operace není správný, protože se nevešel do zobrazitelného rozsahu. Nastává v situaci, kdy znaménko výsledku e iné, než znaménka operandů, byla-li stená, nebo Nonekvivalencí přenosu do a z nevyššího řádu. Měme k dispozici 5 bitů: -4 +5 + 2 +5 +? -4 - + -5-4 -3 +? AM36APO Architektury počítačů 5

Jak nás procesor informue o správnosti výsledku? Musíme se podívat do příznakového registru - FLAGS register pro Intel x86 mikroprocesory, CPSR (Current Program Status Register) pro ARM,.. V něm nademe příznaky Carry a Overflow (a další) AM36APO Architektury počítačů 6 http://css.csail.mit.edu/6.858/23/readings/i386/s2_3.htm

Jak realizueme rozdíl dvou čísel? Na předchozích slidech sme viděli ak se realizue operace součtu dvou čísel ať iž znaménkových (kladné+kladné, kladné+záporné, záporné+záporné) nebo neznaménkových (kladné+kladné) Otázka k opakování: ak sme vytvořili k číslu ve dvokovém doplňku eho číslo opačné? A B Sub (subtraction) A B Sub (subtraction) b n b b Invertor XOR c přenos do nenižšího řádu c přenos do nenižšího řádu AM36APO Architektury počítačů 7

Sčítací HW blokově Sčítačka s postupným šířením přenosu a n- b n- a b a b Obvyklý symbol pro funkční blok c n c Overflow s n- s s Úplná sčítačka kde x y Poloviční sčítačka z z = x. y w w = x y AM36APO Architektury počítačů 8

Paralelní sčítačka s minimálním zpožděním Sčítačka s postupným šířením přenosu e pro více bitová čísla velmi pomalá Pokud označíme t zpoždění ednoho hradla, pak generování přenosu v i-témřádě trvá 2 t. Pro N bitové číslo generování součtu trvá 2N t. Pro 64-bitovou sčítačku to e 28 t. Proto zkusíme navrhnout rychleší S n C = n+ A A = n n B B A n n n B C C n n n + + + B A A n n n C B B n n n + C C A n n n + C AM36APO Architektury počítačů 9 n A n B n C n C n+ S n

Paralelní sčítačka s minimálním zpožděním AM36APO Architektury počítačů C B A C B A C B A C B A S + + + = C A C B B A C + + = ( ) ( ) ( ) ( )... = + + + + + + + + + + + = = + + + = A C C B B A B A A C C B B A B A A C C B B A B A A C C B B A B A C B A C B A C B A C B A S Je zevné, že můžeme pokračovat v zednodušování výrazu a dosáhnout zpoždění 2 t pro každou rovnici. Bude však narůstat počet vstupů do hradla a počet hradel... 2 = + + = C A C B B A C

Poznámka k realizaci rychlé paralelní sčítačky Paralelní sčítačka s minimálním zpožděním (kombinační obvod) e prakticky nerealizovatelná. Pro 64-bitovou verzi bychom potřebovali 2 hradel. x = y = c =???????????? s =???????????? Jak můžeme urychlit výpočet součtu? = Jak můžeme urychlit výpočet přenosu? => sčítačka s predikcí přenosů Carry Look-Ahead AM36APO Architektury počítačů

Paralelní sčítačka s předvídáním přenosu x y c c + s C n+ = C n C n+ = C n C n+ = C n C n+ = C n x y c + C n C n Šíření přenosu Generování přenosu s = x = c y ( x y x y ) c ( x y x y ) = c ( x y ) c ( x y ) c x y c x y c x AM36APO Architektury počítačů 2 y c c + = x y ( x ) y c

Tyto rovnice sou klíčové pro pochopení principu Označme: generování přenosu: šíření přenosu (propagation): Pak: součet v -tem řádu: přenos do vyššího (+) řádu: AM36APO Architektury počítačů 3 y x g = y x y x y x p = = ( ) ( ) c p p c p c y x c y x c s = = = ( ) c p g c y x y x c = = +

Paralelní sčítačka s předvídáním přenosu Takže platí: c = g p c c 2 = g p c = g p (g p c ) = g p g p p c c 3 = g 2 p 2 c 2 = g 2 p 2 (g p g p p c ) = g 2 p 2 g p 2 p g p 2 p p c c 4 = g 3 p 3 c 3 =... = g 3 p 3 g 2 p 3 p 2 g p 3 p 2 p g p 3 p 2 p p c c 5 =... Například rovnici pro c 3 e možné číst následovně: Přenos do 3. řádu nastane, pokud přenos byl generován v 2. řádu, nebo se 2. řádem šíří a byl generován v. řádu, nebo se šíří 2. a. řádem a byl generován -tým řádem, nebo se šíří druhým, prvním a -tým řádem a byl v c (c ==). Pro porovnání: Sčítačka s postupným přenosem: AM36APO Architektury počítačů 4

CLA struktura ednotky Predikce Vycházeíc z rovnic pro c až c 3 sestroíme ednotku CLA: Gg p 3 g 3 c 3 p 2 g 2 c 2 p g c p g C Gp c 4 = g 3 p 3 c 3 =... = g 3 p 3 g 2 p 3 p 2 g p 3 p 2 p g p 3 p 2 p p c = Gg Gp Gc Gg Gp AM36APO Architektury počítačů 5

Paralelní sčítačka s předvídáním přenosu Podobným způsobem ako sme stanovili c 4 můžeme odvodit rovnice pro grupové přenosy: c 8 = Gc 2 = Gg Gp Gc = Gg Gp (Gg Gp Gc ) = = Gg Gp Gg Gp Gp Gc c 2 = Gc 3 = Gg 2 Gp 2 Gc 2 = Gg 2 Gp 2 (Gg Gp Gg ) = Gg 2 Gp 2 Gg Gp 2 Gp Gg Gp 2 Gp Gp Gc S výimkou názvů proměnných vidíme, že výše uvedené rovnice pro c 4, c 8 a c 2 sou identické s rovnicemi pro c až c 3. Čili, členy grupových přenosů lze vytvářet stenými obvody CLA, ako pro obyčené přenosy. Propoení sumátorů a ednotek CLA pro bity až 5 e ukázáno na následuícím obrázku: AM36APO Architektury počítačů 6

6-bitová sčítačka s grupovým předvídáním s 2-5 x 2-5 y 2-5 s 8- x 8- y 8- s 4-7 x 4-7 y 4-7 s -3 x -3 y -3 SUM 2-5 pg 2-5 SUM 8- pg 8- SUM 4-7 pg 4-7 SUM -3 pg -3 c 2-5 c 8- c 4-7 c -3 p 2-5 g 2-5 p 8- g 8- p 4-7 g 4-7 p -3 g -3 CLA 3 CLA 2 CLA CLA c Gc 3 Gc 2 Gc Gp 3 Gg 3 Gp 2 Gg 2 Gp Gg Gp Gg Sp GCLA Sg c Sčítačka pro bity až 3 AM36APO Architektury počítačů 7

64-bitová paralelní sčítačka s předvídáním přenosu 64-bitový sumátor se sekciovým předvídáním: s 48-63 x 48-63 y 48-63 s 32-47 x 32-47 y 32-47 s 6-3 x 6-3 y 6-3 s -5 x -5 y -5 SUM 48-63 pg 48-63 SUM 32-47 pg 32-47 SUM 6-3 pg 6-3 SUM -5 pg -5 c 48-63 c 32-47 c 6-3 c -5 p 48-63 g 48-63 p 32-47 g 32-47 p 6-3 g 6-3 p -5 g -5 CLA 2-5 CLA 8- CLA 4-7 CLA -3 c Gc 2-5 Gc 8- Gp Gc Gp 4-7 2-5 Gg 2-5 8- Gg Gp4-7 Gc 8-8- Gg Gp 8-4-7 Gg 8- GCLA 3 GCLA 2 GCLA GCLA c Sc 3 Sc 2 Sc Sp 3 Sg 3 Sp 2 Sg 2 Sp Sg Sp Sg SCLA c Np Ng Sčítačka pro bity až 5 AM36APO Architektury počítačů 8

Paralelní sčítačka s předvídáním přenosu CLA Carry Look-Ahead. Sčítačka CLA nabízí dostatečné zrychlení v porovnaní se sčítačkou s postupným přenosem při přiatelném nárůstu ceny HW. 64-bitová verze zvýší cenu HW o necelých 5% v porovnání se sčítačkou s postupným šířením přenosu, ale rychlost se zvýší 9: (28 t vs. 4 t). To představue významné zvýšení poměru rychlost/cena). AM36APO Architektury počítačů 9

Aritmetické posuvy: vlevo, vpravo Aritmetický posuv v doplňkovém kódu o bit (výsledek má odpovídat přísl. násobení nebo dělení) vlevo vpravo Aritmetický posuv vs. Logický posuv vs. Cyklický posuv... AM36APO Architektury počítačů 2

Násobení binárních čísel bez znaménka pro připomenutí AM36APO Architektury počítačů 2

Sekvenční HW násobička (varianta 32b) AC MQ Diskuze o rychlosti: ta e ale pomalá, co? AM36APO Architektury počítačů 22

Algoritmus A = násobenec; MQ = násobitel; AC = ; for( int i=; i <= n; i++) // n e počet bitů { if(mq = = ) AC = AC + A; // MQ = nenižší bit MQ SR (posuň registr AC MQ o edno místo doprava a doplň případný přenos z nevyššího řádu z předchozího kroku) } end. Nyní e výsledek v AC MQ. AM36APO Architektury počítačů 23

Příklad x.y Násobenec x= a násobitel y=. i operace AC MQ A komentář prvotní nastavení AC = AC+MB začátek cyklu SR 2 nic protože MQ = = SR 3 AC = AC+MB SR konec cyklu Tedy: x y = =, ( 6 5 = 3 ) AM36APO Architektury počítačů 24

Násobení v doplňkovém kódu Lze realizovat, ale e tu problém Obraz součinu obecně není roven součinu obrazů! Řešení spočívá v modifikaci dvokové soustavy na soustavu s relativními číslicemi Podrobnosti už sou mimo zamýšlený rozsah APO. Nebo v znaménkovém rozšíření na 2N bitů a násobení obvyklým způsobem. Z výsledku bereme pouze 2N bitů. -> ruční násobení AM36APO Architektury počítačů 25

Násobička v doplňkovém kódu Boothova metoda APO en pro informaci AM36APO Architektury počítačů 26

Rychlá násobička podle Walaceova stromu Q=X.Y, X a Y nechť sou 8b čísla ( x 7 x 6 x 5 x 4 x 3 x 2 x x ). (y 7 y 6 y 5 y 4 y 3 y 2 y y ) = x 7 y x 6 y x 5 y x 4 y x 3 y x 2 y x y x y P x 7 y x 6 y x 5 y x 4 y x 3 y x 2 y x y x y P x 7 y 2 x 6 y 2 x 5 y 2 x 4 y 2 x 3 y 2 x 2 y 2 x y 2 x y 2 P2 x 7 y 3 x 6 y 3 x 5 y 3 x 4 y 3 x 3 y 3 x 2 y 3 x y 3 x y 3 P3 x 7 y 4 x 6 y 4 x 5 y 4 x 4 y 4 x 3 y 4 x 2 y 4 x y 4 x y 4 P4 x 7 y 5 x 6 y 5 x 5 y 5 x 4 y 5 x 3 y 5 x 2 y 5 x y 5 x y 5 P5 x 7 y 6 x 6 y 6 x 5 y 6 x 4 y 6 x 3 y 6 x 2 y 6 x y 6 x y 6 P6 x 7 y 7 x 6 y 7 x 5 y 7 x 4 y 7 x 3 y 7 x 2 y 7 x y 7 x y 7 P7 Q 5 Q 4 Q 3 Q 2 Q Q Q 9 Q 8 Q 7 Q 6 Q 5 Q 4 Q 3 Q 2 Q Q Součtem P+P+...+P7 získáme výsledek součinu X a Y. Q = X.Y = P + P +... + P7 AM36APO Architektury počítačů 27

Rychlá násobička podle Walaceova stromu Jeím stavebním prvkem e sčítačka s uchováním přenosu CSA (Carry Save Adder) & & & S = S b + C S b i = x i y i z i C i+ = x i y i + y i z i + z i x i AM36APO Architektury počítačů 28

HW dělička algoritmus dělení AM36APO Architektury počítačů 29

Sekvenční HW dělička (varianta 32b) dělenec = podíl dělitel + zbytek AC MQ AM36APO Architektury počítačů 3

Algoritmus dělení MQ = dělenec; B = dělitel; (Podmínka: dělitel různý od!) AC = ; for( int i=; i <= n; i++) { SL (posuň registr AC MQ o ednu pozici vlevo, přičemž vpravo se připíše nula) } if(ac >= B) { AC = AC B; MQ = ; // nenižší bit registru MQ se nastaví na } Nyní registr MQ obsahue podíl a zbytek e v AC AM36APO Architektury počítačů 3

Příklad x/y Dělenec x= a dělitel y= i operace AC MQ B komentář prvotní nastavení SL nic podmínka if není splněna 2 SL podmínka if není splněna 3 SL r y AC= AC B; MQ = ; 4 SL r y AC= AC B; MQ = ; konec cyklu x : y = : = zbytek, ( : 3 = 3 zbytek ) AM36APO Architektury počítačů 32

Procesor AB36APO Architektura počítačů Ver.. 33

Počítač podle von Neumanna tvoří Řadič ALU Paměť Vstup Výstup Procesor/mikroprocesor Harvardská architektura e variantou s oddělenou pamětí programu a pamětí dat V/V podsystém (V/V = I/O) Řadič - součást (ednotka) počítače/procesoru, která eho činnost řídí. Sestává ze dvou částí: datové registry, další potřebné obvody, vlastní řídicí části, z tzv. ádra řadiče. AB36APO Architektura počítačů 34

Důležité registry řadiče PC (Program Counter), programový čítač. IR (Instruction Register), registr instrukce Další Univerzální nebo pracovní registry, SP (Stack Pointer), ukazatel zásobníku, PSW Program Status Word), stavové slovo programu, IM (Interrupt Mask), maska přerušení. AB36APO Architektura počítačů 35

Základní cyklus počítače sekvenční postup vykonávání instrukcí. Počáteční nastavení, zeména např. PC. 2. Čtení instrukce PC adresa hlavní paměti, Čtení obsahu, Přečtená data IR, PC+l PC, kde l e 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. Dotaz na možné přerušení. Ano-li, obsluha. 6. Ne-li, opakování od bodu 2. AB36APO Architektura počítačů 36

Kompilace a kódování programu int pow = ; int x = ; while(pow!= 28) { pow = pow*2; x = x + ; } addi s, $, // pow = addi s, $, // x = addi t, $, 28 // t = 28 while: beq s, t, done // if pow==28, go to done sll s, s, // pow = pow*2 addi s, s, // x = x+ while done: x 2 x 2 x 2 8 8 x 2 8 4 x x 8 4 x 8 8 3 x 22 3 AB36APO Architektura počítačů 37

Obvodová realizace základního cyklu počítače Adresa příští instrukce Konstanta 4 Programový čítač, 32 b Paměť instrukcí Instrukce, 32 b Adresa instrukce AB36APO Architektura počítačů 38

Úkol pro tuto přednášku: Porozumět implementaci ednoduchého počítače tvořeného procesorem, oddělenými pamětmi instrukcí a dat a ALU, který umí instrukce Čtení a zápis do datové paměti lw a sw, Aritmetické-logické instrukce add, sub, and, or a slt a Skokové instrukce beq. V procesoru bude řídicí ednotka (řadič) i ALU. Poznámka: Na této přednášce e budeme implementovat ednoduše (ako ednocyklový), Na 4. přednášce ukážeme více realistickou, zřetězenou verzi. AB36APO Architektura počítačů 39

Formát instrukcí Uvažume tři typy instrukcí dle tabulky: Typ 3 R opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 rd(5), 5: shamt(5) funct(6), 5: I opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 immediate (6), 5: J opcode(6), 3:26 address(26), 25: všechny R instrukce -> opcode=, funct operace rs source, rd destination, rt source/destination shamt při operacích posunu, immediate přímý operand K dispozici e 32 pracovních registrů AB36APO Architektura počítačů 4

Která e to instrukce? Na základe opcode a funct (pokud e to R typ) Opcode R typ lw sw beq Funct add sub and or slt AB36APO Architektura počítačů 4

K dispozici máme tyto stavební prvky CLK PC PC 32 32 32 A RD 32 Instr. Memory (ROM) 5 5 5 32 CLK WE3 A RD A2 RD2 A3 Reg. WD3 File 32 32 32 32 CLK WE A RD Data Memory WD 32 Multiplexor Zápis náběžnou hranou CLK při WE = Čtení po uplynutí dostatečně dlouhé doby AB36APO Architektura počítačů 42

Výklad syntaxe a sémantiky instrukce: například lw lw load word -čtení slova z datové paměti Description Operation: Syntax: Encoding: A word is loaded into a register from the specified address $t = MEM[$s + offset]; lw $t, offset($s) ss ssst tttt iiii iiii iiii iiii Uložme slovo z paměti na adrese x4 do registru č.: lw $, x4($) ss ssst tttt iiii iiii iiii iiii 4 x 8C B 4 stroový kód instrukce lw $, x4($) Poznámka: V registu $ e trvale uložena konstanta. AB36APO Architektura počítačů 43

Jedno-cyklový procesor návrh podpora čtení z paměti lw: typ I, rs bázová adresa, imm offset, rt kde uložit I opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 immediate (6), 5: ALUControl PC PC Instr 25:2 A RD Instr. Memory WE3 A RD A2 RD2 A3 Reg. WD3 File SrcA SrcB ALU Zero AluOut WE A RD Data Memory WD ReadData 5: Sign Ext SignImm AB36APO Architektura počítačů 44

Jedno-cyklový procesor návrh podpora čtení z paměti lw: typ I, rs bázová adresa, imm offset, rt kde uložit I opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 immediate (6), 5: PC PC Instr 25:2 A RD Instr. Memory Zápis při náběžné hraně CLK RegWrite = 2:6 WE3 A RD A2 RD2 A3 Reg. WD3 File SrcA SrcB ALUControl ALU Zero AluOut WE A RD Data Memory WD ReadData 5: Sign Ext SignImm AB36APO Architektura počítačů 45

Jedno-cyklový procesor návrh podpora čtení z paměti lw: typ I, rs bázová adresa, imm offset, rt kde uložit I opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 immediate (6), 5: RegWrite = ALUControl PC PC Instr 25:2 A RD Instr. Memory 2:6 WE3 A RD A2 RD2 A3 Reg. WD3 File SrcA SrcB ALU Zero AluOut WE A RD Data Memory WD ReadData 4 PCPlus4 + 5: Sign Ext SignImm AB36APO Architektura počítačů 46

Jedno-cyklový procesor návrh podpora zápis do paměti sw: typ I, rs bázová adresa, imm offset, rt co zapsat I opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 immediate (6), 5: RegWrite = ALUControl MemWrite = PC PC Instr 25:2 WE3 A RD A RD Instr. 2:6 A2 RD2 Memory 2:6 A3 Reg. WD3 File SrcA SrcB ALU Zero AluOut WE A RD Data Memory WD ReadData 4 PCPlus4 + 5: Sign Ext SignImm AB36APO Architektura počítačů 47

Jedno-cyklový procesor návrh podpora add add: typ R; rs, rt zdroe, rd cíl, funct operace součtu R opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 rd(5), 5: shamt(5) funct(6), 5: RegWrite = ALUSrc = MemToReg = RegDst = ALUControl PC 4 PCPlus4 PC Instr 25:2 WE3 A RD A RD Instr. 2:6 A2 RD2 Memory A3 Reg. WD3 File 2:6 + 5: 5: Sign Ext Rt Rd SignImm SrcA Zero WE ALU A RD SrcB AluOut Data ReadData Memory WriteData WD WriteReg Result AB36APO Architektura počítačů 48

Jedno-cyklový procesor návrh podpora sub, and, or, slt ediné v čem se liší od add e operace ALU -> datapath beze změny; rozdíl v ALUControl RegWrite = ALUSrc = MemToReg = RegDst = ALUControl PC 4 PCPlus4 PC Instr 25:2 WE3 A RD A RD Instr. 2:6 A2 RD2 Memory A3 Reg. WD3 File 2:6 + 5: 5: Sign Ext Rt Rd SignImm SrcA Zero WE ALU A RD SrcB AluOut Data ReadData Memory WriteData WD WriteReg Result AB36APO Architektura počítačů 49

Jedno-cyklový procesor návrh podpora beq beq branch if equal; imm offset; PC = PC+4 + SignImm*4 I opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 immediate (6), 5: RegWrite = ALUSrc = Branch = RegDst = x ALUControl MemToReg = x PC PC Instr 25:2 WE3 A RD A RD Instr. 2:6 A2 RD2 Memory A3 Reg. WD3 File 2:6 4 PCPlus4 + 5: 5: Sign Ext Rt Rd <<2 SignImm SrcA Zero WE ALU A RD SrcB AluOut Data ReadData Memory WriteData WD WriteReg + PCBranch Result AB36APO Architektura počítačů 5

Jedno-cyklový procesor výkon: IPS = IC / T = IPC str.f CLK Jaká může být maximální frekvence procesoru? Zpoždění na kritické cestě instrukce lw: Tc = t PC + t Mem + t RFread + t ALU + t Mem + t Mux + t RFsetup PC PC 4 PCPlus4 A RD Instr. Memory + Instr 25:2 2:6 2:6 5: 5: WE3 A RD A2 RD2 A3 Reg. WD3 File Sign Ext Rt Rd <<2 SignImm SrcA Zero WE ALU A RD SrcB AluOut Data ReadData Memory WriteData WD WriteReg + PCBranch Result AB36APO Architektura počítačů 5

Jedno-cyklový procesor výkon: IPS = IC / T = IPC str.f CLK Tc = t PC + t Mem + t RFread + t ALU + t Mem + t Mux + t RFsetup Předpokládeme: t PC = 3 ns t Mem = 3 ns t RFread = 5 ns t ALU = 2 ns t Mux = 2 ns = 2 ns t RFsetup Pak Tc = 2 ns --> f CLK max = 98 khz, IPS =. 98e3 = 98 instrukcí za sekundu AB36APO Architektura počítačů 52

Důležitá poznámka Tenhle výsledek si, prosím, zapamatute. Budeme s ním pracovat na 5. přednášce. Dnes se dále budeme zabývat porozuměním funkci řadiče (řídicí ednotky). AB36APO Architektura počítačů 53

Jedno-cyklový procesor návrh řídicí část R opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 rd(5), 5: shamt(5) funct(6), 5: I opcode(6), 3:26 rs(5), 25:2 rt(5), 2:6 immediate (6), 5: J opcode(6), 3:26 address(26), 25: řídicí signály na základe opcode a funct 5 Opcode 5 ALUOp Hlavní dekóder 2 funct Dekóder ALU 3 ALUControl ALUOp součet rozdíl Opcode RegWrite RegDst ALUSrc ALUOp Branch Mem Write podle funct -nepoužito- MemTo Reg R typ lw sw X X beq X X AB36APO Architektura počítačů 54

Řízení ALU (Funkce dekodéru ALU) ALUOp Funct ALUControl X (add) X (sub) X add () (add) X sub () (sub) X and () (and) X or () (or) X slt () (set less than) AB36APO Architektura počítačů 55

Řadič edno-cyklového procesoru 3:26 5: Control Unit Opcode Funct MemToReg MemWrite Branch ALUControl 2: ALUScr RegDest RegWrite PC PC A RD Instr 25:2 Instr. 2:6 Memory 4 PCPlus4 + 2:6 5: 5: WE3 A RD A2 RD2 A3 Reg. WD3 File Sign Ext Rt Rd <<2 SignImm SrcA Zero WE ALU A RD SrcB AluOut Data ReadData Memory WriteData WD WriteReg + PCBranch Result AB36APO Architektura počítačů 56

Co e řadič (řídicí ednotka) procesoru? Funkce řadiče: V příslušný časový okamžik generovat řídicí signály a přiímat signály stavové. Řadič ednotka/sekvenční obvod, výstupy: řídicí signály, vstupy: stavové signály. Poznámka pro náš specifický případ: náš řadič reague např. na stavový signál Zero. AB36APO Architektura počítačů 57

Co e řadič procesoru? Obecněi: Řadič řídí činnost ednotlivých ednotek, koordinue eich aktivity a zaišťue tok informace mezi nimi. Z hlavní paměti získává instrukce (sekvenci instrukcí), které maí být vykonány. Dekódue e, a na základě typu instrukce nastaví příslušné hradla a datové cesty aby mohla být instrukce vykonána. Obecně, funkcí řadiče e generovat sekvenci řídicích signálu různým subsystémům počítače ve správném pořadí tak, aby byly vykonány požadované operace (aritmetické, změny toku programu a.). Každý krok v sekvenci kroků vykonávaných řídicí ednotkou v průběhu vykonávání dané instrukce může být definován ako mikrooperace. Mikro-operace e tedy elementární operace (obvykle) vykonaná nad edním nebo několika registry. Výsledkem mikrooperace e typicky změna obsahu registru (registrů). AB36APO Architektura počítačů 58

Možné realizace řadiče Řadič klasický, též obvodově realizovaný, tedy tzv. obvodový : řadič s řídicími řetězci, řadič na bázi čítače, inak navržený. Řadič mikroprogramovaný (řízený mikroprogramem): horizontální, vertikální, diagonální. AB36APO Architektura počítačů 59

Realizace: řadič s řídicími řetězci Stavové signály Řídicí signály Konečný automat Řídicí řetězec Důležitá poznámka: označení stavů a názvy řídicích a stavových signálů na obrázku neodpovídaí našemu specifickému případu! Činnost řadiče může být popsána konečným automatem (lze relativně snadno popsat azykem na popis HW Verilog/VHDL), zeména při multicyklovém vykonávání instrukcí. Jednotlivým stavům automatu přináleží konkrétní nastavení řídicích signálů, přechodům pak podmínky (stavová hlášení, typ instrukce,...), při kterých se mezi těmito stavy přechází. AB36APO Architektura počítačů 6

Stavový automat řadiče - příklad AB36APO Architektura počítačů 6

Stavový automat řadiče - příklad Obecný model logického sekvenčního obvodu (Huffmann) řadič I Logický komb. obvod O t+ =g(s t, I t ) O S Paměťová část S t+ =f(s t, I t ) AB36APO Architektura počítačů 62

Stavový automat řadiče - příklad Implementovat Control logic z předchozího slide prakticky můžeme třema způsoby: Jako kombinační logický obvod Pomocí paměti ROM (vstupy do řadiče budou představovat adresní vodiče pro paměť ROM) Pomocí PLA (programmable logic array) AB36APO Architektura počítačů 63

Mikroprogramovaný řadič Nedílnou součástí mikroprogramovaného řadiče eřídicí paměť obsahuící mikroinstrukce, přičemž každá ze stroových instrukcí e provedena pomocí edné nebo několika ednodušších mikroinstrukcí. Vstup - kódy instrukcí načtené z operační paměti Výstup -řídicí signály uvnitř procesorou (ALU, interní sběrnice ), externí signály (paměť, ) Operační znak instrukce udává adresu první mikroinstrukce z řídicí paměti, která implementue danou operaci. Mikroprogram implementue programátorovi viditelné stroové instrukce (add, sub, lw, xor, mp ) - ISA AB36APO Architektura počítačů 64

Mikroprogramovaný řadič OR Operační znak instrukce (opcode) CMIAR - Current Microinstruction Address Register (µpc) Úkolem této části e určit adresu mikroprogramu µpc Zde může alternativně být tzv. sequencer = Next Address Generator AB36APO Architektura počítačů 65

Příklady mikro-operací: Mikroprogramovaný řadič R(MAR) R(CIAC) Obsah Current Instruction Address Counter do Memory Address Register R(CIAC) R(CIAC)+ Inkrementace registru CIAC M(MBR) M(MAR) Výběr z paměti IF F(S) THEN R(A) R(MDR) K realizaci mikro-operace může být zapotřebí ednoho nebo několika řídicích signálů. AB36APO Architektura počítačů 66

Jak může vypadat mikroprogram? Realizace instrukce add µinstrukce. PC out, MAR in, Read, Zero A, Set Carry-In, Add, Z in. Z out, PC in, Wait MFC 2. MDR out, IR in 3. AddressFieldOfIR out, MAR in, Read 4. R out, Y in, Wait MFC 5. MDR out, Add, Z in, Set CC 6. Z out, R in, End µoperace John Franco: What is Microprogramming and Why Should We Know About it? http://gauss.ececs.uc.edu/courses/c429/exams/spring23/review/microcode.pdf AB36APO Architektura počítačů 67

Mikroprogramovaný řadič Organizace mikroinstrukcí horizontální, vertikální a diagonální Vertikální: Pokud budeme uvažovat N typů mikrooperací, postačue log 2 N bitů pro specifikaci mikrooperace. Nicméně potřebueme dekodéry pro generování řídicích signálů. Jedna mikroinstrukce pak vykoná pouze ednu mikrooperaci. Kódování po skupinách -> Jedna mikroinstrukce pak může vykonat několik mikrooperací. Horizontální: Každý bit mikroinstrukce může reprezentovat specifickou mikrooperaci. Takže pro N typů mikroinstrukcí potřebueme N bitů. Můžeme vykonat libovolnou množinu mikrooperací paralelně v ediné mikroinstrukci. AB36APO Architektura počítačů 68

Mikroprogramovaný řadič AB36APO Architektura počítačů 69

Mikroprogramovaný řadič Diagonální: Kompromis. Některé bloky zakódovány horizontálně a iné vertikálně. Horizontální formát má bity pro ednotlivé signály přímo uloženy v mikroinstrukci (bez nutnosti dalšího dekódování). Vertikální formát kódue větší skupinu navzáem se vylučuících signálů (aktivní e pouze eden) společně do ednoho bloku. Poznámka k terminologii: Horizontální vs. vertikální primárně slouží k rozlišení toho, zda mikroinstrukce přímo řídí součásti CPU (horizontální), nebo potřebue další dekódovací stupně (vertikální). Mikroprogramovaný řadič e vlastně počítačem v počítači. AB36APO Architektura počítačů 7

Mikroprogramovaný řadič Závěr k mikroprogramovaným řadičům: Mikroprogram e vlastně vrstvou mezi stroovými instrukcemi a samotným HW. Slouží k implementaci stroových instrukcí v řídicí ednotce CPU, GPU, řadičů disků, řadičů síťových rozhraní, atd. Pomáhá oddělit stroové instrukce od elektronických obvodů, což rovněž pomáhá implementovat komplexní instrukce bez nárůstu složitosti HW. Programování pomocí mikroinstrukcí se označue mikroprogramování. Napsaný kód, který e uložen (ROM, PLA, flash) uvnitř řadiče e pak mikroprogram. Při návrhu řadičů moderních procesorů využívaících zřetězení použití mikroprogramovaného řadiče není populární, m. i z důvodu samotné podstaty sekvenčního vykonání mikroprogramu. AB36APO Architektura počítačů 7

Mikroprogramovaný vs. klasický řadič - srovnání Rychlost - klasický e rychleší. Cena levněší e Klasický, ale en v případě velmi ednoduché variantě. Ve složitěší e ím řadič mikroprogramovaný. Flexibilita mikroprogramovaný. Změna mikroprogramu změna chování procesoru. Řídicí paměť ROM pevné mikroinstrukce RWM - µprogramovatelný procesor, možná emulace iné instrukční sady. Mikroprogramovaný řadič neefektivní pro zřetězené procesory (alespoň ako centralizovaný) každý stupeň vykonává inou instrukci. Bylo by potřeba zaistit správné provedení všech instrukcí napříč stupni spolu s řešením hazardů. AB36APO Architektura počítačů 72