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

Architektura počítačů

Princip funkce počítače

Architektury počítačů

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

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

Procesor z pohledu programátora

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

Architektury počítačů a procesorů

Principy počítačů I - Procesory

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

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

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

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

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.

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

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

Architektura počítače

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

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

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

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

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

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.

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

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

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

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

PROCESOR. Typy procesorů

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

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

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

Přerušovací systém s prioritním řetězem

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

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

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

RISC a CISC architektura

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

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

Architektury počítačů

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

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

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

Řadiče. INP 2008 FIT VUT v Brně

Základní uspořádání pamětí MCU

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

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

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

PROGRAMOVATELNÉ LOGICKÉ OBVODY

Adresní mody procesoru

řadič počítače část(jednotka) počítače/procesoru,

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

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í

Paměti a jejich organizace

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

BI-JPO. (Jednotky počítače) G. Řadiče

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

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

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

Vstupně - výstupní moduly

Pohled do nitra mikroprocesoru

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

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

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

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

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Struktura a architektura počítačů

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

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

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

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

Systém řízení sběrnice

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

SEKVENČNÍ LOGICKÉ OBVODY

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

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

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

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Architektura počítačů Logické obvody

Z{kladní struktura počítače

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

Komunikace modulu s procesorem SPI protokol

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

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

Cílem kapitoly je seznámit studenta s pamětmi. Jejich minulostí, současností a hlavnímu parametry.

a operačních systémů

Architektura počítačů Logické obvody

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

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

Cíle. Teoretický úvod

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

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

Dekódování adres a návrh paměťového systému

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

2 Hardware a operační systémy

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-0-12-370606-5 České vysoké učení technické, Fakulta elektrotechnická A0B36APO Architektura počítačů Ver.1.00 1

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

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í. A0B36APO Architektura počítačů 3

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

Kompilace a kódování programu int pow = 1; int x = 0; while(pow!= 128) { pow = pow*2; x = x + 1; } addi s0, $0, 1 // pow = 1 addi s1, $0, 0 // x = 0 addi t0, $0, 128 // t0 = 128 while: beq s0, t0, done // if pow==128, go to done sll s0, s0, 1 // pow = pow*2 addi s1, s1, 1 // x = x+1 j while done: 0x 20 10 00 01 0x 20 11 00 00 0x 20 08 00 80 0x 12 08 00 04 0x 00 00 00 00 0x 00 10 80 40 0x 08 00 80 03 0x 22 31 00 01 Erasmus/Lecture 5

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 A0B36APO Architektura počítačů 6

Úkol pro tuto přednášku: Porozumět implementaci jednoduché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í jednotka (řadič) i ALU. Poznámka: Na této přednášce jej budeme implementovat jednoduše (jako jednocyklový), Na 4. přednášce ukážeme více realistickou, zřetězenou verzi. A0B36APO Architektura počítačů 7

Formát instrukcí Uvažujme tři typy instrukcí dle tabulky: Typ 31 0 R opcode(6), 31:26 rs(5), 25:21 rt(5), 20:16 rd(5), 15:11 shamt(5) funct(6), 5:0 I opcode(6), 31:26 rs(5), 25:21 rt(5), 20:16 immediate (16), 15:0 J opcode(6), 31:26 address(26), 25:0 všechny R instrukce -> opcode=000000, funct operace rs source, rd destination, rt source/destination shamt při operacích posunu, immediate přímý operand K dispozici je 32 pracovních registrů A0B36APO Architektura počítačů 8

Která je to instrukce? Na základe opcode a funct (pokud je to R typ) Opcode 000000 R typ 100011 lw 101011 sw 000100 beq Funct 100000 add 100010 sub 100100 and 100101 or 101010 slt A0B36APO Architektura počítačů 9

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 A1 RD1 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 = 1 Čtení po uplynutí dostatečně dlouhé doby A0B36APO Architektura počítačů 10

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) 1000 11ss ssst tttt iiii iiii iiii iiii Uložme slovo z paměti na adrese 0x4 do registru č.11: lw $11, 0x4($0) 1000 11ss ssst tttt iiii iiii iiii iiii 1000 1100 0000 1011 0000 0000 0000 0100 0 11 4 0x 8C 0B 00 04 strojový kód instrukce lw $11, 0x4($0) Poznámka: V registu $0 je trvale uložena konstanta 0. A0B36APO Architektura počítačů 11

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), 31:26 rs(5), 25:21 rt(5), 20:16 immediate (16), 15:0 ALUControl PC PC Instr 25:21 WE3 SrcA A RD A1 RD1 ALU Instr. A2 RD2 SrcB Memory A3 Reg. WD3 File Zero AluOut WE A RD Data Memory WD ReadData 15:0 Sign Ext SignImm A0B36APO Architektura počítačů 12

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), 31:26 rs(5), 25:21 rt(5), 20:16 immediate (16), 15:0 Zápis při náběžné hraně CLK RegWrite = 1 ALUControl PC PC Instr 25:21 WE3 SrcA A RD A1 RD1 ALU Instr. A2 RD2 SrcB Memory 20:16 A3 Reg. WD3 File Zero AluOut WE A RD Data Memory WD ReadData 15:0 Sign Ext SignImm A0B36APO Architektura počítačů 13

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), 31:26 rs(5), 25:21 rt(5), 20:16 immediate (16), 15:0 RegWrite = 1 ALUControl PC PC Instr 25:21 WE3 SrcA A RD A1 RD1 Instr. A2 RD2 SrcB Memory 20:16 A3 Reg. WD3 File ALU Zero AluOut WE A RD Data Memory WD ReadData 4 PCPlus4 + 15:0 Sign Ext SignImm A0B36APO Architektura počítačů 14

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), 31:26 rs(5), 25:21 rt(5), 20:16 immediate (16), 15:0 PC RegWrite = 0 MemWrite = 1 ALUControl PC Instr 25:21 WE3 SrcA A RD A1 RD1 ALU Instr. 20:16 A2 RD2 SrcB Memory 20:16 A3 Reg. WD3 File Zero AluOut WE A RD Data Memory WD ReadData 4 PCPlus4 + 15:0 Sign Ext SignImm A0B36APO Architektura počítačů 15

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

Jedno-cyklový procesor návrh podpora sub, and, or, slt jediné v čem se liší od add je operace ALU -> datapath beze změny; rozdíl v ALUControl RegWrite = 1 ALUSrc = 0 MemToReg = 0 RegDst = 1 ALUControl PC 4 PCPlus4 PC Instr 25:21 WE3 SrcA A RD A1 RD1 ALU Instr. 20:16 A2 RD2 0 SrcB Memory A3 1 Reg. WD3 File WriteData 20:16 Rt 0 WriteReg 1 15:11 Rd + 15:0 Sign Ext SignImm Zero AluOut WE A RD Data Memory WD 0 1 ReadData Result A0B36APO Architektura počítačů 17

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

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 25:21 WE3 PC Instr SrcA 0 A RD A1 RD1 1 ALU Instr. 20:16 A2 RD2 0 SrcB Memory A3 1 Reg. WD3 File WriteData 20:16 Rt 0 WriteReg 1 15:11 Rd 4 PCPlus4 + 15:0 Sign Ext <<2 SignImm + Zero AluOut PCBranch WE A RD Data Memory WD 0 1 ReadData Result A0B36APO Architektura počítačů 19

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ádejme: t PC = 30 ns t Mem = 300 ns t RFread = 150 ns t ALU = 200 ns t Mux = 20 ns = 20 ns t RFsetup Pak Tc = 1020 ns --> f CLK max = 980 khz, IPS = 1. 980e3 = 980 000 instrukcí za sekundu A0B36APO Architektura počítačů 20

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

Jedno-cyklový procesor návrh řídicí část R opcode(6), 31:26 rs(5), 25:21 rt(5), 20:16 rd(5), 15:11 shamt(5) funct(6), 5:0 I opcode(6), 31:26 rs(5), 25:21 rt(5), 20:16 immediate (16), 15:0 J opcode(6), 31:26 address(26), 25:0 řídicí signály na základe opcode a funct 5 Opcode 5 ALUOp Hlavní dekóder 2 funct Dekóder ALU 3 ALUControl ALUOp 00 součet 01 rozdíl Opcode RegWrite RegDst ALUSrc ALUOp Branch Mem Write 10 podle funct 11 -nepoužito- MemTo Reg R typ 000000 1 1 0 10 0 0 0 lw 100011 1 0 1 00 0 0 1 sw 101011 0 X 1 00 0 1 X beq 000100 0 X 0 01 1 0 X A0B36APO Architektura počítačů 22

Řízení ALU (Funkce dekodéru ALU) ALUOp Funct ALUControl 00 X 010 (add) 01 X 110 (sub) 1X add (100000) 010 (add) 1X sub (100010) 110 (sub) 1X and (100100) 000 (and) 1X or (100101) 001 (or) 1X slt (101010) 111 (set less than) A0B36APO Architektura počítačů 23

Řadič jedno-cyklového procesoru 31:26 5:0 Control Unit Opcode Funct MemToReg MemWrite Branch ALUControl 2:0 ALUScr RegDest RegWrite PC PC Instr 25:21 WE3 0 SrcA A RD A1 RD1 1 ALU Instr. 20:16 A2 RD2 0 SrcB Memory A3 1 Reg. WD3 File WriteData 20:16 Rt 0 WriteReg 1 15:11 Rd 4 PCPlus4 + 15:0 Sign Ext <<2 SignImm + Zero AluOut PCBranch WE A RD Data Memory WD 0 1 ReadData Result A0B36APO Architektura počítačů 24

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

Co je řadič procesoru? Obecněji: Řadič řídí činnost jednotlivých jednotek, koordinuje jejich aktivity a zajišťuje tok informace mezi nimi. Z hlavní paměti získává instrukce (sekvenci instrukcí), které mají být vykonány. Dekóduje je, 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 je 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 aj.). Každý krok v sekvenci kroků vykonávaných řídicí jednotkou v průběhu vykonávání dané instrukce může být definován jako mikrooperace. Mikro-operace je tedy elementární operace (obvykle) vykonaná nad jedním nebo několika registry. Výsledkem mikrooperace je typicky změna obsahu registru (registrů). A0B36APO Architektura počítačů 26

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, jinak navržený. Řadič mikroprogramovaný (řízený mikroprogramem): horizontální, vertikální, diagonální. A0B36APO Architektura počítačů 27

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ídají našemu specifickému případu! Činnost řadiče může být popsána konečným automatem (lze relativně snadno popsat jazykem na popis HW Verilog/VHDL), zejmé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í. A0B36APO Architektura počítačů 28

Stavový automat řadiče - příklad A0B36APO Architektura počítačů 29

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

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 e budou představovat adresní vodiče pro paměť ROM) Pomocí PLA (programmable logic array) A0B36APO Architektura počítačů 31

Řadič na bázi čítače Řídicí signály Stavové signály čítač slouží pro rozlišení jednotlivých stavů rozpracované instrukce Ovládání mj. nastavuje a zastavuje čítač (když vyhodnotí konec operace). Úkolem dekodéru je nastavit řídicí signály pro vykonávací subsystém v závislosti od stavu čítače. Důležitá poznámka: označení stavů a názvy řídicích a stavových signálů na obrázku neodpovídají našemu specifickému případu! A0B36APO Architektura počítačů 32

Mikroprogramovaný řadič Nedílnou součástí mikroprogramovaného řadiče jeřídicí paměť obsahující mikroinstrukce, přičemž každá ze strojových instrukcí je provedena pomocí jedné nebo několika jednodušší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á implementuje danou operaci. Mikroprogram implementuje programátorovi viditelné strojové instrukce (add, sub, lw, xor, jmp ) - ISA A0B36APO Architektura počítačů 33

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

Příklady mikro-operací: Mikroprogramovaný řadič R(MAR) R(CIAC) Obsah Current Instruction Address Counter do Memory Address Register R(CIAC) R(CIAC)+1 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í jednoho nebo několika řídicích signálů. A0B36APO Architektura počítačů 35

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

Mikroprogramovaný řadič Organizace mikroinstrukcí horizontální, vertikální a diagonální Vertikální: Pokud budeme uvažovat N typů mikrooperací, postačuje log 2 N bitů pro specifikaci mikrooperace. Nicméně potřebujeme dekodéry pro generování řídicích signálů. Jedna mikroinstrukce pak vykoná pouze jednu 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řebujeme N bitů. Můžeme vykonat libovolnou množinu mikrooperací paralelně v jediné mikroinstrukci. A0B36APO Architektura počítačů 37

Mikroprogramovaný řadič A0B36APO Architektura počítačů 38

Mikroprogramovaný řadič Diagonální: Kompromis. Některé bloky zakódovány horizontálně a jiné vertikálně. Horizontální formát má bity pro jednotlivé signály přímo uloženy v mikroinstrukci (bez nutnosti dalšího dekódování). Vertikální formát kóduje větší skupinu navzájem se vylučujících signálů (aktivní je pouze jeden) společně do jednoho 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řebuje další dekódovací stupně (vertikální). Mikroprogramovaný řadič je vlastně počítačem v počítači. A0B36APO Architektura počítačů 39

Mikroprogramovaný řadič Závěr k mikroprogramovaným řadičům: Mikroprogram je vlastně vrstvou mezi strojovými instrukcemi a samotným HW. Slouží k implementaci strojových instrukcí v řídicí jednotce CPU, GPU, řadičů disků, řadičů síťových rozhraní, atd. Pomáhá oddělit strojové 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čuje mikroprogramování. Napsaný kód, který je uložen (ROM, PLA, flash) uvnitř řadiče je pak mikroprogram. Při návrhu řadičů moderních procesorů využívajících zřetězení použití mikroprogramovaného řadiče není populární, mj. i z důvodu samotné podstaty sekvenčního vykonání mikroprogramu. A0B36APO Architektura počítačů 40

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