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 a CPU gyorsítása, pipeline, cache. 2 Processzor gyorsítási lehetőségek Pipeline feldolgozás Cache gyorsító tár CISC vs. RISC... Bitszelet processzorok.

Hasonló előadás


Az előadások a következő témára: "1 a CPU gyorsítása, pipeline, cache. 2 Processzor gyorsítási lehetőségek Pipeline feldolgozás Cache gyorsító tár CISC vs. RISC... Bitszelet processzorok."— Előadás másolata:

1 1 a CPU gyorsítása, pipeline, cache

2 2 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 1200 MHz-es órajel => 1/(1200*10e6) s (két órajel közötti idő) ≈ 0.8ns „fénysebesség” ≈ km/s (300000*10e3 m/s) * (1/(1200*10e6s)) => ≈ 0.25m (utat tesz meg a fény két órajel között!)

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 C i+1 = (X i AND Y i ) OR (X i AND C i ) OR (Y i AND C i ) C i+1 =(X i * Y i ) + (X i * C i ) + (Y i * C i ) C i+1 =(X i * Y i ) + ((X i + Y i ) * C i ) G i = generate = X i *Y i P i = propagate =X i + Y i C i+1 =G i +P i *C i

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 C i+1 =G i +P i *C i C4 független C1..C3-tól, csak X1..4, Y1..4 és C0-tól függ C1 behelyettesítve

9 9 Szorzás ROM-ból kiolvasással X Y Z 0* * * * * * * * * * * * * * * 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ő 2. utasítás feldolgozása 3. utasítás feldolgozása dekodolásvégrehajtástároláselőkészítés 1. utasítás feldolgozása

13 13 Utasítás végrehajtás fokozatokra bontása tárolás végrehajtás dekódolás előkészítés utasítás feldolgozása idő tároláselőkészítésdekódolásvégrehajtás utasítás feldolgozása

14 14 Csővezetékszerű utasítás végrehajtás (pipelined) utasítás feldolgozása idő utasítás feldolgozása 2. utasítás feldolgozása tárolás végrehajtás dekódolás előkészítés

15 15 Csővezetékszerű utasítás végrehajtás idő nem egyenlő hosszú fokozatok tárolás végrehajtás dekódolás előkészítés ? nem egyenlő hosszú fokozatok

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

17 17 Memória utasítások a pipeline-ben „Várakoztató utasítások” 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 R1,R2,R3

18 18 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)

19 19 Adatok felhasználása a pipeline-ben adat függőség add R1,R2,R3 sub R3,R0,R4 ü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... add (M1),R2,R3 sub R3,R0,R3 add (M1),R2,R3 sub R2,R0,R2

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

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

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

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

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

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

26 26 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)

27 27 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* *( ) = 256 ns (átlagos elérési idő) r= tm/tc = 960/160 = 6 g= 1/(1+r*(1-h)) =1/(1+6*0.1) = = 62.5% (hatékonyság növekedés)

28 28 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))

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

30 30 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 i x „i” x... blokkméret : j tag érték

31 31 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 x x i MOD N m-n i DIV N

32 32 Közvetlen leképzésű cache (direct mapping cache) memória 0 M-1 0 N-1 k k i i MOD N m-n i DIV N Pld. 10-es számrendszer, M=1000, N=10 i= x x 785.

33 33 Közvetlen leképzésű cache (direct mapping cache) memória 0 M-1 0 N-1 k k i i MOD N m-n i DIV N Pld. 2-es számrendszer, M=1024=2 10, N=8=2 3 i= x x

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

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

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

37 37 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)

38 38 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)

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

40 40 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 utasítás

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

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

43 43 Végrehajtó egységek (Execution Units)

44 44 Pentium 4 Processzor adat-útvonalak (Data Stream of Pentium 4 Processor)

45 45

46 46

47 47

48 48 Intel Pentium XEON

49 49 MIPS R16000

50 50 Sorrendet nem megtartó végrehajtó egység csővezeték (Out-of-order execution engine detailed pipeline)


Letölteni ppt "1 a CPU gyorsítása, pipeline, cache. 2 Processzor gyorsítási lehetőségek Pipeline feldolgozás Cache gyorsító tár CISC vs. RISC... Bitszelet processzorok."

Hasonló előadás


Google Hirdetések