Architektura počítačů

Podobné dokumenty
Architektury počítačů

Architektura počítačů

Architektura počítačů

Architektura počítačů Implementace procesoru

Architektura počítačů

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

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

Principy počítačů a operačních systémů

Architektura počítačů Zvyšování výkonnosti

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

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

Architektury počítačů

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

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

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

Proudové zpracování instrukcí II. Hazardy v proudovém zpracování Proudové zpracování FP instrukcí

Techniky zvýšení výkonnosti procesoru, RISC a CISC procesory

Princip funkce počítače

Architektura počítačů Zvyšování výkonnosti

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

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

Architektury VLIW M. Skrbek a I. Šimeček

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

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

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2)

Vícejádrový procesor. Dvě nebo více nezávislých jader Pro plné využití. podporovat multihreading

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

RISC a CISC architektura

Architektura procesorů PC shrnutí pojmů

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

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.

Struktura a architektura počítačů

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

CISC A RISC PROCESORY Jak pracují procesory CISC:

PROCESOR. Typy procesorů

Charakteristika dalších verzí procesorů v PC

Pokročilé Architektury Procesorů

Architektura počítače

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

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

Intel (2) Intel (1) Intel (3) Intel (4) Intel (6) Intel (5) Nezřetězené zpracování instrukcí:

Architektura procesoru ARM

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

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

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování

Pohled do nitra mikroprocesoru Josef Horálek

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

Úvod do architektur personálních počítačů

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

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Úvod do architektur procesorů

Procesor z pohledu programátora

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

Architektura počítačů Logické obvody

ARCHITEKTURA PROCESORŮ

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

BAKALÁŘSKÁ PRÁCE. České vysoké učení technické v Praze Fakulta elektrotechnická. Simulátor procesoru podorujícího MIPS ISA. katedra řídicí techniky

Architektura Pentia úvod

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování

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

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

Sekvenční architektury II. Zpracování instrukcí

Sekvenční architektury II. Zpracování instrukcí

Architektura počítačů Logické obvody

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

PROCESORY. Typy procesorů

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

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

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

Mezipaměti počítače. L2 cache. L3 cache

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Principy počítačů I - Procesory

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.

SOU Valašské Klobouky. VY_32_INOVACE_01_8 IKT Procesory, Intel, AMD, Architektura x86-64, AMR. Mgr. Radomír Soural

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

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

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

a operačních systémů

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

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

Operace ALU. INP 2008 FIT VUT v Brně

Architektura Intel Atom

Simulátory aplikačně specifických instrukčních procesorů Jazyk LISA. Masařík Karel

Architektura a princip funkce počítačů

Intel Procesor a jeho konstrukce. Vývojové typy, činnost procesoru

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

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

Vývoj architektur PC 1

Pokročilé architektury počítačů

Vstupně - výstupní moduly

Luděk Matyska. Jaro 2015

Charakteristika dalších verzí procesorů Pentium

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc.

Přednáška 2 A4B38NVS - Návrh vestavěných systémů 2014, kat. měření, ČVUT - FEL, Praha J. Fischer A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL 1

Úvod do architektur personálních počítačů

Cache paměť - mezipaměť

Pokročilé architektury počítačů

4. Procesory CISC a RISC: Základní rysy a podněty pro vznik, zřetězení, predikce skoku, základní zástupci.

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

Transkript:

Architektura počítačů 4 Zřetězené vykonávaní instrukcí; Hazardy; Vyvažování stupňů zřetězení a časování; Superzřetězení České vysoké učení technické, Fakulta elektrotechnická AB36APO Architektura počítačů Ver.. 22

Motivace k přednášce AMD Bulldozer 5h (FX, Opteron) - 2 AB36APO Architektura počítačů 2 http://en.wikipedia.org/wiki/file:amd_bulldozer_block_diagram_(cpu_core_bloack).png

Motivace k přednášce Intel Nehalem (Core i7) - 28 AB36APO Architektura počítačů 3 http://en.wikipedia.org/wiki/file:intel_nehalem_arch.svg

Úkol dnešní přednášky Modifikujeme jednocyklový procesor z 2. přednášky na zřetězený procesor. Procesor bude podporovat instrukce: add, sub, and, or, slt, addi, lw, sw a beq 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: AB36APO Architektura počítačů 4

Jedno-cyklový procesor spolu s paměťmi 3:26 5: Control Unit Opcode Funct MemToReg MemWrite Branch ALUControl 2: ALUScr RegDest RegWrite PC PC Instr 25:2 WE3 SrcA ALU Instr. 2:6 A2 RD2 SrcB A3 Reg. WD3 File WriteData 2:6 Rt WriteReg 5: Rd 4 PCPlus4 5: Sign Ext <<2 SignImm Zero AluOut PCBranch WE Data WD ReadData Result AB36APO Architektura počítačů 5 Z přednášky č.2

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:2 WE3 PC Instr SrcA ALU Instr. 2:6 A2 RD2 SrcB A3 Reg. WD3 File WriteData 2:6 Rt WriteReg 5: Rd 4 PCPlus4 5: Sign Ext <<2 SignImm Zero AluOut PCBranch WE Data WD ReadData Result AB36APO Architektura počítačů 6 Z přednášky č.2

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 = 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čů 7 Z přednášky č.2

Zřetězené vykonávaní instrukcí Předpokládejme, že vykonání instrukce můžeme rozdělit do 5 stupňů: IF ID EX MEM WB IF Instruction Fetch, ID Instruction decode (and Operand Fetch), EX Execute, MEM Access, WB Write Back a dále τ = max { τ i } k i=, kde τ i je čas šíření (propagation delay) v i-tém stupni. IF poslání PC do paměti a vybrání aktuální instrukce. Aktualizace PC = PC4 ID dekódování instrukce a načtení registrů specifikovaných v instrukci, provedení testu na rovnost registrů (kvůli možnému větvení), znaménkové rozšíření offsetu, výpočet cílové adresy pro případ větvení (zn. rozš. offset PC) EX operace ALU MEM v případě instrukce load /store čtení/zápis do paměti WB v případě instrukcí typu register-register nebo instrukce load zápis výsledku do RF (výsledek může přicházet z ALU nebo paměti) AB36APO Architektura počítačů 8

Paralelizmus na úrovni instrukcí - zřetězení IF I I2 I3 I4 I5 I6 I7 I8 I9 I ID I I2 I3 I4 I5 I6 I7 I8 I9 EX I I2 I3 I4 I5 I6 I7 I8 MEM I I2 I3 I4 I5 I6 I7 ST I I2 I3 I4 I5 I6 2 3 4 5 6 7 8 9 5 τ τ τ τ τ τ Čas vykonání n instrukcí k-stupňové pipeline: T k = k.τ (n ) τ Zrychlení: T nkτ S = = lim S k k T kτ ( n ) τ = n k k čas Předpoklad: ideálně vyvážená pipeline, obvod můžeme libovolně dělit AB36APO Architektura počítačů 9

Paralelizmus na úrovni instrukcí - zřetězení Neredukuje čas vykonání individuální instrukce, právě naopak.. Hazardy: Strukturální (řešeny duplikací), datové (důsledek datových závislostí: RAW, WAR, WAW) a řídicí (instrukce měnící PC)... Hazardy způsobují (mohou způsobovat) pozastavení vykonávání (stall) nebo vyprázdnění pipeline Pozn. : Hlubší pipeline (více stupňů) znamená méně hradel v každém stupni a tím pádem možnost zvýšit pracovní frekvenci procesoru.., avšak více stupňů znamená i vyšší režii (nutnost lépe řadit instrukce do pipeline) AB36APO Architektura počítačů

Paralelizmus na úrovni instrukcí - Narušení sémantiky Datový hazard: Add zapíše novou hodnotu R ADD R,R2,R3 IF ID EX MEM WB SUB R4,R,R3 sekveční instrukční proud Řídicí hazard: BEQZ R3, M IF ID EX MEM WB IF ID EX MEM WB SUB přečte neplatnou hodnotu R Vyhodnocení podmínky, výpočet PC PC změněn ADD R6,R,R2 instrukce 3 instrukce 4 M: ADD R4,R6,R7 IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB Měli být přineseny (a následně spracovávany) tyto instrukce? AB36APO Architektura počítačů

Nezřetězené vykonávání PC PC Instr 25:2 WE3 SrcA ALU Instr. 2:6 A2 RD2 SrcB A3 Reg. WD3 File WriteData 2:6 Rt WriteReg 5: Rd 4 PCPlus4 5: Sign Ext <<2 SignImm Zero AluOut PCBranch WE Data WD ReadData Result AB36APO Architektura počítačů 2 Z přednášky č.2

Zřetězené vykonávání AluOutW PC PC Instr 25:2 WE3 SrcA ALU Instr. 2:6 A2 RD2 SrcB A3 Reg. WD3 File WriteDataE 2:6 Rt WriteRegE 5: Rd 4 PCPlus4F 5: Sign Ext PCPlus4D <<2 SignImm PCPlus4E Zero AluOutM WriteDataM WriteRegM PCBranch WE Data WD Result ReadData WriteRegW Fetch Decode Execute WriteBack AB36APO Architektura počítačů 3

Zřetězené vykonávání 3:26 5: Control Unit Opcode Funct MemToReg MemWrite Branch ALUControl 2: ALUScr RegDest RegWrite AluOutW PC PC Instr 25:2 WE3 SrcA ALU Instr. 2:6 A2 RD2 SrcB A3 Reg. WD3 File WriteDataE 2:6 Rt WriteRegE 5: Rd 4 PCPlus4F 5: Sign Ext PCPlus4D <<2 SignImm PCPlus4E Zero AluOutM WriteDataM WriteRegM PCBranch WE Data WD Result ReadData WriteRegW Fetch Decode Execute WriteBack AB36APO Architektura počítačů 4

Totéž, pouze zmenšeno a překresleno Control unit 3:26 Op 5: Funct RegWriteD MemToRegD MemWriteD ALUControlD ALUSrcD RegDstD BranchD RegWriteE MemToRegE MemWriteE ALUControlE ALUSrcE RegDstE BranchE RegWriteM MemToRegM MemWriteM BranchD PCSrcM RegWriteW MemTo RegW PC PC 4 A RD Instruction InstrD 25:2 WE3 2:6 A2 RD2 A3 Reg. WD3 File 2:6 5: 5: SignImmD Sign Ext RtD RdD RtE RdE Zero SrcAE WE ALUOutM ReadDataW SrcBE ALU Data WriteDataE WriteDataM WD ALUOutW WriteRegE 4: WriteRegM 4: WriteRegW 4: SignImmE PCPlus4F PCPlus4D PCBranchD <<2 ResultW AB36APO Architektura počítačů 5

Vznik datových hazardů Pracovní registry (Register File) přístup v dvou fázích (Decode, WriteBack) zápis v první polovině cyklu, čtení ve druhé.. RAW hazard Jak je možné řešit tento hazard a nedegradovat výkon pipeline? AB36APO Architektura počítačů 6

Řešení datových hazardů přeposíláním (forwarding) Pokud výsledek vzniká dřív než jej následující instrukce skutečně potřebují je možné tento hazard řešit přeposíláním (forwarding) nastává když se použité zdrojové registry instrukce ve stupni E shodují s cílovým registrem ve stupni M nebo WB proto musejí být čísla těchto registrů z těchto stupňů posílána do Hazard Unit taktéž zda cílový registr bude skutečně použit k zápisu (jinými slovy, zda se skutečně jedná o cílový registr lw vs. sw) RegWrite z M a WB AB36APO Architektura počítačů 7

Stávající procesor Control unit 3:26 Op 5: Funct RegWriteD MemToRegD MemWriteD ALUControlD ALUSrcD RegDstD BranchD RegWriteE MemToRegE MemWriteE ALUControlE ALUSrcE RegDstE BranchE RegWriteM MemToRegM MemWriteM BranchD PCSrcM RegWriteW MemTo RegW PC PC 4 A RD Instruction InstrD 25:2 WE3 2:6 A2 RD2 A3 Reg. WD3 File 2:6 5: 5: SignImmD Sign Ext RtD RdD RtE RdE Zero SrcAE WE ALUOutM ReadDataW SrcBE ALU Data WriteDataE WriteDataM WD ALUOutW WriteRegE 4: WriteRegM 4: WriteRegW 4: SignImmE PCPlus4F PCPlus4D PCBranchD <<2 ResultW AB36APO Architektura počítačů 8

Řešení datových hazardů přeposíláním (forwarding) Control unit 3:26 Op 5: Funct RegWriteD MemToRegD MemWriteD ALUControlD ALUSrcD RegDstD BranchD RegWriteE MemToRegE MemWriteE ALUControlE ALUSrcE RegDstE BranchE RegWriteM MemToRegM MemWriteM BranchD PCSrcM RegWriteW MemTo RegW PC PC 4 A RD Instruction InstrD 25:2 WE3 2:6 A2 RD2 A3 Reg. WD3 25:2 File RsD RsE 2:6 RtD RtE 5: RdD RdE 5: SignImmD Sign Ext Zero SrcAE WE ALUOutM ReadDataW SrcBE ALU Data WriteDataE WriteDataM WD ALUOutW WriteRegE 4: WriteRegM 4: WriteRegW 4: SignImmE PCPlus4F PCPlus4D PCBranchD <<2 ResultW Forward AE Forward BE RegWriteM RegWrite W Hazard unit AB36APO Architektura počítačů 9

Řešení datových hazardů pozastavením (stall) Pokud následující instrukce potřebují výsledek dřív než skutečně vzniká je možné tento hazard řešit pozastavením (stall) Pozastavení pipeline je prostředkem řešení hazardů; nezvyšuje však propustnost systému stupně pipeline předcházející stupni kde hazard vzniká jsou pozastaveny do doby, než jsou k dispozici výsledky požadované následujícími instrukcemi ty jsou pak přeposílány (forwarding) AB36APO Architektura počítačů 2

Řešení datových hazardů pozastavením (stall) pozastavení se dosáhne podržením hodnoty mezistupňových registrů výsledky z kolizního stupně se musejí ztratit řídicí signály umožňující měnit stav (kontext) procesoru (zápis pracovních registrů nebo do paměti, řízení povolení větvení) se nulují obojí se dosáhne přidáním řídicích vodičů k mezistupňovým registrům umožňujících měnit/uchovat nebo nulovat jejich obsah lw: typ I, rs bázová adresa, imm offset, rt kde uložit AB36APO Architektura počítačů 2

Stávající procesor Control unit 3:26 Op 5: Funct RegWriteD MemToRegD MemWriteD ALUControlD ALUSrcD RegDstD BranchD RegWriteE MemToRegE MemWriteE ALUControlE ALUSrcE RegDstE BranchE RegWriteM MemToRegM MemWriteM BranchD PCSrcM RegWriteW MemTo RegW PC PC 4 A RD Instruction InstrD 25:2 WE3 2:6 A2 RD2 A3 Reg. WD3 25:2 File RsD RsE 2:6 RtD RtE 5: RdD RdE 5: SignImmD Sign Ext Zero SrcAE WE ALUOutM ReadDataW SrcBE ALU Data WriteDataE WriteDataM WD ALUOutW WriteRegE 4: WriteRegM 4: WriteRegW 4: SignImmE PCPlus4F PCPlus4D PCBranchD <<2 ResultW Forward AE Forward BE RegWriteM RegWrite W Hazard unit AB36APO Architektura počítačů 22

Řešení datových hazardů pozastavením (stall) Control unit 3:26 Op 5: Funct RegWriteD MemToRegD MemWriteD ALUControlD ALUSrcD RegDstD BranchD RegWriteE MemToRegE MemWriteE ALUControlE ALUSrcE RegDstE BranchE RegWriteM MemToRegM MemWriteM BranchD PCSrcM RegWriteW MemTo RegW PC EN PC 4 A RD Instruction InstrD 25:2 WE3 2:6 A2 RD2 A3 Reg. WD3 25:2 File RsD RsE 2:6 RtD RtE 5: RdD RdE 5: SignImmD Sign Ext Zero SrcAE WE ALUOutM ReadDataW SrcBE ALU Data WriteDataE WriteDataM WD ALUOutW WriteRegE 4: WriteRegM 4: WriteRegW 4: SignImmE PCPlus4F EN PCPlus4D PCBranchD CLR <<2 ResultW Stall F Stall D FlushE Hazard unit Forward AE Forward BE MemToRegE RegWriteM RegWrite W AB36APO Architektura počítačů 23

Řídicí hazardy výsledek porovnání je znám až v 4. cyklu.. Proč? AB36APO Architektura počítačů 24

Řídicí hazardy raději znát výsledek dříve.. pokud dokážeme stanovit výsledek porovnání už v 2. cyklu můžeme redukovat tzv. misprediction penalty přesun rozhodování dopředu může zavést nové RAW hazardy..!!! AB36APO Architektura počítačů 25

Řešení řídicích hazardů vyprázdněním (flush) PC EN PC 4 A RD Instruction PCPlus4F CLR EN Control unit 3:26 Op 5: Funct 5: SignImmD Sign Ext <<2 RegWriteD MemToRegD MemWriteD ALUControlD ALUSrcD RegDstD BranchD EquaD = PCSrcD InstrD 25:2 WE3 2:6 A2 A3 RD2 Reg. WD3 25:2 File RsD RsE 2:6 RtD RtE 5: RdD RdE PCPlus4D PCBranchD CLR RegWriteE MemToRegE MemWriteE ALUControlE ALUSrcE RegDstE RegWriteM MemToRegM MemWriteM RegWriteW MemTo RegW SrcAE WE ALUOutM ReadDataW SrcBE ALU Data WriteDataE WriteDataM WD ALUOutW WriteRegE 4: WriteRegM 4: WriteRegW 4: SignImmE ResultW Stall F Stall D FlushE Hazard unit Forward AE Forward BE MemToRegE RegWriteM RegWrite W AB36APO Architektura počítačů 26

Řešení vzniklých RAW hazardů přeposíláním nebo pozastavením PC EN PC 4 A RD Instruction PCPlus4F CLR EN Control unit 3:26 Op 5: Funct 5: SignImmD Sign Ext <<2 RegWriteD MemToRegD MemWriteD ALUControlD ALUSrcD RegDstD BranchD EquaD = PCSrcD InstrD 25:2 WE3 2:6 A2 RD2 A3 Reg. WD3 File 25:2 RsD RsE 2:6 RtD RtE 5: RdD RdE PCPlus4D PCBranchD CLR RegWriteE MemToRegE MemWriteE ALUControlE ALUSrcE RegDstE Pozastavit Přeposlat / Pozastavit RegWriteM MemToRegM MemWriteM Netřeba RegWriteW MemTo RegW SrcAE WE ALUOutM ReadDataW SrcBE ALU Data WriteDataE WriteDataM WD ALUOutW WriteRegE 4: WriteRegM 4: WriteRegW 4: SignImmE ResultW Stall F Stall D BranchD ForwardAD Forward BD FlushE Hazard unit Forward AE Forward BE MemToRegE RegWriteE RegWriteM RegWrite W AB36APO Architektura počítačů 27

Hotovo navržený zřetězený procesor PC EN PC 4 A RD Instruction PCPlus4F CLR EN Control unit 3:26 Op 5: Funct 5: SignImmD Sign Ext <<2 RegWriteD MemToRegD MemWriteD ALUControlD ALUSrcD RegDstD BranchD EquaD = PCSrcD InstrD 25:2 WE3 2:6 A2 RD2 A3 Reg. WD3 File 25:2 RsD RsE 2:6 RtD RtE 5: RdD RdE PCPlus4D PCBranchD CLR RegWriteE MemToRegE MemWriteE ALUControlE ALUSrcE RegDstE RegWriteM MemToRegM MemWriteM RegWriteW MemTo RegW SrcAE WE ALUOutM ReadDataW SrcBE ALU Data WriteDataE WriteDataM WD ALUOutW WriteRegE 4: WriteRegM 4: WriteRegW 4: SignImmE ResultW Stall F Stall D BranchD ForwardAD Forward BD FlushE Hazard unit Forward AE Forward BE MemToRegE RegWriteE RegWriteM RegWrite W AB36APO Architektura počítačů 28

Zřetězený procesor výkon: IPS = IC / T = IPC str.f CLK Jaká může být maximální frekvence procesoru? Který stupeň je nejpomalejší? Dobu cyklu určuje nejpomalejší stupeň V našem případě: Tc = 3 ns --> 3 333 khz Zanedbejme plnění pipeline, všechna pozastavení pipeline a všechna vyprázdnění. Pak bude IPC =. IPS =. 3 333e3 = 3 333 instrukcí za sekundu Zavedením 5-stupňového zřetězení jsme zlepšili propustnost 3 333 / 98 = 3,4 krát! (i za předpokladu IPC=) AB36APO Architektura počítačů 29

Co jsme navrhli? Návrat k nezřetězenému procesoru 4 PCPlus4F 3:26 5: 2:6 5: 5: Control Unit Opcode Funct Reg. File Sign Ext PCPlus4D MemToReg MemWrite Branch ALUControl 2: ALUScr RegDest RegWrite Rt Rd SignImm PCPlus4E WriteData WriteReg PCBranch AluOutW PC PC Instr 25:2 WE3 SrcA Zero WE Result ALU 2:6 Instr. A2 RD2 SrcB AluOutM Data ReadData A3 WD3 WD <<2 AB36APO Architektura počítačů 3

Co jsme navrhli? Návrat k nezřetězenému procesoru Paměti Instr. Data WD WE 4 PCPlus4F 3:26 5: 2:6 5: 5: Control Unit Opcode Funct Reg. File Sign Ext PCPlus4D MemToReg MemWrite Branch ALUControl 2: ALUScr RegDest RegWrite Rt Rd SignImm PCPlus4E WriteData WriteReg PCBranch Řídicí část (control path) AluOutW PC PC Instr 25:2 WE3 SrcA Zero WE Result ALU 2:6 A2 RD2 SrcB AluOutM ReadData A3 WD3 WDDatová část <<2 (data path) AB36APO Architektura počítačů 3

Co jsme navrhli? Procesor Řídicí jednotka PC Instrukce RD A PC Instr. Adresa odkud číst / kam zapsat Data k zapsání Data WD WE Povolení zápisu Načtená data Datapath RD A WD Adresa Výsledky AB36APO Architektura počítačů 32

Co jsme navrhli? zřetězená verze PC EN PC 4 A RD Instruction PCPlus4F EN Contr ol unit 3:26Op 5:Funct RegWriteD MemToRegD MemWriteD ALUControlD ALUSrcD RegDstD BranchD InstrD25:2 WE3 2:6 A2 RD2 A3 Reg. WD3 25:2 File 2:6 5: 5: SignImmD Sign Ext PCPlus4D PCBranchD <<2 EquaD PCSrcD = RsD RtD RdD CLR RegWriteE MemToRegE MemWriteE ALUControlE ALUSrcE RegDstE RsE RtE RdE SrcAE SrcBEALU WriteDataE WriteRegE 4: SignImmE RegWriteM MemToRegM MemWriteM WE ALUOutM Data W D WriteDataM RegWriteW MemTo RegW ReadDataW ALUOutW WriteRegM 4: WriteRegW 4: ResultW Stall F Stall D BranchD ForwardAD Forward BD FlushE Hazard unit Forward AE Forward BE MemToRegE RegWriteE RegWrite M RegWrit e W AB36APO Architektura počítačů 33

Zřetězený procesor časování Specifikace časování pro synchronní sekvenční obvod: t setup předstih t hold přesah Omezující podmínka na předstih signálu před hodinami: Tc >= t pcq t pd t setup AB36APO Architektura počítačů 34

Zřetězený procesor časování Omezující podmínka na předstih signálu před hodinami (zohlednění nedokonalosti rozvodu hodin): Tc >= t pcq t pd t setup t skew Představuje omezení pokud se začíná blížit nebo dokonce dominovat nad t pd (příliš hluboká pipeline / příliš mnoho stupňů ) AB36APO Architektura počítačů 35

Lineární zřetězení: Vyvažování stupňů zřetězení (též: stromový sumátor, stromová násobička, iterační dělička..) Vyvažování: cílem je rozdělit jednotlivé bloky do N stupňů tak, aby ve zpoždění ve všech stupních bylo pokud možno stejné Volba počtu stupňů závisí od preference: propustnost vs. latence AB36APO Architektura počítačů 36

Superzřetězení nevyvážené 5-stupňové zřetězení: IM RF DM RF IF ID EX MEM WB hlubší zřetězení vzniklá další dekompozicí IM RF DM RF IF IS RF EX DF DS TC WB přináší možnost dalšího zvýšení pracovní frekvence, avšak také řadu dalších problémů.. další forwarding, nárůst pozastavení pipeline, hazardy AB36APO Architektura počítačů 37

Jaká je délka zřetězení? orientačně P5 (Pentium) : 5 P6 (Pentium 3): P6 (Pentium Pro): 4 NetBurst (Willamette, 8 nm) - Celeron, Pentium 4: 2 NetBurst (Northwood, 3 nm) - Celeron, Pentium 4, Pentium 4 HT: 2 NetBurst (Prescott, 9 nm) - Celeron D, Pentium 4, Pentium 4 HT, Pentium 4 ExEd: 3 NetBurst (Cedar Mill, 65 nm): 3 NetBurst (Presler 65 nm) - Pentium D: 3 Core : 4 Bonnell: 6 K7 Architecture - Athlon : -5 K8 - Athlon 64, Sempron, Opteron, Turion 64: 2-7 ARM 8-9: 5 ARM : 8 Cortex A7: 8- Cortex A8: 3 Cortex A5: 5-25 The Optimum Pipeline Depth for a Microprocessor: http://citeseerx.ist.psu.edu/viewdoc/download?doi=...93.4333&rep=rep&type=pdf AB36APO Architektura počítačů 38

Diskuze na závěr V případě řídicí závislosti musel procesor sledovat zda nastane nebo ne řídicí hazard. Pokud byl tento hazard detekován a skoková instrukce skok realizovala, pak přišlo k zahození následující instrukce. V opačném případě jsme pokračovali ve vykonávání běžným způsobem tj. následující instrukcí, která již byla rozpracována. Otázka: Je možné tento problém řešit i jiným způsobem? Odpověď: Ano, budeme tento hazard ignorovat.. Co to přináší? Procesor vykoná vždy instrukci bezprostředně následující za každou skokovou instrukcí (ta mění PC v našem případě s opožděním jednoho cyklu) bez ohledu na platnost či neplatnost podmínky skoku, pokud však tato skoková instrukce není vykonána v důsledku právě tohoto pravidla. Jinými slovy: Skoková instrukce skočí s opožděním jednoho cyklu (jedné instrukce). Tomu se říká branch delay slot. A jaký to má důsledek? Programátor (kompilátor) musí s tímto chováním procesoru počítat! Poznámka: Je to běžné chování mnoha DSP (digital signal processor) nebo některých RISC-ových procesorů (MIPS, SPARC) AB36APO Architektura počítačů 39

Diskuze na závěr Úkolem kompilátoru je tedy zabezpečit, že následující instrukce nacházející se v branch delay slotu budou platné a užitečné. Na níže uvedených obrázcích jsou ilustrovány tři alternativy jak je možné plnit delay slot. Nejsnadnější způsob (zároveň nejméně efektivní), je plnit delay slot prázdnou instrukci nop. AB36APO Architektura počítačů 4