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

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

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

Transkript

1 Proudové zpracování instrukcí II. Hazardy v proudovém zpracování Proudové zpracování FP instrukcí Ing. Miloš Bečvář

2 Osnova přednášky Implementace pozastavení v pipeline Datové hazardy a jejich řešení (pozastavení, forwarding) Řídicí hazardy implementace instrukce podmíněného skoku (zpožděný a rušící skok) Strukturní hazardy - příklady Proudové zpracování FP instrukcí Komplexní hazardy v FP pipeline a jejich řešení

3 Ideální proudové zpracování instrukcí Latency to fill pipeline Pipeline produces result every clock cycle instr1 instr.2 instr.3 instr.4 instr.5 CPI pipeline_ideal = 1

4 Příklad narušení sémantiky SUB přečte starou hodnotu R1 ADD zapíše novou hodnotu R1 ADD R1,R2,R3 SUB R4,R1,R3 Programátor očekává toto provádění: Write ADD R1,R2,R3 Read SUB R4,R1,R3 Čtení R1 instr. SUB má být provedeno po zápisu R1 instrukcí ADD. V pipeline toto pořadí není dodrženo.tuto situaci nazýváme Read after Write (RAW) hazard.

5 Řešení datového hazardu pomocí pozastavení SUB čte starou hodnotu R1 ADD zapisuje novou hodnotu do R1 ADD R1,R2,R3 SUB R4,R1,R3 Řešení: Pozastavení pipeline v ID dokud není hazard odstraněn. ADD R1,R2,R3 SUB R4,R1,R3 IF ID stall ID stall ID EX MEM WB SUB čeká v ID dokud ADD nezapíše novou hodnotu do R1 Pozastavení = pipeline stall, pipeline bubble insertion, pipeline interlock

6 Reálné proudové zpracování pozastavení 1 takt instr1 instr.2 IF ID stall ID EX MEM WB instr.3 IF stall instr.4 Žádná instrukce nenačtena v taktu č. 3 Žádná instrukce nedokončena v taktu č.6 CPI pipeline_real = CPI pipeline_ideal + Stalls Per Instruction

7 Zrychlení pomocí proudového zpracování (S je počet stupňů pipeline) Speedup = T cpu_no_pipeline T cpu_pipeline = IC * CPI no_pipeline * T clk_no_pipeline IC * CPI pipeline_real * T clk_pipe CPI no_pipeline = 1; CPI pipeline_real = CPI pipeline_ideal + SPI Stalls per Instruction Speedup = 1 CPI pipeline_ideal + SPI * T clk_no_pipeline T clk_pipe Speedup = S CPIpipeline_ideal + SPI S = 1 + SPI Cílem je minimalizace SPI => maximalizace zrychlení.

8 Jiný diagram proudového zpracování Clock cycle IF stage ID stage EX stage MEM stage WB stage 1 Instr1 Instr0 Instr-1 Instr-2 Instr-3 2 Instr2 Instr1 Instr0 Instr-1 Instr-2 3 Instr3 Instr2 Instr1 Instr0 Instr-1 4 Instr4 Instr3 Instr2 Instr1 Instr0 5 Instr5 Instr4 Instr3 Instr2 Instr1 Clock cycle IF stage ID stage EX stage MEM stage WB stage 1 Instr1 Instr0 Instr-1 Instr-2 Instr-3 2 Instr2 Instr1 Instr0 Instr-1 Instr-2 3 Instr3 Instr2 Instr1 Instr0 Instr-1 4 Instr3 Instr2 NOP Instr1 Instr0 5 Instr4 Instr3 Instr2 NOP Instr1 6 Instr5 Instr4 Instr3 Instr2 NOP 7 Instr6 Instr5 Instr4 Instr3 Instr2 Instr2 je pozastavena ve stupni ID

9 Způsob implementace pozastavení pipeline Stage 1 Stage 2 Stage 3 Stage 4 Comb. Log. S1 Comb. Log. S2 Comb. Log. S3 Comb. Log. S4 Stall occurred here Recycle all stages before the stall source until stall is resolved Continue flow through the pipeline Insert NOP in the following stage until stall is resolved

10 Proč pozastavujeme pipeline? - Pipeline musí být pozastavována k zabránění hazardům. Hazard je potenciální narušení sémantiky vykonávání programu. Datové hazardy: narušení datových nebo jmenných závislostí Řídicí hazardy: narušení řídicích závislostí Strukturní hazardy: důsledek neúplné replikace prostředků v pipeline, kolize na sdílených prostředcích (paměti, porty reg. polí, funkční jednotky ) Všimněte si, že datové a řídicí hazardy jsou důsledkem konfliktu mezi sémantikou programu a pipeliningem. Strukturní hazardy jsou důsledkem nedokonalého pipeliningu. CPI = 1 + SPI data + SPI control + SPI struct

11 Datové a jmenné závislosti vlastnosti programu Instr I Variable1, Variable2, Variable3... Instr J Variable4, Variable5, Variable1 Instr I Variable1, Variable2, Variable3 (True) Data Dependency (Skutečná) datová závislost... Instr J Variable1, Variable4, Variable5 Output Dependency Výstupní závislost Instr I Variable3, Variable2, Variable1... Instr J Variable1, Variable4, Variable5 Antidependency Protizávislost Name (False) Dependencies = Output Dependency + Antidependency Jmenné (Falešné) Závislosti = Výstupní závislost + Protizávislost

12 Datové závislosti typické sekvence v programu Instr I Variable1, Variable2, Variable3... Data Dependency Instr J Variable5, Variable4, Variable1 Output Dependency. Antidependency Instr K Variable1, Variable6, Variable7 Typická define-use-reuse sekvence pro Variable1 Instr I Variable1, Variable2, Variable3... Output Dependency Instr J Variable1, Variable4, Variable5 Redundantní výpočet Variable1 typický postranní efekt agresivní optimalizace programu. Závislosti existují mezi proměnnými v registrech (snadno rozpoznatelné) a také proměnnými v paměti (více obtížné pro rozpoznání).

13 Datové hazardy klasifikace Datové hazardy jsou potenciální narušení datových a jmenných závislostí v programu při proudovém zpracování. Nechť i < j jsou 2 celá čísla (Instrukce i je dříve v programu než instr. j) RAW (Read After Write) hazard : 1. Mezi i a j je skutečná datová závislost 2. Instrukce j chce číst novou hodnotu dříve než ji instrukce i může zapsat. WAR (Write After Read) hazard : 1. Mezi i a j je protizávislost 2. Instrukce j chce zapsat výsledek dříve než instrukce i přečte předchozí hodnotu. WAW (Write After Write) hazard : 1. Mezi i a j je výstupní závislost 2. Instrukce j chce to zapsat výsledek dříve než instrukce i Existence hazardu závisí na - vzdálenosti mezi i a j vzhledem k latencím v pipeline - pořadí ve kterém instrukce čtou a zapisují operandy vzhledem k jejich programovému pořadí. Pouze RAW hazardy mohou nastat v naší celočíselné pipeline. Proč?

14 Pouze RAW hazardy hrozí v celočíselném DLX Proměnné v registrech All instructions IF ID EX MEM W B read write Všechny instrukce jsou vykonávány v programovém pořadí. Čtení registrů nastává ve 2. taktu, zápis do registru v 5. taktu. Nechť j>i: Instrukce j je načtena v taktu j, instrukce i v taktu i RAW hazard? Instrukce j čte v taktu j+1, instrukce i zapisuje v taktu i+4 RAW hazard hrozí pokud j+1<i+4 => j<i+3 WAW hazard? Instrukce j zapisuje v taktu j+4, Instrukce i zapisuje v taktu i+4 WAW hazard nemůže nastat neboť platí j+4>i+4 WAR hazard? Instrukce j zapisuje v taktu j+4, Instrukce i čte v taktu i+1 WAW hazard nemůže nastat neboť platí j+4>i+1 Podobně lze dokázat že RAW, WAR ani WAW hazardy nehrozí mezi load a store instrukcemi.

15 Ne každá datová závislost vede na hazard! SUB čte starou hodnotu R1 ADD zapisuje novou hodnotu do R1 ADD R1,R2,R3 Závislost a hazard SUB R4,R1,R3 ADD R1,R2,R3 OR R5,R2,R3 Závislost ale ne hazard AND R6,R2,R6 SUB R4,R1,R3 Překladač může vložit nezávislé instrukce a odstranit tak hazard!

16 Příklad RAW datového hazardu 1) Řešeno pozastavením pipeline: ADD R1,R2,R3 SUB R4,R1,R3 IF ID stall ID stall ID EX MEM WB 2) Lepší řešení (přeposílání) forwarding (též zvaný register bypassing) ADD R1,R2,R3 Forward the new value for R1 SUB R4,R1,R3 Výsledek instrukce ADD vypočítaný ve stupni EX je ihned forwardován následující instrukci => není třeba pozastavovat pipeline!

17 Forwarding princip HW řešení Instruction Memory IF stage Instruction ID stage Comb Logic EX stage Comb. Logic jump_now MEM stage Comb. Logic WB stage Comb. Logic PC Addr busw Rw Ra Rb bit Registers MEM/EX busa busb ALU zero jump_now Imm16 Disp26 Ext Imm32 Forwarding ctrl Addr Next Addr. Logic PC PC+4 Add Data Memory Jump/Branch Target Address Target Address Calculation WB/EX Výsledky jsou přeposílány pomocí MEM/EX a WB/EX zpětné cesty.

18 RAW hazard s nutností pozastavení LW R1, (R2) +5 Forwarding zpět v čase? SUB R4,R1, R3 SUB potřebuje data Data jsou k dispozici z paměti Data od instrukce LOAD jsou k dispozici na konci stupně MEM, ale jsou třeba na začátku stupně EX násl. instrukce => nelze přeposílat zpátky v čase.

19 RAW hazard s nutností pozastavení (pokr.) LW R1,(R2)+5 Forward SUB R4, R1,R3 IF IDstall ID EX MEM WB Tomuto zpoždění se říká LOAD - USE delay. Je typická pro RISC pipeline. Toto zpoždění lze eliminovat vložením nezávislé instrukce mezi LOAD a USE instrukce. Jde o typickou úlohu optimalizujícího překladače.

20 Vliv datových hazardů na CPI a) Celočíselná pipeline s pozastavováním Nechť i je pozice instrukce produkující výsledek, j je pozice instrukce spotřebovávající výsledek: j i+1 i+2 i+3 a více Počet taktů pozastavení 2 stalls 1 stall 0 stals P Dyn. četnost (neoptimalizovaný program) 40 % 20 % 40 % Typ instrukce F (Dynamická četnost) SPI data = (F alu + F load )*(p 1 *2 +p 2 *1) ALU Load Store Branch (control) 48 % 26 % 13 % 13 % SPI data =(0,48 + 0,26)*(0,4*2 +0,2*1) SPI data =0,74 CPI pipe_real >=1,74!

21 Vliv datových hazardů na CPI b) Celočíselná pipeline s forwardingem Nechť i je pozice instrukce Load, j je pozice závislé instrukce: j i+1 i+2 a více Počet taktů pozastavení 1 stall 0 stalls P Dyn. četnost (neoptim. prog.) 40 % 60 % Typ instrukce ALU Load Store Branch (control) F (Dynamická frekvence) 48 % 26 % 13 % 13 % SPI data = F load *p 1 *1 SPI data = 0,26*0,4*1 SPI data =0,104 CPI pipe_real >=1,104! T clk ovšem může být ovlivněna forwardingem negativně (vzrůst).

22 Řídící hazard instrukce podm. skoku Instruction Memory IF stage Instruction ID stage Comb Logic EX stage Comb. Logic jump_now MEM stage Comb. Logic WB stage Comb. Logic PC Addr busw Rw Ra Rb bit Registers MEM/EX busa busb ALU zero jump_now Imm16 Disp26 Ext Imm32 Condition Evaluation Addr Next Addr. Logic PC PC+4 Add Data Memory Jump/Branch Target Address Target Address Calculation WB/EX Podmínka vyhodnocena ve stupni EX, PC změněno ve stupni MEM.

23 Řešení řídicího hazardu pomocí pozastavení BEQZ R3, M1 instr.2 IF stall IF stall IF stall instr.3 instr.4 M1: ADD R4,R6,R7 vyhodnocení podmínky & výpočet nového PC PC změněno Toto řešení znamená 3 takty pozastavení (3 stalls) na každou prováděnou instrukci podmíněného skoku (13 %). SPI control = 0,13*3 = 0,39! Latence skoku doba mezi IF skoku a určením správného PC: Latence skoku =cpi branch = 4 takty SPI control = Branch Frequency * (cpi branch - 1)

24 Podmíněný skok s vypláchnutím pipeline BEQZ R3, M1 instr.2 instr.3 IF ID EX NOP IF ID NOP Cancelled (flushed) Instructions instr.4 IF NOP M1: ADD R4,R6,R7 condition resolution & address calculation PC changed Instrukce 2,3 a 4 jsou vypláchnuty pouze v případě provedení skoku 3 ztracené takty (bubliny v pipeline) pouze pro každý provedený skok. SPI control = Branch Frequency *Taken Frequency * Branch Penalty = 0.13*0.67*3 = 0.26

25 Vylepšení implementace podmíněného skoku Vylepšení skoku má dvě části: - Vyhodnocení podmínky dříve - Výpočet cílové adresy a změna PC dříve Možná implementace - Přidání logiky pro vyhodnocení podmínky do stupně ID - Výpočet cílové adresy do stupně ID Výsledný vliv na CPI : 1 pozastavení místo 3 => SPI = Všimněte si ovšem, že modifikovaný skok nemůže využít forwardingu do stupně EX =>nárůst SPI data Také T clk může vzrůst v důsledku komplexnější logiky v ID

26 Implementace vylepšeného podm. skoku (v ID) Instruction Memory IF stage Instruction ID stage Comb Logic EX stage Comb. Logic MEM stage Comb. Logic WB stage Comb. Logic PC Addr Imm16 Disp26 busw Rw Ra Rb bit Registers MEM/EX busa busb ALU jump_now Ext Imm32 Addr Next Addr. Logic PC PC+4 Condition Evaluation Logic Data Memory Jump/Branch Target Address Add Target Address Calculation WB/EX

27 Vylepšený podmíněný skok BEQZ R3, M1 instr.2 M1: ADD R4,R6,R7 IF condition evaluation & address calculation, PC changed NOP Cancelled (flushed) Instruction Instrukce za skokem je zrušena pokud je skok proveden (angl. taken) jinak je dokončena. SPI control = Branch Frequency *Taken Frequency * Branch Penalty = 0.13*0.67*1 = Není škoda instrukci za skokem zrušit, když už byla načtena?

28 Dále vylepšený skok Zpožděný skok BEQZD R3, M1 instr.2 M1: ADD R4,R6,R7 condition evaluation & address calculation U normálního (nezpožděného skoku) je instrukce v delay slotu zrušena, pokud dojde ke skoku (změně PC). U RISC je výhodné zavést tzv. zpožděný skok (BEQZD / BNEZD) s odlišnou sémantikou. Instrukce následující za skokem (v tzv. branch delay slotu) je vždy provedena. SPI control = Branch Frequency * Branch Penalty Branch Delay Slot Pokud instrukce v delay slotu udělá nějaký užitečný výpočet, branch penalty je redukována na nulu.

29 Které instrukce může překladač umístit do Branch Delay Slotu? ADD R1, R2, R3 BEQZD R4, LAB Delay Slot LAB: Řešení č.1: Instrukce před skokem BEQZD R4, LAB ADD R1, R2, R3 LAB: Toto je bezpečné řešení. Branch Penalty je redukována na nulu. Podmíněný skok nesmí (datově) záviset na instrukci umístěné do delay slotu.

30 Které instrukce může překladač umístit do Branch Delay Slotu (2)? ADD R7, R2, R3 ADD R7, R2, R3 BEQZD R7, LAB Delay Slot OR R5, R6, R7 LAB: SUB R4, R5, R7 Řešení č.2: Z cíle skoku Řešení č.3: Ze sekvenčního pokračování BEQZD R7, LAB SUB R4, R5, R7 OR R5, R6, R7 LAB: ADD R7, R2, R3 BEQZD R7, LAB OR R5, R6, R7 LAB: SUB R4, R5, R7

31 Které instrukce může překladač umístit do Branch Delay Slotu (3)? º Branch Penalty je u řešení 2 a 3 redukována pouze pokud program pokračuje v očekávané cestě ze které pochází instrukce v delay slotu. º Řešení č.2 a 3 jsou legální (tj. bezpečná) pouze pokud instrukce v delay slotu může být bezpečně provedena když skok vede opačným směrem než je cesta ze které pochází instrukce v delay slotu. º Instrukce v branch delay slotu nesmí způsobit výjimku je-li provedena v cestě, kdy původně provedena nebyla. typicky problém Load, Store instrukcí (Virtual Memory Protection Fault) Poznámka: Některé RISC procesory zavádí třetí typ instrukce skoku tzv. canceling branch (rušící skok). Instrukce za rušícím skokem je provedena pouze pokud se skáče. Instrukce za rušícím skokem je zrušena v případě sekvenčního pokračování. To umožňuje umísťovat za rušící skok instrukce z cíle skoku.

32 Zpožděné skoky - shrnutí Některé RISC procesory mají až 3 typy podm. skoků: º Zpožděný skok použit pokud instrukce v delay slotu může být provedena bez ohledu na vykonání skoku. º Normální skok Instrukce v delay slotu je zrušena pokud je skok proveden (tj. když se skáče) º Rušící skok Instrukce v delay slotu je zrušena pokud skok není proveden (tj. když se pokračuje sekvenčně) º Zpožděné skoky fungují velmi dobře pro jednoduchou pipeline, ale komplikují řešení výjimek (přerušení) a superskalární provádění instrukcí ve výkonnějších modelech pipeline.

33 Způsoby implementace skoku shrnutí Předpokládejme, že 13 % instrukcí jsou skoky, - 67 % skoků je provedeno (skáče), - 33 % skoků sekvenčně pokračuje. Sémantika skoku Vyhodnocení podmínky / změna PC Instrukce za skokem SPI control normální EX / MEM Pozastavena v IF 3 takty 0,13 * 3 = 0,39 normální EX / MEM 3 instrukce vypláchnuty, je-li skok proveden 0,13 * 0,67 * 3 = 0,26 normální ID / ID 1 instrukce vypláchnuta, je-li skok proveden 0,13 * 0,67 * 1 = 0,087 zpožděný ID / ID 1 instrukce za skokem vždy provedena 0,13 * (1 FD) = 0,065 FD = 50 % FD četnost provedení užitečné instrukce v delay slotu Poznámka: první řešení se reálně nepoužívá, ostatní ano.

34 Strukturní hazardy Strukturní hazardy: důsledek neúplné replikace prostředků v pipeline, kolize na sdílených prostředcích (paměti, porty reg. polí, funkční jednotky ) V našem celočíselném DLX nejsou žádné sdílené prostředky mezi stupni pipeline a proto SPI struct = 0 V reálných procesorech mohou takové prostředky být (v důsledku šetření plochou čipu nebo praktičnosti implementace) a díky tomu vznikají strukturní hazardy strukturní pozastavování (structural stalls)

35 Příklad strukturního hazardu společná paměť dat a instr. Load instr.2 instr.3 IF ID EX MEM W B IF ID EX MEM W B IF ID EX MEM W B Stall instr.4 Lost instruction slot (Pipeline buble) IF ID EX MEM W B Instrukce č. 4 nemůže začít ve 4. taktu neboť Load v tu dobu přistupuje ke sdílené paměti dat a instrukcí. Toto lze chápat jako pozastavení 4. Instrukce ve stupni IF. Vliv sdílené paměti (cache) na výkonnost: Při přístupu k datům nelze načíst novou instrukci. 26 % instrukcí jsou typu Load, 13 % Store => CPI = 1,39

36 Příklad strukturního hazardu chybějící stupeň MEM Load ADD IF ID EX MEM W B IF ID EX W B Collision on write port into register file. Důvod: Instrukce procházejí odlišný počet stupňů pipeline. Řešení: Přidání zápisového portu k reg. poli, to ovšem není vždy vhodné (plocha čipu, zpoždění ). Pozastavení je snazší řešení. Load ADD instr.3 IF ID EX stall WB IF ID stall EX WB instr.4 IF stall ID EX MEM W B instr.5 stall => Toto je důvod proč ALU instrukce procházejí zdánlivě prázdným MEM stupněm u 5-stupňového DLX.

37 Hledání strukturních hazardů (1) Označ takty ve kterých jsou části pipeline (zdroje) používány různými typy instrukcí. Příklad č.1 sdílená paměť Load, Store Other instr. IF ID EX MEM W B IF ID EX MEM W B Shared Memory Used Příklad č.2 rozdílný počet stupňů pipeline Load IF ID EX MEM W B Store Other instr IF ID EX MEM IF ID EX WB Register File Write Port Used Sdílený zdroj je část pipeline používaná instrukcemi ve více různých taktech => strukturní hazardy zde mohou nastat.

38 Hledání strukturních hazardů (2) Clock cycle -> Instruction num ber Load instr.2 instr.3 instr IF ID EX MEM W B IF ID EX MEM W B IF ID EX MEM W B IF ID EX MEM W B Instrukce j používající sdílený zdroj v taktu c2 má kolizi s instrukcí i která používá tento sdílený zdroj v taktu c1 IFF j = i + (c1 c2) V našem příkladě: i=1, c1=4 j=4, c2=1

39 Výkonnost DLX (se zpožděným skokem) na SPECInt95 Průměrné SPI ve SPECInt95 : SPI control = 0,06, SPI data 0,05 Průměrné CPI (pro ideální paměťový systém) = 1.11 Zrychlení oproti neproudovému DLX je 4.5 David Patterson, CS152 UCB 1996

40 DLX a vícetaktové instrukce FP pipeline EX Integer Unit IF ID EX FP/Int Multiply MEM WB WinDLX Model EX FP ADD/SUB EX FP/Int Divide Funkční Jednotky

41 DLX FP Pipeline reálnější model Integer Unit E M FP multiplier F D MX1 MX2 MX3 W FP adder AX1 AX2 AX3 AX4 FP DIV DX1-DX28 SQRT (multicycle)

42 Parametry funkčních jednotek Latence - počet taktů než je k dispozici výsledek - typicky odpovídá počtu stupňů pipeline v jednotce Spouštěcí (opakovací) interval - počet taktů něž další instrukce může používat tuto funkční jednotku Latence pipeline = 5 taktů IF ID EX MEM WB IF Spoušť. interval = 1 takt Latence of celočíselné jednotky pro ALU operaci = 1 takt ID EX MEM WB

43 Příklady parametrů funkčních jednotek Funkční jednotka (Typ prováděné instrukce) Integer (ALU Reg-Reg, Reg- Imm) Integer (Load instrukce) FP MULT (pipelined) FP ADD (pipelined) DIVIDER (iterative) Latence Spouštěcí interval Ve WinDLX jsou všechny jednotky s výjimkou celočíselné vícetaktové (latence = spouštěcí interval) Na druhou stranu můžeme používat více jednotek stejného typu a tím snížit spouštěcí interval.

44 Instrukční latence a spouštěcí interval Latence instrukce -Počet taktů než je k dispozici výsledek pro datově závislou instrukci Závisí na: -Latenci funkční jednotky pro danou instrukci -Forwardovacích cestách v procesoru -Typu závislé instrukce (kdy daná instrukce potřebuje data) Spouštěcí (opakovací) interval instrukce -Počet taktů než může být spuštěna další instrukce daného typu (bez strukturních hazardů) Závisí na: -Počtu funkčních jednotek a jejich spouštěcích intervalech M ne-proudových funkčních jednotek s latencí M má stejný spouštěcí interval jako jedna proudově pracující funkční jednotka latence M. Viz též doplňkový shrnující materiál o různých DLX implementacích

45 Nové problémy u FP pipeline o Větší počet strukturních hazardů konflikty u neproudových jednotek, zápisové porty u registrového pole o RAW hazardy jsou častější (větší latence instrukcí) o WAR hazardy nemohou nastat neboť operandy jsou čteny na začátku provádění instrukce a instrukce jsou prováděny v programovém pořadí. o WAW hazardy mohou nastat neboť instrukce jsou dokončeny mimo programové pořadí (mají různou latenci) tzv. In-order-issue + out-of-order completion o Složitá logika detekce hazardů ve stupni ID

46 Nové strukturní hazardy kolize na reg. poli FMULT F0, F4, F6 IF ID MX1 MX2 MX3 MX4 MX5 MX6 MEM WB Integer instr. Integer instr. FADD F2, F4, F6 IF ID MX1 AX1 MX2 AX2 MX3 AX3 MEM WB Integer instr. LDF F3, 15(R1) Potřeba více zápisových portů u reg. pole (až 4). Tento konflikt nastává u WinDLX ve stupni MEM (pouze jedna instrukce může být ve stupni MEM u WinDLX) V reálném CPU -Stupeň MEM u FP instrukcí nemá smysl (nezabrání odlišným latencím) -Instrukce Store nemusí mít konflikt neboť nic nezapisuje - Celočíselné instrukce nemusí mít konflikt s FP instrukcemi (separátní registrová pole), může být více zápisových portů u FP reg. pole

47 Příklad WAW hazardu FMULT F0, F4, F6 IF ID MX1 MX2 MX3 MX4 MX5 MX6 MEM WB Integer instr. FADD F0, F3, F2 IF ID MX1 AX1 MX2 AX2 MX3 AX3 MEM WB º Hodnota FADD může být přepsána dřívější FMULT º WAW hazard může být vyřešen pozastavením FADD instrukce ve stupni ID º Vliv na výkonnost není významný neboť tato situace nastává zřídka ( viz redundantní výpočet na slajdu č.10)

48 Výkonnost FP DLX (SPECfp95) David Patterson, CS152 UCB 1996

49 Výkonnost FP DLX (SPECfp95) David Patterson, CS152 UCB 1996

50 Výkonnost FP DLX º Celočíselné SPI zanedbatelné vůči FP SPI º Pozastavení kvůli RAW hazardům je dominantní částí SPI (viz sloupce FP result stalls ) º Strukturní hazardy kvůli děličce jsou zanedbatelné Počet ztracených taktů na FP operaci je přibližně 50 % of její latence (zbytek je překryt výpočtem ostatních instrukcí) tzv. partial latency hiding - 14,2 taktů pozastavení pro dělení (latence = 28 taktů) - 2,7 taktů pozastavení pro násobení (latence = 6 taktů) Vliv na CPI (FP SPI) o Závisí na aplikaci - SPI mezi o SPECfp průměrné SPI je 0.87 o DLX FP CPI = 1.87 (SPECfp95) David Patterson, CS152 UCB 1996

51 Závěry Výkonnost proudově pracujícího procesoru je limitována pozastavováním kvůli strukturním, datovým a řídicím hazardům Datové hazardy jsou RAW, WAW a WAR Některé techniky pro minimalizaci pozastavování (forwarding, zpožděný skok, plánování instrukcí překladačem) Následující 3 přednášky : Paměťová hierarchie (co se skrývá pod IF a MEM) Poté se podíváme na problematiku pokročilých technik proudového zpracování (superskalární procesory, dynamické plánování instrukcí, predikce skoku, spekulativní provádění instrukcí )

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

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

Ř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

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

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

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

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

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

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. 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

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

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

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

Č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

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

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

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

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Semestrální práce z předmětu KIV/UPA Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Zadání Program přečte ze vstupu dvě čísla v hexadecimálním tvaru a vypíše jejich součet (opět v hexadecimální tvaru).

Více

x86 assembler and inline assembler in GCC

x86 assembler and inline assembler in GCC x86 assembler and inline assembler in GCC Michal Sojka sojkam1@fel.cvut.cz ČVUT, FEL License: CC-BY-SA 4.0 Useful instructions mov moves data between registers and memory mov $1,%eax # move 1 to register

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

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

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 http://d3s.mff.cuni.cz/teaching/nswi143 Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

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

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

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

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 paralelních počítačů II.

Architektury paralelních počítačů II. Architektury paralelních počítačů II. Sekvenční konzistence paměti Implementace synchronizačních událostí Ing. Miloš Bečvář s použitím slajdů Prof. Ing. Pavla Tvrdíka, CSc. Osnova přednášky Opakování definice

Více

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

Příklady popisu základních obvodů ve VHDL Příklady popisu základních obvodů ve VHDL INP - cvičení 2 Michal Bidlo, 2008 bidlom@fit.vutbr.cz entity Circuit is port ( -- rozhraní obvodu ); end Circuit; Proces architecture Behavioral of Circuit is

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

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

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

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

Pamět ová hierarchie, virtuální pamět. doc. Ing. Róbert Lórencz, CSc. Architektura počítačových systémů Pamět ová hierarchie, virtuální pamět doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů

Více

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čů 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

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

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

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2 Koncept pokročilého návrhu ve VHDL INP - cvičení 2 architecture behv of Cnt is process (CLK,RST,CE) variable value: std_logic_vector(3 downto 0 if (RST = '1') then value := (others => '0' elsif (CLK'event

Více

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup

Více

Kvantitativní principy návrhu počítačů

Kvantitativní principy návrhu počítačů Architektura počítačových systémů Róbert Lórencz 1. přednáška Kvantitativní principy návrhu počítačů http://service.felk.cvut.cz/courses/36aps lorencz@fel.cvut.cz Róbert Lórencz (ČVUT FEL, 2005) Architektura

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

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

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

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

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

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

Paměti Flash. Paměti Flash. Základní charakteristiky

Paměti Flash. Paměti Flash. Základní charakteristiky Paměti Flash K.D. - přednášky 1 Základní charakteristiky (Flash EEPROM): Přepis dat bez mazání: ne. Mazání: po blocích nebo celý čip. Zápis: po slovech nebo po blocích. Typická životnost: 100 000 1 000

Více

Konzistentnost. Přednášky z distribuovaných systémů

Konzistentnost. Přednášky z distribuovaných systémů Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické

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

Kvantitativní principy návrhu počítačů. doc. Ing. Róbert Lórencz, CSc.

Kvantitativní principy návrhu počítačů. doc. Ing. Róbert Lórencz, CSc. Architektura počítačových systémů Kvantitativní principy návrhu počítačů doc. Ing. Róbert Lórencz, CSc. České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů

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

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

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

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

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

Kvantitativní principy návrhu počítačů

Kvantitativní principy návrhu počítačů Architektura počítačových systémů Kvantitativní principy návrhu počítačů České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Aktualizace výukových materiálů

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

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

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

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

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

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

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

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

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

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =

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

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

Management procesu I Mgr. Josef Horálek

Management procesu I Mgr. Josef Horálek Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více

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: 9 SYSTÉMOVÝ NÁVRH, IP-CORES doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii ČVUT v Praze

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

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/ Střední odborná škola elektrotechnická, Centrum odborné přípravy Zvolenovská 537, Hluboká nad Vltavou Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/34.0448 CZ.1.07/1.5.00/34.0448 1 Číslo projektu

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

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

Ří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

Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc.

Katedra informatiky a výpočetní techniky. 10. prosince Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. Katedra informatiky a výpočetní techniky České vysoké učení technické, fakulta elektrotechnická Ing. Tomáš Zahradnický doc. Ing. Róbert Lórencz, CSc. 10. prosince 2007 Pamět ové banky S výhodou používáme

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

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

Správy cache. Martin Žádník. Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, Brno

Správy cache. Martin Žádník. Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, Brno Správy cache Martin Žádník Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, 612 66 Brno ant@fit.vutbr.cz Hierarchie Cílem cache je dostat data co nejblíže výpočetnímu

Více

Uvěďte metriky hodnocení PC, které lze získat z benchmarků. Doba CPU Hodinová frekvence Počet instrukcí CPI

Uvěďte metriky hodnocení PC, které lze získat z benchmarků. Doba CPU Hodinová frekvence Počet instrukcí CPI Uvěďte metriky hodnocení PC, které lze získat z benchmarků. (2) (Př. 3) Doba CPU provedením programu; Hodinová frekvence; Počet instrukcí získává se obtížně (pomocí simulátorů nebo HW čítačů) závisí na

Více

Procesy a vlákna - synchronizace

Procesy a vlákna - synchronizace ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna - synchronizace České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura počítače - pokračování České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Systémová struktura počítače pokrač. Systém přerušení A8B14ADP

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

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

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

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

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

4. Úvod do paralelismu, metody paralelizace

4. Úvod do paralelismu, metody paralelizace 4. Úvod do paralelismu, metody paralelizace algoritmů Ing. Michal Bližňák, Ph.D. Ústav informatiky a umělé inteligence Fakulta aplikované informatiky UTB Zĺın Paralelní procesy a programování, Zĺın, 26.

Více

Semestrální práce z předmětu ÚPA MIPS

Semestrální práce z předmětu ÚPA MIPS Semestrální práce z předmětu ÚPA MIPS Jméno a příjmení: Martin Sloup Osobní číslo: A04372 Datum odevzdání: 21. prosince 2006 E-mail: msloup@students.zcu.cz Zadání Program převede signed integer na jeho

Více

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

Mezipaměti počítače. L2 cache. L3 cache Mezipaměti počítače Cache paměť - mezipaměť Hlavní paměť procesoru je typu DRAM a je pomalá. Proto se mezi pomalou hlavní paměť a procesor vkládá menší, ale rychlá vyrovnávací (cache) paměť SRAM. Rychlost

Více

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

Přerušovací systém s prioritním řetězem Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním

Více

Pokročilé architektury počítačů

Pokročilé architektury počítačů Pokročilé architektury počítačů Architektura paměťového a periferního podsystému České vysoké učení technické, Fakulta elektrotechnická A4M36PAP Pokročílé architektury počítačů Ver.1.00 2010 1 Motivace

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

Architektury paralelních počítačů I.

Architektury paralelních počítačů I. Architektury paralelních počítačů I. Úvod, Koherence a konzistence u SMP Ing. Miloš Bečvář s použitím slajdů Prof. Ing. Pavla Tvrdíka, CSc. Osnova přednášky Typy paralelismu a jejich využití v arch. poč.

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

Úvod do GPGPU J. Sloup, I. Šimeček

Úvod do GPGPU J. Sloup, I. Šimeček Úvod do GPGPU J. Sloup, 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-PRC, LS2010/11, Predn.3 Příprava studijního programu

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

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

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010 Přednášky o výpočetní technice Hardware teoreticky Adam Dominec 2010 Rozvržení Historie Procesor Paměť Základní deska přednášky o výpočetní technice Počítací stroje Mechanické počítačky se rozvíjely už

Více

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka RB0 nastaví bit 0 v registru reg na hodnotu 1.

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