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.

Slides:



Advertisements
Hasonló előadás
Alaplap.
Advertisements

1 Számítógépek felépítése 9. előadás I/O rendszerek.
Rendszertervezés Hardver ismeretek.
Memóriák típusai, jellemzői
A számítógép felépítése
CUDA.
Neumann-elvek A számítógép legyen teljesen elektronikus, külön vezérlő és végrehajtó egységgel. Kettes számrendszert használjon. Az adatok és a programok.
A mikroprocesszor 1. rész.
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
A számítógép felépítése
Belső memóriák tipusai
Szoftevrismeret Operációs rendszerek.
A Neumann-elvű számítógép jellemzői:
Központi feldolgozó egység (CPU)
Mikroszámítógépek I 8085 processzor.
Mikroszámítógépek I 8085 processzor.
Utasítás végrehajtás lépései
PIC processzor és környezete
CISC - RISC processzor jellemzők
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
A memória.
2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”)
Többmagos processzorok
A memóriák típusai, jellemzői
A memória tárolja a végrehajtandó programokat és a feldolgozásra váró adatokat. A számítógép memóriája adattárokból áll. Minden ilyen adattár memóriaelemekből.
Sínrendszer.
Egy egyszerű gép vázlata
a CPU gyorsítása, pipeline, cache
MIÉRTEK A SZÁMÍTÁSTECHNIKÁBAN
Operációs Rendszerek II.
Hardvereszközök Hardvereszközök I.rész. Hardvereszközök CPU Memóri a Input Háttértárolók Outpu t A számítógép felépítési elve Neumann elvek: 1.Soros utasításvégrehajtás.
RISC processzorok Processzorkategóriák RISC tervezési filozófia
A mikroszámítógép felépítése
SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 4
A számítógép teljesítménye
Mikrokontroller (MCU, mikroC)
A számítógép felépítése
Processzor, alaplap, memória
Egy második generációs gép (az IBM 7094) felépítése
Egy első generációs gép (az IAS) felépítése
CUDA C/C++ programozás
Mikroprocesszor.
Ismerkedjünk tovább a számítógéppel
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. Számítógép- architektúrák dr. Kovács György DE AVK GAIT.
Írja fel a tizes számrendszerbeli
Mikroprocesszorok Működés.
1 Számítógépek felépítése 13. előadás Dr. Istenes Zoltán ELTE-TTK.
IT ALAPFOGALMAK HARDVER.
Memória példák Feladat Egy számítógép rendszermemóriája egycsatornás, 64 bites adategységekkel rendelkező DDR1-DRAM-ra épül, melyben a burst.
HEFOP 3.3.1–P /1.0A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. 1 Számítógép architektúrák dr. Kovács.
ifin811/ea1 C Programozás: Hardver alapok áttekintése
Memóriakezelés feladatok Feladat: 12 bites címtartomány. 0 ~ 2047 legyen mindig.
CISC-RISC processzor jellemzők Előadó: Thész Péter Programtervező informatikus hallgató Budapest,
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
A CPU (központi feldolgozó egység vagy processzor)
1 A számítógépek felépítése jellemzői, működése. 2 A számítógép feladata Az adatok Bevitele Tárolása Feldolgozása Kivitele (eredmény megjelenítése)
Neumann elvű számítógép. Neumann János ► Neumann János december 28-án Budapesten született ► 1930-ban emigrált az USA-ba.
1 A számítógépek tárolói. 2 Memória Memóriaszó  A tárak olyan egységei, melyek egyetlen művelettel kezelhetők.  A legrövidebb memóriaszó a byte (bájt)
RAM (Random Access Memory)
Neumann elvek és a Neumann elvű számítógép felépítése
A számítógép felépítése
A Számítógépek felépítése, működési módjai
A Számítógépek felépítése, működési módjai
A számítógép működésének alapjai
Memória példák 2019.
Fejlett pipeline megoldások IMSC 2019
Pipeline példák (IMSC, 2019).
Cache példák 2019 (IMSC).
Számítógépek felépítése 9. előadás I/O rendszerek
Előadás másolata:

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

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 Műveletvégzés gyorsítása Összeadás átvitel-előrelátás (addition carry-lookahead)

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 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 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 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 Pipeline feldolgozás (csővezeték, futószalag feldolgozás)

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 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 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 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 utasítás feldolgozása idő utasítás feldolgozása 2. utasítás feldolgozása

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 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 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 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 Pipeline összefoglalás egyszerű elv bonyolult, „trükkös” megvalósítás sokat segíthet a fordítóprogram

20 Cache „gyorsító” tár

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 „Tipikus” cache 64 Mbyte memóriához 64 Kbyte cache 20x gyorsabb 1/1000 méret 98% cache találat

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

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 Memória „leképzése” a cache-ra Teljesen asszociatív cache Közvetlen leképzésű cache Csoport asszociatív cache

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

38 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

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