Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 Számítógépek felépítése 5. előadás a CPU gyorsítása, pipeline, cache Dr. Istenes Zoltán ELTE-TTK.

Hasonló előadás


Az előadások a következő témára: "1 Számítógépek felépítése 5. előadás a CPU gyorsítása, pipeline, cache Dr. Istenes Zoltán ELTE-TTK."— Előadás másolata:

1 1 Számítógépek felépítése 5. előadás a CPU gyorsítása, pipeline, cache Dr. Istenes Zoltán ELTE-TTK

2 2 5. előadás tartalma Processzor gyorsítási lehetőségek Pipeline feldolgozás Cache gyorsító tár CISC vs. RISC... Bitszelet processzorok Co-processzorok Pédák processzorokra...

3 3 Órajelfrekvencia, idő, távolság 1 „normál” kapu kapcsolási idő = 10ns 300 MHz = 0.3*10e9 1/s -> 3 ns 300.000 km/s = 0.3*10e9 m/s -> 0.3 m/ns

4 4 Processzor gyorsítási lehetőségek művelet végzés gyorsítása ? párhuzamosítás ! utasítás végrehajtás gyorsítása ?

5 5 Műveletvégzés gyorsítása Összeadás átvitel-előrelátás (addition carry-lookahead)

6 6 Teljes összeadó „késleltetése” (ripple carry) 1+ y3 x3 s3 1+ y2 x2 s2 1+ y1 x1 s1 1+ y0 x0 s0 c0 c4 c3c2c1 késleltetés (3dt) 1 dt = 1 kapu kapcsolási idő (kb. 10ns)

7 7 Gyorsított összeadás Ci+1=Xi.Yi+Xi.Ci+Yi.Ci Ci+1=Gi+Pi.Ci ahol Gi=Xi.Yi és Pi=Xi+Yi Gi = generate (Xi=Yi=1) Pi = propagate (Xi vagy Yi = 1)

8 8 4bites átvitel-előrelátás („carry lookahead”) C1=G0+P0.C0 C2=G1+P1.C1 =G1+P1.G0+P1.P0.C0 C3=G2+P2.C2 =G2+P2.G1+P2.P1.G0+P2.P1.P0.C0 C4=G3+P3.C3 =G3+P3.G2+P3.P2.G1+P3.P2.P1.G0+P3.P2.P1.P0.C0

9 9 Szorzás ROM-ból kiolvasással X Y Z 0*000 000000 0*100 010000 0*200 100000 0*300 110000 1*101 010001 1*201 10 0010 1*301 110011 2*010 000000 2*110 010010 2*210 100100 2*310 110110 3*011 000000 3*111 010011 3*211 100110 3*311 111001 MEM 16x 4bit Z X Y gyors, egyszerű, olcsó tetszőleges függvényre csak kisméretben alkalmazható

10 10 Pipeline feldolgozás (csővezeték, futószalag feldolgozás)

11 11 „Pipelining” részfázisokra bontás független részfázisok, önálló erőforrásokkal az egyik fázis eredménye a következő induló adata

12 12 Utasítások egymás utáni végrehajtása 1. utasítás feldolgozása idő végrehajtásutasítás előkészítés dekódolásoperandus meghatározás 2. utasítás feldolgozása 3. utasítás feldolgozása

13 13 Utasítás végrehajtás fokozatokra bontása végrehajtás op. meghatározás dekódolás út. előkészítés utasítás feldolgozása idő végrehajtásutasítás előkészítés dekódolásoperandus meghatározás

14 14 Csővezetékszerű utasítás végrehajtás (pipelined) végrehajtás op. meghatározás dekódolás út. előkészítés 1 1 1 1 1. utasítás feldolgozása idő 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 7... 3. utasítás feldolgozása 2. utasítás feldolgozása

15 15 Problémák a pipeline-vel tárolóhivatkozás : lassú memória miatt várni kell az operandusokra egyszerre kéne ugyanabból a tárból adatot és utasítást elérni vezérlés átadó utasítások... megszakítások... folyamatos pipeline feldolgozás megszakítása, felfüggesztése

16 16 Memória utasítások a pipeline-ben várakozó ciklusok beiktatása - „lyukak” a pipeline-ben késleltetett memória utasítás - utasítások átrendezése, üres utasítás beiktatása load R1, (A) load R2, (B) add R3,R1,R2

17 17 Elágazások kezelése a pipeline-ben az ugrási cím csak az utasítás feldolgozása után lesz ismert... ha „rossz” ágat utasításait kezdi el feldolgozni akkor a pipeline-t (és az utasítások hatásait) törölni kell... delayed branch (NOP utasítással feltöltés)

18 18 Adatok felhasználása a pipeline-ben adat függőség add R3,R1,R2 sub R4,R3,R0 ütközések : írás utáni írás : 2. írás után ír az 1. írás utáni olvasás : 2. előbb olvas mint az 1. ír olvasás utáni írás : 2. előbb ír mint az 1. olvas olvasás utáni olvasás :-) scoreboarding... internal forewarding...instruction scheduling...

19 19 Pipeline összefoglalás egyszerű elv bonyolult, „trükkös” megvalósítás sokat segíthet a fordítóprogram

20 20 Cache „gyorsító” tár

21 21 Cache memória Probléma : a központi memória általában sokkal lassabb (5x-10x-...) mint a processzor... Kicsi, gyors (drága!), puffer memória a központi memória és a processzor közé... CPU Központi memória Cache memória

22 22 „Tipikus” cache 64 Mbyte memóriához 64 Kbyte cache 20x gyorsabb 1/1000 méret 98% cache találat

23 23 Cache működés (olvasás) CPU által generált memóriacím küldése a cache-nek : 1. ha az adat a cache-ben van (cache hit, cache találat) : adat elküldése a CPU-nak 2. ha az adat nincs a cache-ben (cache miss, cache „nemtalálat”, „találat hiba”) : a generált memóriacím küldése közp. memóriának adat kiolvasása a központi memóriából, adat elküldése a CPU-nak, és a cache-be

24 24 Cache a memória és a cache között blokkos adatátvitel (4-64 szó) teli cache esetén egy cache blokkot fel kell szabadítani (helyettesítési eljárások)

25 25 Cache hatása az átlagos elérési időre és a hatékonyságra (példa) Adatok : cache elérési időtc = 160ns memória elérési időtm = 960ns átlagos cache találati arányh = 90% Kérdés : mennyi az átlagos elérési idő ? (ta) mekkora a hatékonyság növekedés ? (g)

26 26 Cache hatása az átlagos elérési időre és a hatékonyságra (példa) ta= h*tc + (1-h)*(tc+tm) = 0.9*160 + 0.1*(960+160) = 256 ns (átlagos elérési idő) r= tm/tc = 960/160 = 6 g= 1/(1+r*(1-h)) =1/(1+6*0.1) = 0.625 = 62.5% (hatékonyság növekedés)

27 27 Cache hatása (SuperSPARC példa) CPU 0.75 CPI (cycles per instruction) 3% cache miss memória késleltetés 10 ciklus 1.33 memória referencia / utasítás cache miss „büntetés” 0.4 CPI 0,75*1,33*3%*10 35% teljesítmény csökkenés 1-1/(1+3%*(10+1))

28 28 Memória „leképzése” a cache-ra Teljesen asszociatív cache Közvetlen leképzésű cache Csoport asszociatív cache

29 29 Teljesen asszociatív cache (fully associative cache) központi memória blokk „i” (0<=i<=M-1) leképezhető bármelyik „j” (0<=j<=N-1) cache blokkra memória 0 M-1 0 N- 1 k k M=2 m N=2 n m j „j”... blokkméret :

30 30 Közvetlen leképzésű cache (direct mapping cache) egy-egy memória blokk csak meghatározott helyre kerülhet (I-way set associative cache) memória 0 M-1 0 N- 1 k k i i MOD N m-n i DIV N

31 31 Közvetlen leképzésű cache címformátuma memória blokk cím m bit m-n bitn-bit „tag”cache blokk cím M=2 m N=2 n

32 32 Közvetlen leképzésű cache memória 0 M-1 0 N- 1 k k i i MOD N. m-n i DIV N a memória cím „alsó” n bitje „tag” a memória cím „felső” m-n bitje

33 33 Csoport asszociatív cache (set associative cache) memória 0 M-1 0 N- 1 k m-n+s j... S=2 s S csoport blokkonként a memória cím „alsó” n-s bitje „tag” a memória cím „felső” m-n+s bitje k cache csoport cím blokkcsoport 0 N/S-1

34 34 Cache-ben lévő adat megváltoztatása cache - memória koherencia fenntartása ! azonnali átírás (write-through) : blokk tartalom módosítás esetén a blokk visszaírása a memóriába visszamásolási eljárás (write back) : a frissen betöltött blokk „dirty” („piszkos”) bitje = 0 blokk tartalom módosítás esetén dirty bit = 1 blokk cache-ból törlésekor : ha dirty bit = 1 akkor vissza kell írni a memóriába (különben nem)

35 35 CISC vs. RISC processzorok CISC = Complet Instruction Set Computer (teljes utasítás készletű számítógép) RISC = Reduced Instruction Set Computer (csökkentett utasítás készletű számítógép)

36 36 CISC vs. RISC processzorok CISC „könnyebb programozás” összetett utasítások, sokféle címzési mód utasítás végrehajtás több órajel alatt mikroprogramozott... RISC egyszerűbb, gyorsabb optimalizált fordítók kevés utasítás és címzési mód rögzített utasítás forma utasítás végrehajtás 1 órajel alatt kevés memória hozzáférés sok regiszter huzalozott vezérlő pipeline feldolgozás

37 37 CISC vs. RISC CISC (VAX) 14 féle címzési mód 250 utasítás RISC 1 féle címzési mód 32 (50) regiszter... 30-40 utasítás

38 38 Bit-szelet processzorok Bit-szelet (bit slice) processzor példa : AM 2901 4 bites ALU + regisztertömb 3 aritmetikai, 5 logikai művelet 9 bites vezérlés állapot jelek

39 39 Segédprocesszorok co-processzorok gyorsabb lebegőpontos, mátrix, grafikai műveletek új utasítások, adattípusok, regiszterek együttműködés a processzorral


Letölteni ppt "1 Számítógépek felépítése 5. előadás a CPU gyorsítása, pipeline, cache Dr. Istenes Zoltán ELTE-TTK."

Hasonló előadás


Google Hirdetések