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

Rozměr: px
Začít zobrazení ze stránky:

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

Transkript

1 Architektura počítačů Zvyšování výkonnosti Lubomír Bulej CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

2 Faktory omezující výkon procesoru 2/78 Délka strojového cyklu Omezení délkou nejsložitější fáze nejsložitější instrukce Zrychlení: Přechod od jednocyklové datové cesty k vícecyklové datové cestě Jednoduché instrukce lze provést rychleji než složitější instrukce insn0.fetch, dec, exec insn0.fetch, dec, exec insn0.fetch insn0.dec insn0.exec0 insn0.exec1 insn1.fetch insn1.dec insn1.exec0 insn1.exec1 insn1.exec2

3 3/78 Faktory omezující výkon procesoru (2) Clock per instruction (CPI) Omezení počtem zpracovávaných instrukcí v jednom okamžiku I vícecyklová datová cesta v každý okamžik zpracovává pouze jednu instrukci Latence vs. propustnost Latence jedné instrukce je odvozena od délky strojového cyklu (tuto délku nemůžeme zkracovat neomezeně) Propustnost posloupnosti instrukcí (celého programu) zvýšíme paralelním zpracováním více instrukcí současně

4 4/78 Zřetězené zpracování instrukcí Pipelining Při zahájení 2. kroku instrukce zahájí datová cesta současně 1. krok následující instrukce Paralelismus na úrovni instrukčních kroků (zachování sekvenčního modelu) Latence (doba zpracování) jednotlivých instrukcí se nemění, zvyšuje se propustnost insn0.fetch insn0.dec insn0.exec0 insn0.exec1 insn1.fetch insn1.dec insn1.exec0 insn1.exec1 insn1.exec2 insn0.fetch insn0.dec insn0.exec0 insn0.exec1 insn1.fetch insn1.dec insn1.exec0 insn1.exec1 insn1.exec2

5 Výkon zřetězeného procesoru 5/78 Hrubý odhad Zpracování n instrukcí, délka cyklu t, k kroků na instrukci T =n (k t ) Zřetězené zpracování s k-stupňovou pipeline První instrukce opustí pipeline po k taktech, každá další po 1 taktu T p =k t+(n 1) t Zrychlení Speedup= T T p = Zrychlení pro n >> k k+(n 1) n Speedup k n (k t) k t +(n 1) t = n k k +(n 1)

6 6/78 Datová cesta pro zřetězené zpracování Základní myšlenka Základem jednocyklová datová cesta Oddělená paměť pro instrukce a data Pomocné sčítačky (ALU se nesdílí) Prvky vícecyklové datové cesty Zpracování instrukce v oddělených krocích Registry pro mezivýsledky jednotlivých kroků (výstupy z instrukční a datové paměti, registrového pole a ALU)

7 Připomenutí: jednocyklová datová cesta MUX MUX MUX 7/78 PC 4 Jump Addr Insn IM add PC+4[31:28] I[15:0] I[25:0] I[25:21] I[20:16] I[15:11] RegDst Sign ext. Shl 2 MUX RegWrite RS RT RT/RD WD A B MUX Shl 2 32 ALUSrc 32 MemToReg 32 ALUOp ALU Branch add MemWrite Addr Data DM RF 32

8 Připomenutí: vícecyklová datová cesta 8/78 PC IorD MemWrite IRWrite RegDst RegWrite ALUSrcA Address Data Data Memory MemRead Insn Register [25:21] [20:16] [15:0] [15:11] Data Register 0 1 Read register 1 Read register 2 Write register Write data Register data 1 Register data 2 Register File A B 4 ALUSrcB 3 2 ALU ALU Control ALUOp ALU Out MemToReg [15:0] [5:0] 16 Sign 32 Shl ext. 2

9 Datová cesta pro zřetězené zpracování (2) 0 1 9/78 Branch 4 Jump add Shl 2 Shl 2 ALUOp add PC Addr Insn IM IR [25:0] [15:0] [25:21] [20:16] [15:11] RegDst Sign ext. RS RT RD WD RF A B A B ALUSrc ALU O Addr Data DM MemWrite D MemToReg RegWrite

10 Datová cesta pro zřetězené zpracování (3) 0 1 Branch 4 Jump add Shl 2 Shl 2 ALUOp add PC Addr Insn IM IR [25:0] [15:0] [25:21] [20:16] [15:11] RegDst Sign ext. RS RT RD WD RF A B A B ALUSrc ALU O Addr Data D DM MemToReg MemWrite RegWrite Fetch Decode Execute Memory access Write back 10/78

11 Datová cesta pro zřetězené zpracování (4) Datová cesta rozdělena do k úseků (stupňů, stages) V každém úseku jiná instrukce Nejpomalejší úsek určuje rychlost pipeline Mezi jednotlivými úseky registry (latches) Stav instrukce, operandy, řídící signály Instrukce uvnitř datové cesty jsou v různých stavech Ideální stav: CPI = 1 V každém hodinovém cyklu opustí pipeline jedna instrukce Latence instrukcí zvyšuje režii, ne propustnost Reálně: CPI > 1 (zpoždění pipeline) 11/78

12 Datová cesta pro zřetězené zpracování (5) Branch PC 4 PCSrc add Addr Insn IM IF/ID PC+4 [25:0] [15:0] [25:21] [20:16] [15:11] Kolize Jump RegDst Shl 2 Sign ext. RegWrite RS RT RD WD RF A B ID/EX PC+4 imm A B Shl 2 ALUSrc add ALUOp ALU EX/MA O R Addr Data DM MemWrite MemToReg MA/WB O D Fetch Decode Execute Memory access Write back 12/78

13 Datová cesta pro zřetězené zpracování (6) Branch PC 4 PCSrc add Addr Insn IM RegDst IF/ID PC+4 [25:0] [15:0] [25:21] [20:16] [15:11] Jump Shl 2 Sign ext. RegWrite RS RT RD WD RF A B ID/EX PC+4 imm Shl 2 ALUSrc add ALUOp Fetch Decode Execute A B RD ALU EX/MA O R RD Addr Data DM MemWrite Memory access MemToReg MA/WB O D RD Write back 13/78

14 Terminologická vsuvka Skalární pipeline (scalar pipeline) V každém úseku se zpracovává pouze 1 instrukce Superskalární pipeline (superscalar pipeline) V některých úsecích (ne nutně všech) lze zpracovávat více instrukcí současně (ne nutně všechny kombinace) Více ALU, složitější řízení Více pipeline vedle sebe, které sdílejí některé zdroje Pipeline U a V u původního Pentia 14/78

15 Terminologická vsuvka (2) Zpracování podle pořadí (in-order pipeline) Instrukce vstupují do pipeline podle pořadí v paměti Zpracování mimo pořadí (out-of-order pipeline) Pipeline může prohazovat pořadí provádění instrukcí Typické pro superskalární pipeline Cílem je vždy využít všechny ALU, které jsou k dispozici Předdekódování instrukcí pro zjištění jejich typu 15/78

16 Terminologická vsuvka (3) Délka/hloubka pipeline, počet stupňů pipeline (pipeline depth) Počet úseků (stages) pipeline U jednodušších RISCových procesorů bývá počet úseků odvozen od logických kroků instrukce U složitějších (superskalárních, out-of-order) procesorů trend používat více stupňů pipeline Obvykle lehce více než 10 stupňů u Haswell/Broadwell/Skylake/Kaby Lake Mikroarchitektura NetBurst (Pentium 4) Hyper Pipelined Technology 20 stupňů od Willamette, 31 stupňů od Prescott 16/78

17 Zpracování 3 instrukcí, krok 1 Branch PCSrc Jump MemToReg 4 IF/ID ID/EX add MA/WB PC add Addr Insn IM PC+4 [25:0] [15:0] [25:21] [20:16] [15:11] Shl 2 Sign ext. RegWrite RS A RT B RD PC+4 imm A B Shl 2 ALUOp ALU EX/MA O R Addr Data O D RD RegDst WD ALUSrc DM RF RD RD MemWrite add $3, $2, $1 17/78

18 Zpracování 3 instrukcí, krok 2 Branch PCSrc Jump MemToReg 4 IF/ID ID/EX add MA/WB PC add Addr Insn IM PC+4 [25:0] [15:0] [25:21] [20:16] [15:11] Shl 2 Sign ext. RegWrite RS A RT B PC+4 imm A B Shl 2 ALUOp ALU EX/MA O R Addr Data O D RD RegDst ALUSrc DM RF RD RD MemWrite lw $4, 0($5) add $3, $2, $1 18/78

19 Zpracování 3 instrukcí, krok 3 Branch PCSrc Jump MemToReg 4 IF/ID ID/EX add MA/WB PC add Addr Insn IM PC+4 [25:0] [15:0] [25:21] [20:16] [15:11] Shl 2 Sign ext. RegWrite RS A RT B PC+4 imm A B Shl 2 ALUOp ALU EX/MA O R Addr Data O D RD RegDst ALUSrc DM RF RD RD MemWrite sw $6, 0($7) lw $4, 0($5) add $3, $2, $1 19/78

20 Zpracování 3 instrukcí, krok 4 Branch PCSrc Jump MemToReg 4 IF/ID ID/EX add MA/WB PC add Addr Insn IM PC+4 [25:0] [15:0] [25:21] [20:16] [15:11] Shl 2 Sign ext. RegWrite RS A RT B PC+4 imm A B Shl 2 ALUOp ALU EX/MA O R Addr Data O D RD RegDst ALUSrc DM RF RD RD MemWrite sw $6, 0($7) lw $4, 0($5) add $3, $2, $1 20/78

21 Zpracování 3 instrukcí, krok Branch PC 4 PCSrc add Addr Insn IM RegDst IF/ID PC+4 [25:0] [15:0] [25:21] [20:16] [15:11] Jump Shl 2 Sign ext. RegWrite RS RT RD WD RF A B ID/EX PC+4 imm A B RD Shl 2 ALUSrc add ALUOp ALU EX/MA O R RD MA/WB O D RD Addr Data DM MemWrite MemToReg sw $6, 0($7) lw $4, 0($5) add $3, $2, $1 21/78

22 Zpracování 3 instrukcí, krok Branch PC 4 PCSrc add Addr Insn IM RegDst IF/ID PC+4 [25:0] [15:0] [25:21] [20:16] [15:11] Jump Shl 2 Sign ext. RegWrite RD WD RF ID/EX PC+4 imm A B RD Shl 2 ALUSrc add ALUOp ALU EX/MA O R RD MA/WB O D RD Addr Data DM MemWrite MemToReg sw $6, 0($7) lw $4, 0($5) 22/78

23 Zpracování 3 instrukcí, krok Branch PC 4 PCSrc add Addr Insn IM RegDst IF/ID PC+4 [25:0] [15:0] [25:21] [20:16] [15:11] Jump Shl 2 Sign ext. RegWrite RS RT RD WD RF A B ID/EX PC+4 imm A B RD Shl 2 ALUSrc add ALUOp ALU EX/MA O R RD MA/WB O D RD Addr Data DM MemWrite MemToReg sw $6, 0($7) 23/78

24 Řízení pipeline Různé přístupy Využití jednocyklového řadiče Signály je potřeba aktivovat postupně Kombinační obvod nebo ROM dekóduje operační kód instrukce Stejně jako datová cesta je i cesta pro řídící signály zřetězena pomocí latch registrů pro jednotlivé úseky Každá instrukce si nese řídící signály s sebou Využití vícecyklového řadiče Komplikované řešení Jeden složitý konečný automat Hierarchické konečné automaty (pro každý úsek pipeline) 24/78

25 25/78 Řízení pipeline (2) PCSrc Jump Control RegWrite MemToReg MemWrite WB ALUSrc MA WB ALUOp Branch EX EX MA MA WB WB IF/ID ID/EX EX/MA MA/WB

26 Výkonnost zřetězené datové cesty Jednocyklová datová cesta takt = 50ns, CPI=1 50ns na instrukci Vícecyklová datová cesta 20% branch (3T), 20% load (5T), 60% ALU (4T) takt = 11ns, CPI (20% 3) + (20% 5) + (60% 4) = 4 44ns na instrukci Zřetězená datová cesta takt = 12ns (cca 50ns/5 kroků) CPI = 1 (v každém cyklu je dokončena 1 instrukce) 12ns na instrukci? Ve skutečnosti CPI = 1 + režie > 1 CPI = ns na instrukci 26/78

27 Proč nelze dosáhnout CPI = 1? Reálná pipeline CPI = 1 + penalizace za zpoždění Penalizace odvozena z frekvence výskytu zpoždění a počet taktů zpoždění Ani velké penalizace nevadí, pokud nenastávají příliš často Penalizace ovlivňuje ideální počet stupňů pipeline Zpoždění (stall) je prázdný krok v pipeline Vložen s cílem ošetřit hazard pipeline Hazard Situace, která ohrožuje iluzi nezávislosti jednotlivých instrukcí 27/78

28 Typy hazardů v pipeline Strukturální hazard Hardware nepodporuje danou kombinaci instrukcí Současné použití sdíleného prostředku z více stupňů pipeline Řešení v našem případě: Oddělení instrukční a datové paměti Reálně: Oddělená instrukční a datová cache 28/78

29 Typy hazardů v pipeline (2) Datový hazard Instrukce nemá k dispozici data pro vykonání Hodnoty argumentů jsou výsledky operací instrukce, která je ještě stále v pipeline Nutnost počkat na předchozí instrukce Řídící hazard Nutno učinit rozhodnutí před vykonáním instrukce Podmíněný skok je zpracováván až ve 3. kroku V té době už pipeline zpracovává 2 další instrukce 29/78

30 30/78 Pipeline diagramy Zjednodušená reprezentace pipeline Všechny úseky trvají právě 1 cyklus Diskrétní čas v hodinových cyklech pořadí provádění instrukcí lw $10, 20($1) sub $11, $2, $3 add $13, $3, $4 lw $13, 24($1) add $14, $5, $ čas [cykly]

31 Datový hazard Závislosti mezi operandy instrukcí Operand je výsledek operace předchozí instrukce Operand je obsah paměti čtený předchozí instrukcí Zjišťování závislostí (při návrhu) Graf Vrcholy = aktivní prvky pipeline v čase Hrany = řídící nebo datové signály Závislosti = hrany vedoucí dopředu v čase Zjišťování závislostí (v hardwaru) Vyhodnocování čísel registrů a paměťových adres všech instrukcí právě prováděných v pipeline 31/78

32 Datový hazard (2) 32/78 pořadí provádění instrukcí sub $2, $1, $ čas [cykly] and $12, $2, $5 or $13, $6, $2 and $14, $2, $2 sw $15, 64($2)

33 Ošetření datových hazardů Na úrovni překladače (software interlock) Řazení instrukcí tak, aby došly do pipeline až v okamžiku, kdy mají k dispozici všechny operandy Mezi dvojici závislých instrukcí vložit nezávislou instrukci (nepotřebují žádný registr, který je předmětem závislosti) V nejhorším případě použití prázdné instrukce (nop) Nevhodné řešení z hlediska kompatibility MIPS = Microprocessor without Interlocked Pipeline Stages 33/78

34 Ošetření datových hazardů (2) Forwarding/bypassing Poskytnutí mezivýsledku následující instrukci Je-li výsledek v některém z následujících pipeline registrů (pro předchozí instrukci), lze jej přečíst přímo z tohoto pipeline registru a nečekat na registrové pole Forwarding unit Zdrojový operand vykonávané instrukce je cílový operand výsledku dřívější instrukce EX/MA.RD := ID/EX.RS EX/MA.RD := ID/EX.RT MA/WB.RD := ID/EX.RS MA/WB.RD := ID.EX.RT 34/78

35 Datový hazard forwarding/bypassing 35/78 pořadí provádění instrukcí sub $2, $1, $ čas [cykly] and $12, $2, $5 or $13, $6, $2 and $14, $2, $2 sw $15, 64($2)

36 Ošetření datových hazardů (3) Zpoždění instrukce v pipeline V případě použití operandu (registru) bezprostředně po jeho načtení z paměti (load/use dependency) Hazard detection unit Testování, zda zdrojový operand dekódované instrukce je cílový operand dřívější instrukce čtení z paměti ID/EX.MemRead && (ID/EX.RT == IF/ID.RS ID/EX.RT == IF/ID.RT) 36/78

37 Datový hazard load/use závislosti 37/78 pořadí provádění instrukcí lw $2, 20($1) čas [cykly] and $4, $2, $5 or $8, $2, $6 and $9, $4, $2 slt $1, $6, $7

38 Datový hazard load/use a forwarding 38/78 pořadí provádění instrukcí lw $2, 20($1) čas [cykly] and $4, $2, $5 or $8, $2, $6 and $9, $4, $2 slt $1, $6, $7

39 Datový hazard zpoždění pipeline 39/78 pořadí provádění instrukcí lw $2, 20($1) čas [cykly] and $4, $2, $5 nop and $4, $2, $5 IF ID or $8, $2, $6 and $9, $4, $2

40 Datový hazard zpoždění pipeline (2) 40/78 pořadí provádění instrukcí lw $2, 20($1) čas [cykly] and $4, $2, $5 nop and $4, $2, $5 IF ID or $8, $2, $6 and $9, $4, $2

41 Datový hazard zpoždění pipeline (3) 41/78 pořadí provádění instrukcí lw $2, 20($1) čas [cykly] and $4, $2, $5 nop and $4, $2, $5 IF ID or $8, $2, $6 and $9, $4, $2

42 Řídící hazard Odkud číst další instrukci Hodnota PC ovlivněna podmíněnými a nepodmíněnými skoky Rozhodnutí závisí na výsledku, který bude k dispozici o několik taktů později, než je potřeba Výjimky a přerušení Ošetření řídícího hazardu Forwarding není možný Cílová adresa skoku může být známa, ale vyhodnocení podmínky ne Cíl: Minimalizovat zpoždění pipeline 42/78

43 Řídící hazard větvení 43/78 pořadí provádění instrukcí 40: beq $1, $3, 28 IF ID EX MA WB čas [cykly] 44: and $12, $2, $5 48: or $13, $6, $2 52: and $14, $2, $2 72: lw $4, 50($7)

44 Ošetření řídícího hazardu Zpozdit pipeline do dokončení skoku Snaha udržet stále plnou pipeline Odkud číst další instrukce? Zrychlené vyhodnocení skoku Přesun výpočtu adresy skoku a vyhodnocení podmínky z úseku EX do úseku ID Forwardování mezivýsledků Předpokladem je jednoduchá podmínka skoku (např. test na rovnost) Zpoždění 1 cyklus při skoku Zpožděný skok (branch delay slot) Vždy se vykoná 1 instrukce po instrukci skoku 44/78

45 Ošetření řídícího hazardu (2) Snaha udržet stále plnou pipeline Odkud číst další instrukce? Branch target buffer Cache cílových adres specifických instrukcí Spekulativní provádění instrukcí Provádění instrukcí naslepo bez vyhodnocení podmínky skoku Pokud se později zjistí, že se má provádět jiná varianta, pipeline se vyprázdní (rollback) U složitých procesorů může znamenat částečnou virtualizaci registrového souboru a store bufferů (zápisy do paměti) 45/78

46 Predikce skoku Statická predikce Predikce nezávisí na historii Bez nápovědy Heuristika určena hardwarem Obvykle se předpokládá, že se skok neprovede Méně často složitější heuristiky (vzdálenost skoku apod.) S nápovědou Pravděpodobnější chování skoku určeno bitem v instrukci 46/78

47 Predikce skoku (2) Dynamická predikce Predikce na základě historie Branch prediction buffer (history table) Uchovává stav prediktoru pro konkrétní instrukci skoku 1-bitový prediktor (2 stavy) Stav prediktoru odráží poslední provedení instrukce Predikce stejného chování jako v minulosti Problém s cykly: s výjimkou poslední iterace se skáče zpět 2 špatné predikce u jednoduchých cyklů Násobně více při u vnořených cyklů 2-bitový prediktor (4 stavy) Obecné schéma: čítač úspěchu/neúspěchu predikce, střed rozsahu předěl mezi typem predikce Omezuje mispredikce při silné preferenci určitého typu výsledku (platí pro velké množství skoků) 47/78

48 Branch history table Základní (1-bitový) prediktor Tabulka bitů predikce indexována částí PC Rozšíření Vícebitový prediktor Korelující prediktor Soutěžící prediktor Branch target buffer Podmíněné instrukce Vadí aliasing (různé hodnoty PC se stejnými nižšími bity)? Jak je to s vnořenými cykly? h 2 predikce T or NT T or NT T or NT PC [31:10] [9:2] [1:0] 48/78

49 2-bitový prediktor skoků 49/78 10 taken 11 taken predict: taken not taken predict: taken taken not taken not taken 01 predict: not taken not taken taken 00 predict: not taken

50 Zřetězené zpracování a výjimky V pipeline je k instrukcí současně Která instrukce způsobila výjimku? Informace se musí propagovat v pipeline registrech Když nastane více výjimek, kterou obsloužit dříve? Tu, která patří k instrukci dříve v pořadí Obsluha výjimky Důraz na zachování konzistentního stavu procesoru Data z pipeline registrů se nikam nezapisují (registrový soubor a paměť obsahují hodnoty před výskytem výjimky) Před obsluhou nutno vyprázdnit pipeline (rollback) Stejná logika jako při spekulativním provádění skoků 50/78

51 Prodlužování pipeline Trend: Delší pipeline 486 (5 stupňů), Pentium (7 stupňů), Pentium III (12 stupňů), Pentium 4 (20 31 stupňů), Core (14 stupňů) Důsledky Vyšší taktovací frekvence Zvýšení není lineární, od určité délky způsobuje pokles výkonu Pentium 4 na 1 GHz je pomalejší než Pentium III na 800 MHz Obecně vyšší CPI Vyšší penalizace za špatně predikované skoky Zpoždění u hazardů, které nelze vyřešit bypassem 51/78

52 Zvyšování počtu pipeline Flynn bottleneck Teoretické omezení skalární pipeline V každém stupni pouze 1 instrukce CPI = IPC = 1 V praxi není možné ji dosáhnout (hazardy) Výnosy z prodlužování pipeline rychle klesají Superskalární (multiple issue) pipeline Dnešní procesory typicky 4 pipeline Využití paralelismu na úrovni instrukcí Nezávislé instrukce se dají vykonávat současně 52/78

53 Paralelismus na úrovni instrukcí Optimální plánování instrukcí překladačem Nutné i pro skalární pipeline (omezení hazardů) Pro superskalární pipeline složitější Kolik nezávislých proudů instrukcí lze v programu najít? Ideální případ: Kopírování bloku paměti Při rozbalení smyčky dostáváme spoustu nezávislých instrukcí V běžných programech zdaleka ne tolik Alternativa: Simultaneous multithreading (SMT) 53/78

54 Simultaneous multithreading Zpracování více nezávislých vláken současně Na úrovni superskalární pipeline Kódy nezávislých vláken by na sobě měly být z definice nezávislé, takže využijí vícenásobnou pipeline efektivněji Energeticky efektivnější než implementace více jader Zvětšení registrového souboru a logiky čtení instrukcí Ostatní logika procesoru zůstává prakticky nezměněna Detekovatelná softwarem (logické procesory) Nevýhody: Implicitně sdílené zdroje (cache, přístup do paměti) Intel Hyper-Threading Technology 54/78

55 Temporal multithreading Úprava principu SMT pro jednu pipeline Pragmaticky: Přepínání vláken na úrovni procesoru Jemné (fine-grained) Přepnutí vlákna s každou instrukcí Niagara (Sun UltraSPARC T1) Hrubé (coarse-grained) K přepnutí dojde tehdy, pokud zpracování aktuální instrukce způsobí zpozdění (pipeline stall, cache miss, page fault) Montecito (Intel Itanium 2) 55/78

56 56/78 Typická superskalární pipeline Čtení instrukcí Celý blok cache (16, 32 nebo 64 bytů), 4 16 instrukcí Predikce jednoho skoku v každém cyklu Paralelní dekódování instrukcí Detekce závislostí a hazardů Víceportové, vícenásobné registrové pole Více výkonných jednotek Různé ALU, forwarding/bypassing logika mezi nimi Přístup do paměti

57 Static multiple issue Plánování superskalární pipeline překladačem Issue packet Sada instrukcí, které se mají provést současně Sloty v issue packetu nejsou ortogonální Very Long Instruction Word (VLIW) Explicit Parallel Instruction Computer (EPIC) Výkon silně závisí na překladači Vhodné plánování instrukcí (plnění instrukčních slotů) Některé nebo všechny důsledky datových a řídících hazardů řeší překladač Statická predikce skoků 57/78

58 Příklad: Multiple issue MIPS 58/78 pořadí provádění instrukcí ALU / branch load / store ALU / branch load / store ALU / branch load / store ALU / branch load / store ALU / branch load / store čas [cykly]

59 Příklad: Multiple issue MIPS (2) Změny oproti single issue Načítání 64bitových instrukcí, zarovnání na 8 bytů Nevyužitý slot může obsahovat NOP Registrové pole pro přístup z obou slotů Samostatná sčítačka pro výpočet efektivní adresy Nevýhody Vyšší latence při použití výsledků Registrové operace 1 instrukce, load 2 instrukce Složitější plánování instrukcí překladačem Penalizace v důsledku hazardů jsou dražší 59/78

60 Příklad: Multiple issue MIPS (3) Jak naplánovat následující kód? Loop: lw addu $t0, 0($s1) $t0, $t0, $s2 # $t0 = prvek pole # přičíst konstantu v $s2 sw addi $t0, 0($s1) $s1, $s1, -4 # uložit výsledek zpět # posun ukazatele v poli bne $s1, $zero, Loop # opakovat pokud $s1!= 0 ALU or branch insn Data transfer insn Clock cycle Loop: lw $t0, 0($s1) 1 addi $s1, $s1, -4 2 addu $t0, $t0, $s2 3 bne $s1, $zero, Loop sw $t0, 4($s1) 4 Výkonnost? 4 takty, 5 instrukcí CPI = 0.8 (místo ideálních 0.5) 60/78

61 Příklad: Multiple issue MIPS (4) Program po rozbalení 4 iterací cyklu ALU or branch insn Data transfer insn Clock cycle Loop: addi $s1, $s1, -16 lw $t0, 0($s1) 1 Přejmenování registrů (překladačem) lw $t1, 12($s1) 2 addu $t0, $t0, $s2 lw $t2, 8($s1) 3 addu $t1, $t1, $s2 lw $t3, 4($s1) 4 addu $t2, $t2, $s2 sw $t0, 16($s1) 5 addu $t3, $t3, $s2 sw $t1, 12($s1) 6 sw $t2, 8($s1) 7 bne $s1, $zero, Loop sw $t3, 4($s1) 8 nutné k odstranění falešných závislostí vzniklých při rozbalení cyklu místo $t0 překladač použil jiný registr pro každou iteraci 61/78

62 Příklad: Itanium (IA-64) Hlavní rysy Mnoho registrů 128 general purpose, 128 floating point, 8 branch, 64 condition Registrová okna s podporou přetečení do paměti EPIC instruction bundle Svazek instrukcí vykonávaný současně Pevný formát, explicitní závislosti Stop bit: Indikace, zda následující bundle závisí na aktuálním Podpora spekulace a eliminace větvení Instrukce se provede, ale teprve později se rozhodne, zda její efekt bude trvalý (provede se rollback) 62/78

63 Příklad: Itanium (IA-64) (2) Další zajímavé vlastnosti Instruction group Skupina instrukcí bez datových závislostí Odděleny instrukcí se stop bitem Kvůli dopředné kompatibilitě (rozšíření počtu pipelines) Struktura instruction bundle 5 bitů template (použité výkonné jednotky) 3 41 bitů instrukce Většina instrukcí může záviset na podmínkovém registru 63/78

64 Dynamic multiple issue Dynamické plánování instrukcí v pipeline Optimální využití paralelismu, eliminace hazardů a prostojů Zpracování instrukcí mimo pořadí Zachování iluze sekvenčního pořadí Překladač se snaží procesoru plánování usnadnit Spekulativní provádění instrukcí Provedení instrukcí s potenciálně špatnými operandy nebo bez zaručení využití výsledku Mechanismus rollbacku podobně jako při predikci skoků 64/78

65 Příklad: dynamické plánování instrukcí 65/78

66 Out-of-order execution Procesor je řízen datovými závislostmi Kolize mezi jmény registrů v instrukcích RAW (Read After Write, true data dependency) Výsledek instrukce je používán jako operand následující WAW (Write After Write, output dependency) Dvě instrukce zapisují do stejného registru (výsledek musí odpovídat pozdější instrukci) WAR (Write After Read, anti-dependency) Zatímco jedna instrukce zpracovává data, další instrukce tato data změní WAW a WAR lze vyřešit přejmenováním registrů Procesor má více fyzických registrů než definuje architektura 66/78

67 Příklad: Eliminace WAW 67/78 Kód z pohledu procesoru (po přerovnání) move r3, r7 add r3, r4, r5 move r1, r3 Po přejmenování registrů move r3, r7 add fr8, r4, r5 move r1, fr8

68 Dynamic multiple issue (2) 68/78 In-order issue Instruction fetch Instruction decode Instruction scheduler Reservation station Reservation station Reservation station Reservation station Integer ALU Integer ALU FP ALU Load/Store Commit unit In-order commit

69 Out-of-order a výjimky Komplikovanější než skalární pipeline Při out-of-order zpracování je těžší definovat místo přerušení výpočtu Instrukce následující po instrukci, která vykonala výjimku, nesmí ovlivnit stav stroje Některé takové instrukce už mohly být vykonány Nesmí existovat nezpracované starší instrukce Všechny výjimky způsobené staršími instrukcemi jsou už vyřízeny Přesné (precise) vs. nepřesné (imprecise) výjimky OOE + register renaming poprvé implementováno v IBM 360/91 (1969), masové nasazení až v 90. letech Důvody: nepřesné výjimky + vyšší efektivita jen pro malou třídu programů 69/78

70 Spekulativní provádění instrukcí Odhadnutí vlastností/výsledku instrukce Umožňuje zahájení zpracovávání závislých instrukcí Logika pro ošetření nesprávného výsledku Při překladu Speciální kód pro opravu chybných spekulací V procesoru Spekulativní výsledky neovlivňují stav stroje, dokud nejsou potvrzeny Spekulativně provedené instrukce nevyvolávají výjimky nebo vyvolávají speciální výjimky 70/78

71 Příklad: IA-32 Intel Pentium Pro až Pentium 4 CISC instrukční sada implementována pomocí mikrooperací na post-risc jádře Instrukce rozkládány na mikrooperace Pipeline provádí mikrooperace Superskalární, out-of-order spekulativní provádění instrukcí (včetně predikce skoků a přejmenování registrů) Pentium 4 Trace cache pro urychlení dekódování instrukce 71/78

72 Příklad: Skylake Zjednodušený pohled na mikroarchitekturu procesorů rodiny Skylake Instrukce dekódovány do mikrooperací (μops) μops vykonánány out-of-order pomocí výkonných jednotech v Execution Engine Reorder Buffer zodpovědný za alokaci registrů, přejmenování registrů a dokončení instrukcí Navíc eliminuje přesuny mezi registry a nulovací idiomy Scheduler forwarduje μops výkonným jednotkám podle dostupnosti dat Zdroj: M. Lipp et al. Meltdown. 72/78

73 Architektura Core v číslech 73/78 Conroe Nehalem Sandy/Ivy Bridge Haswell (Broadwell) Skylake/ Kabylake Allocation queue (decoded insn queue)? 56 (2x 28) 56 (2x 28) (2x 64) Out-of-order window (reorder buffer) Scheduler entries (reservation station) (64) 97 Execution ports? Integer register file N/A N/A FP register file N/A N/A In-flight loads In-flight stores

74 Návrh optimální instrukční sady 74/78 Statistika využití instrukcí (IBM 360) Skupina Zastoupení přesuny dat 45,28 % řízení 28,73 % aritmetika 10,75 % porovnávání 5,92 % logické operace 3,91 % posuny, rotace 2,93 % bitové operace 2,05 % I/O a ostatní 0,43 %

75 75/78 Návrh optimální instrukční sady (2) Další pozorování (IBM 360) 56 % konstant je v rozsahu ±15 (5 bitů) 98 % konstant je v rozsahu ±511 (10 bitů) 95 % podprogramů potřebuje pro předání argumentů méně než 24 bytů Další pozorování (DEC Alpha) Typický program používá 58 % instrukční sady Pro 98 % instrukcí stačí 15 % firmwaru (PAL)

76 76/78 Návrh optimální instrukční sady (3) Historické priority Rozsáhlé instrukční sady, složité operace Překlenutí sémantické mezery mezi assemblerem a vyšším programovacím jazykem Aktuální priority Malé instrukční sady, jednoduché instrukce Rychlejší provádění instrukcí, snadnější optimalizace (při překladu i při provádění)

77 Příklad: návrh MIPS ISA pro pipelining Instrukce stejné délky Jednoduché čtení instrukcí fázi IF, následně dekódování ve fázi ID Čtení/dekódování instrukcí proměnné délky výrazně obtížnější. Malé množství formátů, stabilní pozice čísel zdrojových registrů Fáze ID může začíst číst obsah registrů během dekódování instrukce Asymetrický formát instrukcí by vyžadoval rozdělení fáze ID tak, aby se nejdříve instrukce dekódovala a až poté by se četl obsah registrů. Paměťové operandy pouze v instrukcích load a store Během fáze EX je možné počítat adresu pro přístup do paměti ve fázi MA, která následuje po EX Podpora operací nad paměťovými operandy by vyžadovala rozdělení fází EX a MA do fází pro výpočet adresy, přístup do paměti, a vykonání instrukce. Přístup do paměti pouze na zarovnané adresy Operace čtení/zápisu do paměti vyžaduje vždy jen jeden přístup Přesun dat je možné vykonat během jedné fáze pipeline. 77/78

78 Post-RISC procesory Postupná konvergence CISC a RISC architektur Přidání užitečných složitějších CISCových instrukcí do RISCové instrukcní sady Superskalární zpracování Agresivní přerovnávání instrukcí při zpracování Out-of-order speculative execution Odklon od závislosti na optimalizacích překladače Nové specializované jednotky, větší míra paralelismu 78/78

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

Architektura počítačů Zvyšování výkonnosti Architektura počítačů Zvyšování výkonnosti http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematcs and physics Faktory

Více

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

Principy počítačů a operačních systémů Principy počítačů a operačních systémů Zvyšování výkonnosti procesorů Zimní semestr 2/22 Co nám omezuje výkonnost procesoru? Jednocyklové zpracování insn.fetch, dec, exec Vícecyklové zpracování insn.fetch

Více

Architektura počítačů Implementace procesoru

Architektura počítačů Implementace procesoru Architektura počítačů Implementace procesoru http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematcs and physics Ukázková

Více

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

Architektury VLIW M. Skrbek a I. Šimeček Architektury VLIW M. Skrbek a I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PAP, LS2010/11, Predn.3 Příprava studijního programu

Více

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

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů). Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis

Více

Charakteristika dalších verzí procesorů v PC

Charakteristika dalších verzí procesorů v PC Charakteristika dalších verzí procesorů v PC 1 Cíl přednášky Poukázat na principy tvorby architektur nových verzí personálních počítačů. Prezentovat aktuální pojmy. 2 Úvod Zvyšování výkonu cestou paralelizace

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

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

Architektury CISC a RISC, uplatnění v personálních počítačích Architektury CISC a RISC, uplatnění v personálních počítačích 1 Cíl přednášky Vysvětlit, jak pracují architektury CISC a RISC, upozornit na rozdíly. Zdůraznit, jak se typické rysy obou typů architektur

Více

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

CHARAKTERISTIKA MODERNÍCH PENTIÍ. Flynnova klasifikace paralelních systémů Úvod: CHARAKTERISTIKA MODERNÍCH PENTIÍ Flynnova klasifikace paralelních systémů Paralelní systémy lze třídit z hlediska počtu toků instrukcí a počtu toků dat: SI systém s jedním tokem instrukcí (Single

Více

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

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru Cíl přednášky: Vysvětlit principy práce s registry v architekturách RISC a CISC, upozornit na rozdíly. Vysvětlit možnosti využívání sad registrů. Zabývat se principy využívanými v procesorech Intel. Zabývat

Více

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

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC Informační systémy 2 Obsah: Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC ROM RAM Paměti typu CACHE IS2-4 1 Dnešní info: Informační systémy 2 03 Informační systémy

Více

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

Procesor. Procesor FPU ALU. Řadič mikrokód Procesor Procesor Integrovaný obvod zajišťující funkce CPU Tvoří srdce a mozek celého počítače a do značné míry ovlivňuje výkon celého počítače (čím rychlejší procesor, tím rychlejší počítač) Provádí jednotlivé

Více

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

Techniky zvýšení výkonnosti procesoru, RISC a CISC procesory Techniky zvýšení výkonnosti procesoru, RISC a CISC procesory Kategorizace architektur počítačů Co popisuje architektura počítačů: (CPU = ALU + řadič + paměť + Vstupy/Výstupy) Subskalární architektura (von

Více

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

Procesor Intel Pentium (1) Procesor Intel Pentium (3) Procesor Intel Pentium Pro (1) Procesor Intel Pentium (2) Procesor Intel Pentium (1) 32-bitová vnitřní architektura s 64-bitovou datovou sběrnicí Superskalární procesor: obsahuje více než jednu (dvě) frontu pro zřetězené zpracování instrukcí (značeny u, v) poskytuje

Více

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

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

Více

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

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru Počítačové systémy Procesor Miroslav Flídr Počítačové systémy LS 2006-1/17- Západočeská univerzita v Plzni Víceúrovňová organizace počítače Digital logic level Microarchitecture level Processor Instruction

Více

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

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz Assembler RISC T.Mainzer, kiv.zcu.cz RISC RISC, neboli Reduced Instruction Set Computer - koncepce procesorů s redukovaným souborem instrukcí (vs. CISC, neboli Complex Instruction Set Computer, "bohatý"

Více

Architektura Intel Atom

Architektura Intel Atom Architektura Intel Atom Štěpán Sojka 5. prosince 2008 1 Úvod Hlavní rysem Atomu je podpora platformy x86, která umožňuje spouštět a běžně používat řadu let vyvíjené aplikace, na které jsou uživatelé zvyklí

Více

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

Intel 80486 (2) Intel 80486 (1) Intel 80486 (3) Intel 80486 (4) Intel 80486 (6) Intel 80486 (5) Nezřetězené zpracování instrukcí: Intel 80486 (1) Vyroben v roce 1989 Prodáván pod oficiálním názvem 80486DX Plně 32bitový procesor Na svém čipu má integrován: - zmodernizovaný procesor 80386 - numerický koprocesor 80387 - L1 (interní)

Více

Charakteristika dalších verzí procesorů Pentium

Charakteristika dalších verzí procesorů Pentium Charakteristika dalších verzí procesorů Pentium 1 Cíl přednášky Poukázat na principy architektur nových verzí typů Pentií. Prezentovat aktuální pojmy. 2 Úvod Paralelní systémy lze třídit z hlediska počtu

Více

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

Kubatova 19.4.2007 Y36SAP - 13. procesor - control unit obvodový a mikroprogramový řadič RISC. 19.4.2007 Y36SAP-control unit 1 Y36SAP - 13 procesor - control unit obvodový a mikroprogramový řadič RISC 19.4.2007 Y36SAP-control unit 1 Von Neumannova architektura (UPS1) Instrukce a data jsou uloženy v téže paměti. Paměť je organizována

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální

Více

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

V 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a 1 Počítače CISC a RISC V dnešní době se ustálilo dělení počítačů do dvou základních kategorií podle typu použitého procesoru: CISC - počítač se složitým souborem instrukcí (Complex Instruction Set Computer)

Více

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

Řetězené zpracování. INP 2008 FIT VUT v Brně Řetězené zpracování INP 2008 FIT VUT v Brně 1 Techniky urychlování výpočtu v HW Lze realizovat speciální kódování dle potřeby dané úlohy Příklad: aritmetické operace v kódu zbytkových tříd jsou extrémně

Více

Architektura procesorů PC shrnutí pojmů

Architektura procesorů PC shrnutí pojmů Architektura procesorů PC shrnutí pojmů 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné

Více

Architektura počítačů

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

Více

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

CHARAKTERISTIKA PROCESORU PENTIUM První verze: CHARAKTERISTIKA PROCESORU PENTIUM První verze: Verze Pentia 200 Mhz uvádělo se 330 MIPS (srovnávalo se s 54 MIPS procesoru 486DX2-66). Struktura Pentia Rozhraní 64 bitů datová sběrnice, 32 bitů adresová

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 2/36 Digitální

Více

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

Proudové zpracování instrukcí I. Celočíselná pipeline RISC Proudové zpracování instrukcí I. Celočíselná pipeline RISC Ing. Miloš Bečvář s využitím slajdů prof. Davida Pattersona CS152, University California at Berkeley, 1996 Osnova přednášky Návrh jednoduché datové

Více

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

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 Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Ověřeno ve výuce dne, třída Střední průmyslová škola strojnická Vsetín

Více

Architektura Pentia úvod

Architektura Pentia úvod Architektura Pentia úvod 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné jak

Více

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

Proudové zpracování instrukcí II. Hazardy v proudovém zpracování Proudové zpracování FP instrukcí Proudové zpracování instrukcí II. Hazardy v proudovém zpracování Proudové zpracování FP instrukcí Ing. Miloš Bečvář Osnova přednášky Implementace pozastavení v pipeline Datové hazardy a jejich řešení (pozastavení,

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

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

4-1 4. Přednáška. Strojový kód a data. 4. Přednáška ISA. 2004-2007 J. Buček, R. Lórencz 4-4. Přednáška 4. Přednáška ISA J. Buček, R. Lórencz 24-27 J. Buček, R. Lórencz 4-2 4. Přednáška Obsah přednášky Násobení a dělení v počítači Základní cyklus počítače Charakteristika třech základní typů

Více

CISC A RISC PROCESORY Jak pracují procesory CISC:

CISC A RISC PROCESORY Jak pracují procesory CISC: Cíl přednášky Seznámit se s charakteristickými rysy architektur CISC a RISC. Ukázat, jak tyto rysy postupně pronikaly do architektur procesorů Intel. Ukázat, jak se vyvíjely principy zřetězeného zpracování.

Více

Architektura počítačů

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

Více

PROCESOR. Typy procesorů

PROCESOR. Typy procesorů PROCESOR Procesor je ústřední výkonnou jednotkou počítače, která čte z paměti instrukce a na jejich základě vykonává program. Primárním úkolem procesoru je řídit činnost ostatních částí počítače včetně

Více

Principy počítačů I - Procesory

Principy počítačů I - Procesory Principy počítačů I - Procesory snímek 1 VJJ Principy počítačů Část V Procesory 1 snímek 2 Struktura procesoru musí umožnit změnu stavu stroje v libovolném kroku uvolnění nebo znemožnění pohybu dat po

Více

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

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC Informatika 2 Technické prostředky počítačové techniky - 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah:

Více

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

Struktura a architektura počítačů (BI-SAP) 7 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 7 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

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

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná

Více

2010/2011 ZS. operačních systémů. Copak je po jméně? Co růži zvou, i zváno jinak vonělo by stejně. William Shakespeare

2010/2011 ZS. operačních systémů. Copak je po jméně? Co růži zvou, i zváno jinak vonělo by stejně. William Shakespeare Principy počítačů a operačních systémů ZVYŠOVÁNÍ VÝKONU Copak je po jméně? Co růži zvou, i zváno jinak vonělo by stejně. William Shakespeare Mikroarchitektura Zřetězené zpracování pipelining, pp deep ppp

Více

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

Úvod do architektur personálních počítačů Úvod do architektur personálních počítačů 1 Cíl přednášky Popsat principy proudového zpracování informace. Popsat principy zřetězeného zpracování instrukcí. Zabývat se způsoby uplatnění tohoto principu

Více

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

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA Literatura W.Stallings: Computer Organization & Architecture J.L.Hennessy, P.A.Patterson: Patterson: Computer Architecture: a Quantitative Approach

Více

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

Architektury CISC a RISC, uplatnění v personálních počítačích - pokračování Architektury CISC a RISC, uplatnění v personálních počítačích - pokračování 1 Cíl přednášky Vysvětlit, jak pracují architektury CISC a RISC, upozornit na rozdíly. Upozornit, jak se typické rysy obou typů

Více

Architektury CISC a RISC, uplatnění rysů architektur RISC 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í Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování 1 Cíl přednášky Vysvětlit další rysy architektur CISC a RISC, upozornit na rozdíly. Upozornit, jak se typické

Více

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

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC Informatika 2 Technické prostředky počítačové techniky - 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah:

Více

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

Provádění instrukcí. procesorem. Základní model procesorem 1 Základní model Kód programu (instrukce) a data jsou uloženy ve vnější paměti. Procesor musí nejprve z paměti přečíst instrukci. Při provedení instrukce podle potřeby čte nebo zapisuje data

Více

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

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT Mgr. Petr

Více

Principy počítačů I ZVYŠOVÁNÍ VÝKONU PROCESORŮ. Sériové zpracování. Pipeline. Úspora při použití pipeline. Problém 1: přístup k datům.

Principy počítačů I ZVYŠOVÁNÍ VÝKONU PROCESORŮ. Sériové zpracování. Pipeline. Úspora při použití pipeline. Problém 1: přístup k datům. Principy počítačů I Sériové zpracování ZVYŠOVÁNÍ VÝKONU PROCESORŮ Copak je po jméně? Co růží zvou i zváno jinak vonělo by stejně. William Shakespeare Pipeline Úspora při použití pipeline Pipeline s k kroky,

Více

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

Procesory, mikroprocesory, procesory na FPGA. 30.1.2013 O. Novák, CIE 11 1 Procesory, mikroprocesory, procesory na FPGA 30.1.2013 O. Novák, CIE 11 1 Od sekvenčních automatů k mikroprocesorům 30.1.2013 O. Novák, CIE 11 2 30.1.2013 O. Novák, CIE 11 3 Architektura počítačů Von Neumannovská,

Více

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

Architektura počítačů. Instrukce a návrh instrukční sady. Lubomír Bulej KDSS MFF UK Architektura počítačů Instrukce a návrh instrukční sady Lubomír Bulej KDSS MFF UK Pro připomenutí: počítač je (jen) stroj Vykonává program Posloupnost instrukcí uložených v paměti. Vykoná instrukci a posune

Více

Struktura a architektura počítačů

Struktura a architektura počítačů Struktura a architektura počítačů Alfanumerické kódy Řadič procesoru CISC, RISC Pipelining České vysoké učení technické Fakulta elektrotechnická Ver 1.20 J. Zděnek 2014 Alfanumerické kódy Kódování zobrazitelných

Více

Architektury CISC a RISC, uplatnění rysů architektur RISC 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í Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování 1 Cíl přednášky Vysvětlit další rysy architektur CISC a RISC, upozornit na rozdíly. Upozornit, jak se typické

Více

Pokročilé architektury počítačů

Pokročilé architektury počítačů Pokročilé architektury počítačů 05 Superskalární techniky Tok dat z/do paměti (Memory Data Flow) a Procesory VLIW a EPIC České vysoké učení technické, Fakulta elektrotechnická A4M36PAP Pokročilé architektury

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Vývoj architektur PC 1

Vývoj architektur PC 1 Vývoj architektur PC 1 Cíl přednášky Prezentovat vývoj architektury PC. Prezentovat aktuální pojmy. 2 První verze Pentia První verze Pentia: kmitočet procesoru - 200 MHz (dnes vyšší jak 3 GHz) uvádělo

Více

Pokročilé Architektury Procesorů

Pokročilé Architektury Procesorů Pokročilé Architektury Procesorů Superpipelinové a Superskalární Procesory Procesory VLIW Ing. Miloš Bečvář Osnova přednášky Shrnutí vlastností skalárního proudově pracujícího procesoru Zvyšování výkonnosti

Více

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.

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. Systémov mová sběrnice 1 Sběrnicová architektura Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry. Single master jeden procesor na sběrnici, Multi master více

Více

Architektura procesoru ARM

Architektura procesoru ARM Architektura procesoru ARM Bc. Jan Grygerek GRY095 Obsah ARM...3 Historie...3 Charakteristika procesoru ARM...4 Architektura procesoru ARM...5 Specifikace procesoru...6 Instrukční soubor procesoru...6

Více

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

Technické prostředky počítačové techniky Počítač - stroj, který podle předem připravených instrukcí zpracovává data Základní části: centrální procesorová jednotka (schopná řídit se posloupností instrukcí a ovládat další části počítače) zařízení

Více

RISC a CISC architektura

RISC a CISC architektura RISC a CISC architektura = dva rozdílné přístupy ke konstrukci CPU CISC (Complex Instruction Set Computer) vývojově starší přístup: pomoci konstrukci překladače z VPP co nejpodobnějšími instrukcemi s příkazy

Více

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

Úvod do architektur personálních počítačů Úvod do architektur personálních počítačů 1 Cíl přednášky Popsat principy proudového zpracování informace. Popsat principy zřetězeného zpracování instrukcí. Zabývat se způsoby uplatnění tohoto principu

Více

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

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden

Více

Představení a vývoj architektur vektorových procesorů

Představení a vývoj architektur vektorových procesorů Představení a vývoj architektur vektorových procesorů Drong Lukáš Dro098 1 Obsah Úvod 3 Historie, současnost 3 Architektura 4 - pipelining 4 - Operace scatter a gather 4 - vektorové registry 4 - Řetězení

Více

ARCHITEKTURA PROCESORŮ

ARCHITEKTURA PROCESORŮ ARCHITEKTURA PROCESORŮ Základními jednotkami, které tvoří vnitřní strukturu procesorů, jsou: řadič, který má za úkol číst operandy (data, čísla) a instrukce z operační paměti, dekódovat je a na základě

Více

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

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

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

Strojový kód. Instrukce počítače Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska

Více

Architektura Pentia 1

Architektura Pentia 1 Architektura Pentia 1 Cíl přednášky Prezentovat vývoj architektury Pentia. Prezentovat aktuální pojmy. 2 První verze Pentia První verze Pentia: kmitočet procesoru - 200 MHz uvádělo se 330 MIPS, srovnání

Více

Architektura počítače

Architektura počítače Architektura počítače Výpočetní systém HIERARCHICKÁ STRUKTURA Úroveň aplikačních programů Úroveň obecných funkčních programů Úroveň vyšších programovacích jazyků a prostředí Úroveň základních programovacích

Více

Procesor z pohledu programátora

Procesor z pohledu programátora Procesor z pohledu programátora Terminologie Procesor (CPU) = řadič + ALU. Mikroprocesor = procesor vyrobený monolitickou technologií na čipu. Mikropočítač = počítač postavený na bázi mikroprocesoru. Mikrokontrolér

Více

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

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Jan Nekvapil jan.nekvapil@tiscali.cz ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Motivace MMX, EMMX, MMX+ 3DNow!, 3DNow!+ SSE SSE2 SSE3 SSSE3 SSE4.2 Závěr 2 Efektivní práce s vektory

Více

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

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic. Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící

Více

Luděk Matyska. Jaro 2015

Luděk Matyska. Jaro 2015 PA039: Architektura superpočítačů a náročné výpočty Luděk Matyska Fakulta informatiky MU Jaro 2015 Luděk Matyska (FI MU) Úvod Jaro 2015 1 / 67 Pravidla hry Účast na přednáškách není povinná Zkouška Pouze

Více

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

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor: Západočeská univerzita v Plzni Písemná zkouška z předmětu: Zkoušející: Katedra informatiky a výpočetní techniky Počítačová technika KIV/POT Dr. Ing. Karel Dudáček Akademický rok: 2004/05 Datum: Příjmení:

Více

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

Principy komunikace s adaptéry periferních zařízení (PZ) Principy komunikace s adaptéry periferních zařízení (PZ) Několik možností kategorizace principů komunikace s externími adaptéry, např.: 1. Podle způsobu adresace registrů, které jsou součástí adaptérů.

Více

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

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

Více

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

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3) Paměti EEPROM (1) EEPROM Electrically EPROM Mají podobné chování jako paměti EPROM, tj. jedná se o statické, energeticky nezávislé paměti, které je možné naprogramovat a později z nich informace vymazat

Více

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

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 Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

OPS Paralelní systémy, seznam pojmů, klasifikace

OPS Paralelní systémy, seznam pojmů, klasifikace Moorův zákon (polovina 60. let) : Výpočetní výkon a počet tranzistorů na jeden CPU chip integrovaného obvodu mikroprocesoru se každý jeden až dva roky zdvojnásobí; cena se zmenší na polovinu. Paralelismus

Více

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

Počítač jako prostředek řízení. Struktura a organizace počítače Řídicí počítače - pro řízení technologických procesů. Specielní přídavná zařízení - I/O, přerušovací systém, reálný čas, Č/A a A/Č převodníky a j. s obsluhou - operátorské periferie bez obsluhy - operátorský

Více

a operačních systémů

a operačních systémů NSWI2 2/2 ZS Principy počítačů a operačních systémů INSTRUKCE Kdybych nařídil generálovi, aby létal od květině ke květině a on by rozkaz neprovedl, nebyla by to chyba generálova, ale moje. král asteroidu

Více

SEKVENČNÍ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních

Více

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

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard Základní deska (1) Označována také jako mainboard, motherboard Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: procesor (mikroprocesor) patici pro numerický koprocesor (resp. osazený

Více

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

Sekvenční architektury II. Zpracování instrukcí Sekvenční architektury II Zpracování instrukcí Jak zvýšit výkon CPU zkrátit čas nutný ke zpracování 1 instrukce urychlit časovač (Timer) = zvýšení taktu to je technicky velmi náročné, poslední dobou se

Více

Cache paměť - mezipaměť

Cache paměť - mezipaměť Cache paměť - mezipaměť 10.přednáška Urychlení přenosu mezi procesorem a hlavní pamětí Hlavní paměť procesoru je typu DRAM a je pomalá. Proto se mezi pomalou hlavní paměť a procesor vkládá menší, ale rychlá

Více

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

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 14 0:40 1.3. Vliv hardware počítače na programování Vliv

Více

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič

Obecné výpočty na GPU v jazyce CUDA. Jiří Filipovič Obecné výpočty na GPU v jazyce CUDA Jiří Filipovič Obsah přednášky motivace architektura GPU CUDA programovací model jaké algoritmy urychlovat na GPU? optimalizace Motivace Moorův zákon stále platí pro

Více

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

Sekvenční architektury II. Zpracování instrukcí Sekvenční architektury II Zpracování instrukcí Jak zvýšit výkon CPU zkrátit čas nutný ke zpracování 1 instrukce urychlit časovač (Timer) = zvýšení taktu to je technicky velmi náročné, poslední dobou se

Více

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

Struktura a architektura počítačů (BI-SAP) 1 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 1 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Y36SAP http://service.felk.cvut.cz/courses/y36sap/

Y36SAP http://service.felk.cvut.cz/courses/y36sap/ Y36SAP http://service.felk.cvut.cz/courses/y36sap/ Úvod Návrhový proces Architektura počítače 2007-Kubátová Y36SAP-Úvod 1 Struktura předmětu Číslicový počítač, struktura, jednotky a jejich propojení. Logické

Více

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

Paměťový podsystém počítače Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...

Více

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

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 7 ČASOVÁNÍ A SYNCHRONIZACE TECHNICKÉHO VYBAVENÍ doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních

Více

Pokročilé architektury počítačů

Pokročilé architektury počítačů Pokročilé architektury počítačů Přednáška 2 Instrukční paralelizmus a jeho limity Martin Milata Obsah Instrukční hazardy a datové závislosti (připomenutí) Tomasulo algoritmus a dynamické plánování Základní

Více

Principy počítačů. Optimalizace. Martin Urza

Principy počítačů. Optimalizace. Martin Urza Principy počítačů Optimalizace Martin Urza Opakování z minulé přednášky Z minulé přednášky by mělo být jasné, jak přibližně v hrubých obrysech funguje podle von Neumannovy architektury paměť, procesor,

Více

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT Úvod Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace K.D. - přednášky 2 Pevná a proměnná délka instrukce (1) Pevná délka instrukce

Více

Roman Výtisk, VYT027

Roman Výtisk, VYT027 Roman Výtisk, VYT027 Ohlédnutí za architekturou AMD K8 Představení architektury procesoru AMD K10 Přínos Struktura cache IMC, HyperTransport sběrnice Použitá literatura Ohlášení x86-64 architektury 5.

Více

Architektura počítačů

Architektura počítačů Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem

Více

Pokročilé architektury počítačů

Pokročilé architektury počítačů Pokročilé architektury počítačů Přednáška 5 GPU - CUDA Martin Milata Obsah Obecné výpočty a GPU Grafické procesory NVIDIA Tesla Výpočetní model Paměťový model GT200 Zpracování instrukcí Vydávání instrukcí

Více