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

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

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

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

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

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

Pohled do nitra mikroprocesoru Josef Horálek

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

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

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

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

Princip funkce počítače

Architektura Pentia úvod

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

Architektury počítačů a procesorů

Architektura procesorů PC shrnutí pojmů

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

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

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

Vývoj architektur PC 1

Operace ALU. INP 2008 FIT VUT v Brně

CISC A RISC PROCESORY Jak pracují procesory CISC:

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

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

Procesor z pohledu programátora

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

RISC a CISC architektura

Architektura Pentia 1

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

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

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

Pohled do nitra mikroprocesoru

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

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

Architektura počítačů Implementace procesoru

Architektura počítače

Charakteristika dalších verzí procesorů v PC

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

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

Architektura počítačů Logické obvody

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

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

Architektura Intel Atom

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

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

a operačních systémů

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

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

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

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

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

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

Principy počítačů I - Procesory

PB002 Základy informačních technologií

Architektura počítačů Logické obvody

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

Systém adresace paměti

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

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

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

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

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

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

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

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

PROCESOR. Typy procesorů

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

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

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

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

Architektura počítačů

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

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

Struktura a architektura počítačů

Architektura procesoru ARM

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.

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

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

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

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

Pokročilé Architektury Procesorů

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

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

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

Architektura počítačů

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

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

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

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

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 TECHNICKÉ VYBAVENÍ POČÍTAČŮ

Jak do počítače. aneb. Co je vlastně uvnitř

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

PB002 Základy informačních technologií

Architektura a princip funkce počítačů

Středoškolská technika Návrh procesorového jádra

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

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

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

Testování jednotky ALU a aplikace metody FMEA

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

Transkript:

Ř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ě rychlé tento kód ale není implementován v běžných procesorech, neumožňuje totiž dělení Lze realizovat speciální výpočetní jednotky dle potřeby dané úlohy Příklad: FFT, která není v běžném procesoru Paralelní zpracování (násobné výpočetní jednotky) Zřetězené zpracování jinak též pipelining, překládané též jako proudové zpracování tato přednáška 2

Paralelní zpracování Př S = A + B + C + D + E + F + G + H SW: sekvenčně S = A + B; S = S + C; S = S + D; S = S + E; S = S + F; S = S + G; S = S + H; A + B C D E F + + + + G + H 7 kroků, 1 sdílená sčítačka + S 3 kroky, 7 nesdílených sčítaček 3

Obvod bez zřetězení (Př obvod=filtr, vstup=pixel, výstup=filtrovaný pixel) 1 1 2 2 3 3 Příklad: 65536 pixelů 4 4 Předpokládejme zpoždění obvodu: 90 ns 5 5 Celkem: 65536 x 90 ns = 5898240 ns = 5,9 ms 6 6 4

Zřetězený filtr: rozděl původní obvod, přidej registry CLK 1PIXEL 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 10 9 8 7 6 5 4 3 2 11 10 9 8 7 6 5 4 3 12 11 10 9 8 7 6 5 4 9 pixelů je zpracováváno současně zrychlení 9x oproti předchozímu řešení 5

Zřetězený filtr 9 stupňů Příklad: 65536 pixelů Předpokládejme zpoždění stupně: 10 ns 1 pixel bude zpracován za 9 x 10 = 90 ns 2, 3 až 65536 pixel každý za 10 ns Celkem: 90 ns + 65535 x 10 ns = 655440 ns = 0655440 ms Zrychlení: 89989 krát není to 9x, protože se musí naplnit zřetězená linka při výpočtu jsme neuvažovali zpoždění registru 6

Zrychlení použitím řetězení: vytvoříme k stupňů oddělených registry Počet vstupů, které zpracováváme: N Počet stupňů: k Zpoždění stupně: t Zpoždění registru: d Zrychlení: Nkt (k +N-1)*(t+d) Kdy má smysl zavést řetězené zpracování? Pokud je N dostatečně velké! Pokud je zpoždění stupňů je přibližně stejné Jaký je optimální počet stupňů? viz cvičení 7

Zřetězení + duplikace jednotek další urychlení registr SW: Vypočtěte F[i]=(c[i]+d[i])*sin(a[i]+b[i]) pro i=1100 for (i=1; i<=100; i++) { pom = a[i]+b[i]; pom1 = sin(pom); pom2 = c[i]+d[i]; F[i] = pom1 * pom2; } Celkem: 100 x 4 = 400 kroků (pokud neuvažujeme test podmínky v cyklu) První výsledek za 3 kroky 2 až 99 výsledek za 1 krok Celkem 102 kroků Zrychlení 3,92 krát 8

Řetězené zpracování instrukcí v procesorech Princip zřetězení se značně překrývá s principy procesorů typu RISC Základní myšlenka: V procesorech CISC používají složité strojové instrukce (CPI >> 1) pouze špičkoví programátoři, ale standardní rutiny kompilátoru je nepoužívají Výhodnější by bylo implementovat pouze jednoduché, ale rychlé instrukce Dojde ke zrychlení zpracování instrukcí a úspoře plochy na čipu Chybějící složité instrukce jsou nahrazeny podprogramy sestavenými z jednoduchých instrukcí Cílem je dosáhnout parametru instrukčního souboru CPI =1 To lze zajistit pouze trikem překrýváním cyklů F D E Pozn: U jednoduchého procesoru má instrukce CPI minimálně 3 9

Cykly procesoru von Neumannův procesor 1 generace F D E F D E F D E I1 I2 I3 CPI = 3 čas Řetězený procesor, základní, teoretický typ, ideální případ bez prostojů F D E Instr 1 F D E Instr 2 F D E Instr 3 F D E Instr 4 F D E Instr 5 CPI = 1 Řetězený procesor reálná verze, ideální případ bez prostojů F D E M W Instr 1 F D E M W Instr 2 F D E M W Instr 3 F D E M W Instr 4 F D E M W Instr 5 CPI 1? 10

CPI = 1 Obecné rysy architektur RISC Všechny instrukce mají stejnou složitost Přístup k paměti mají pouze dvě instrukce, LOAD a STORE, ostatní pracují s registry Registrová architektura (sada registrů) Rychlý obvodový řadič Oddělená paměť (cache) instrukcí a dat Historie: Projekt počítače 801 (1979) 32-bitový minipočítač, CPI = 1, ECL, 32 registrů, oddělené cache pro I a D, zpožděný skok Na to navázaly projekty RISC (1980) na Berkley, Univ of California, David Patterson, a MIPS Machine without Interlocked Pipelined Stages, (1980), Stanford, John Hennessy 11

addra 5 Opakování: Sada registrů (Register File) Př 32 x 32b registr R0 addrw WE DATA CLK 5 32 DEC 1 z 32 Enable WE_R0 WE_R31 DATA 32 we clk D WE_R31 we clk DATA D 32 Q Q R0 32 R31 32 32 R1 32 R31 32 R0 32 R1 32 R31 MX MX RA 32 RB 32 addrb 5 32 12

Popis cyklů reálného řetězeného procesoru F instruction fetch: IR M [PC], NPC PC + 4 (načtení instrukce, zvýšení PC) D instruction decode + register fetch: A Ri, B Rj (výběr operandů ze sady registrů) Imm IRadr (extrakce adresy z IR) E provedení + cyklus výpočtu efektivní adresy MRef : ALUoutput A + Imm I R-R : ALUoutput A op B I Branch : ALUoutput PC + Imm (výpočet nové adresy) Cond nastavení příznaku M přístup k paměti + cyklus dokončení skoku MRef : RegDat M [ALUoutput], nebo M [ALUoutput] B Branch : if (cond) PC ALUoutput else PC NPC W uložení výsledků I R-R : Regs [IRadr] ALUoutput I R Imm: Regs [IRadr] ALUoutput I Load: Regs [IRadr] Reg Dat 13

DLX procesor výukový RISC procesor A B MX: multiplexor, DC: cache dat, = 0? : detektor nuly (Cond), IC: cache instrukcí, ALU: aritmeticko-logická jednotka, PC: čítač instrukcí, IR: registr instrukce, RF: soubor registrů (register file), sex: jednotka rozšíření znaménka (sign extension), dst: adresa cílového registru, src1 a src2: adresy zdrojových registrů, imm: přímý operand, L/S: load/store Paměť (M) je rozdělena na paměť instrukcí (IC) a paměť dat (DC) 14

DLX poznámky V každém taktu je celý stav zpracování instrukce (kontext) obsažen úplně a výhradně v obvodech jen jednoho stupně Proto se např index cílového registru dst (5 bitů) kopíruje z jednoho stupně do druhého než se nakonec použije jako adresa výsledku v souboru registrů Např proto se také kopíruje obsah registru (op2) určený k zápisu do paměti Uvedená vlastnost linky znamená, že ostatní stupně jsou volné a dají se použít pro paralelní zpracování dalších nezávislých instrukcí U podmíněného skoku se adresa získá buď inkrementací (+ 4 byte u 32-bitové instrukce) nebo se stávající adresa modifikuje přičtením hodnoty získané z instrukce (26 bitů) sčítačkou v ALU Přímý operand instrukce (imm) má šířku 16 bitů a v jednotce rozšíření znaménka (sex) se z něj vytvoří 32-bitový operand Při čtení nebo zápisu do paměti D-cache může být adresa v jednom z registrů a může se k ní přičíst odstup (imm) uvedený v instrukci (16 bitů) Výpočet adresy se provádí v ALU 15

Konflikty u řetězeného zpracování v procesorech, které mohou vést ke zpomalení linky 1 Strukturální obvodová struktura neumožňuje současné provedení určitých akcí např současné čtení dvou hodnot z paměti nebo současné provedení dvou sčítání, pokud má procesor jednu ALU 2 Datové když jsou zapotřebí data z předcházející instrukce, která není dokončena 3 Řídicí když skoková instrukce mění obsah PC, nebo jiné ad 1) F D E M W F D E M W F D E M W F D E M W požadavek na současnéčtení instrukce a čtení operandu z paměti řešení: rozdělit paměť na paměť instrukcí a paměť dat obecnéřešení: přidání výpočetních jednotek 16

Datové konflikty ad 2) ADD R1, R2, R3 (R1 R2 + R3) SUB R4, R5, R1 (R4 R5 + R1, ale obsah R1 nebyl dosud vypočten!) AND R6, R1, R7 OR R8, R1, R9 XOR R10, R1, R11 Klasifikace: RAW Read After Write přečtení staré hodnoty WAW Write After Write zůstane zapsaná chybná hodnota WAR Write After Read přečte se nová, chybná hodnota 17

Bypassing Bypassing - poskytnutí mezivýsledku dřív než bude zapsán do registru Je to umožněno přidáním speciálních datových cest viz příklady na obrázku Pomáhá řešit datové konflikty 18

Řídicí konflikty ad 3) BC F D E M W BC+1 F F D E M W BC+2 F D E M W BC+3 F D E M W atd Nevím, kam skočit! Adresa bude známa až po fázi M na řádku BC Řešení: 1 Zpožděný skok, tedy vložit jiné, užitečné instrukce, což znamená přeskládat instrukce programu 2 Nelze-li takové užitečné instrukce najít, vložit NOPy 3 Predikce skoku, rozpracovat pouze predikovanou možnost 4 Rozpracovat obě možnosti pokračování skokové instrukce 19

Řídicí konflikty a prediktory skoku Experimentálně zjištěno, že četnost skoků v programech je značná, kolem 20% u univerzálních programů a 5-10% u vědecko-technických výpočtů Celkově se zhruba 5/6 (83%) skoků provede U všech skoků je třeba zrychlit zjištění cílové adresy k tomu se používá malá paměť cache pro uložení cílových adres (BTB Branch Target Buffer), která se postupně naplňuje a aktualizuje Pro nepodmíněné skoky a pro správně predikované podmíněné skoky se zřetězená linka nepozastaví U podmíněných skoků jde ještě navíc o vyhodnocení podmínky O splnění podmínky je možné spekulovat - jde o tzv predikci skoků, která může být statická (kompilátor nastaví bit predikce) nebo dynamická pomocí speciálního HW Predikuje se podle předchozích směrů skoku Historii můžeme popsat binárním řetězcem několika bitů, které představují hodnoty podmínky během posledních skoků Bity historie jsou stavem sekvenčního obvodu, který implementuje jistou funkci příštího stavu a jednobitového výstupu (vstup/výstup + a - značí skok a neskok) 20

Jednobitový prediktor Používá jen 1 bit historie, tj zda se skok v předchozím průchodu provedl či ne, a předpovídá stejné chování v příštím průchodu + (skutečnost) - 0 1 + - (skutečnost) stav 0 = skok minule neproveden, předpověď je neskoč (-) stav 1 = skok minule proveden, předpověď je skoč (+) Pokud je předpověď chybná, přejdi do druhého stavu Při špatné predikci musí být špatná větev programu ukončena a musí začít načítání instrukcí ze správné větve Je třeba aktualizovat BTB Stojí to několik taktů řetězené linky 21

Dvoubitový prediktor Přesnost předpovědi 1b prediktoru na řadě testovacích úloh byla 80 až 96 % Zvýšení počtu bitů historie vede ke zvýšení přesnosti, ale nad 2 bity již není významné Nejlépe osvědčil a nejčastěji se používá 2-bitový prediktor zapojený jako saturovaný čítač: + + + - 00 01 10 11 + - - - Predikce (-) Predikce (+) Prediktor je ve dvou stavech pozitivní, v dalších dvou negativní Ke změně predikce v saturovaném stavu (00 nebo 11) jsou zapotřebí alespoň dvě špatné predikce Uvedený prediktor vykazuje přesnost 87 až 97 % Počáteční stav prediktoru lze nastavit podle statické predikce Ke každému skoku vyskytujícímu se v programu přísluší uvedený konečný automat a jeho stavové (historické) bity můžeme přidat k BTB V případě 1-bitové predikce to ani není nutné stačí ponechat v BTB jen skoky s pozitivní predikcí 22

Rozšíření pipeline o časově náročné operace Předpokládejme, že v řetězeném procesoru jsou čtyři oddělené jednotky: 1 FX jednotka Load, Store, skoky a FX operace 2 FP/FX násobička 3 FP sčítačka sčítání, odčítání, konverze 4 FP/FX dělička Tyto jednotky provádějí operace s odlišnou časovou náročností, a to po řadě 1, 7, 4 a 24 taktů Toto zadání vede na realizaci řetězce s rozvětvením na paralelně pracujícířetězené jednotky na následujícím obrázku (Takovýto rozvětvený pipeline najdeme například v Pentiu) 23

Pipeline realizující FX a FP operace EX Jednotka FX M1 M2 M3 M4 M5 M6 M7 IF ID FP/FX násobička M WB A1 A2 A3 FP sčítačka A4 FP/FX dělička 24 Tc 24

Příklad instrukcí různé délky a potenciální problém Mějme tento úsek programu: (D znamená dvojnásobnou přesnost) DIVD F0, F2, F4 ADDD F10, F10, F8 SUBD F12, F12, F14 Na první pohled zde nejsou problémy, protože zde nejsou datové závislosti Ovšem podle předcházející řetězené struktury budou instrukce ADD, SUB dokončeny dříve, než dříve zahájená instrukce DIV (out-of-order completion) Pokud však nastane v době dokončování DIV výjimka, instrukce ADD, SUB se již nesmějí provést, tak jak by se stalo na klasické neřetězené výpočetní struktuře Řešení: nutno zavést koncept precizního přerušení (viz pokročilý kurz o procesorech) 25

Poznámky k zřetězenému zpracování Zřetězené zpracování přináší urychlení výpočtu nejen v procesorech, ale i jiných číslicových obvodech (např pro zpracování obrazu, bioinformatických dat apod) Pokud použijeme zřetězené zpracování v procesoru, musíme dodat řadu podpůrných obvodů a řešit řadu nových problémů Podrobnější analýza problémů zřetězeného zpracování v procesorech bude provedena v magisterském kurzu Architektura procesorů Moderní procesory používají kromě řetězení i další koncepty superskalární architektury VLIW procesory vektorové procesory multivláknové procesory atd 26

Literatura Drábek, V Výstavba počítačů Skriptum VUT, 1995 Dvořák, V, Drábek, V: Architektura procesorů Studijní opora FIT VUT v Brně 2006 27