RISC - PowerPoint PPT Presentation

About This Presentation
Title:

RISC

Description:

RISC CISC RISC: Reduced Instruction Set Computer cs kkentett utas t sk szlet sz m t g p CISC: Complex Instruction Set Computer sszetett ... – PowerPoint PPT presentation

Number of Views:155
Avg rating:3.0/5.0
Slides: 75
Provided by: usz76
Category:
Tags: risc | cray | seymour

less

Transcript and Presenter's Notes

Title: RISC


1
  • RISC CISC
  • RISC Reduced Instruction Set Computercsökkentett
    utasításkészletu számítógép
  • CISC Complex Instruction Set Computerösszetett
    utasításkészletu számítógép
  • A 70-es években nagyon sok bonyolult utasítást
    építettek a gépekbe, mert a ROM-oknak a RAM-okhoz
    viszonyított nagy sebessége a mikroprogram gyors
    lefutását a bonyolult utasítás viszonylag gyors
    végrehajtását eredményezte ? CISC. Nem volt
    ritka a 200-300 utasítással rendelkezo gép.

2
  • A RISC kialakulása
  • IBM-801 (John Cocke) Seymour Cray ötletei alapján
    nagy teljesítményu miniszámítógép. Nem került
    piacra, csak 1982-ben publikálták.
  • Berkeley 1980 (David Petterson, Carlo
    Séquin)RISC I, késobb RISC II ? SPARC
  • Stanford 1981 (John Hennessy) MIPS
  • Elv Csak olyan utasítások legyenek, amelyek az
    adatút egyszeri bejárásával végrehajthatók.
  • Tipikusan kb. 50 utasításuk van.
  • Ha egy CICS utasítás 4-5 RISC utasítással
    helyettesíthero, és a RISC 10-szer gyorsabb,
    akkor is a RISC nyer.

3
  • Idoközben a RAM-ok sebessége csaknem elérte a
    ROM-ok sebességét, ez is a RISC mellett szól.
  • K O M P A T I B I L I T Á S
  • Az Intel túlélte a 486-os processzortól
    kezdodoen minden processzora tartalmaz RISC
    magot, amely a legegyszerubb, és egyben
    leggyakoribb utasításokat egyetlen adatút ciklus
    alatt hajtja végre, csak a többit a ritkábban
    elofordulókat interpretálja a CISC elvnek
    megfeleloen ? versenyképes maradt.

4
  • Korszeru számítógépek (RISC) tervezési elvei
  • Minden utasítást közvetlenül a hardver hajtson
    végre
  • Maximalizálni az utasítások kiadásának ütemét
  • Az utasítások könnyen dekódolhatók legyenek
  • Csak a betölto és tároló utasítások hivatkozzanak
    a memóriára
  • ? Sok (legalább 32) regiszter kell

5
  • Párhuzamosítás utasítás vagy processzor szintu.
  • Utasítás szintu szállítószalag, csovezeték
    (pipelining).
  • Kezdetben
  • Utasítás beolvasás Utasítás végrehajtás
  • Minden fázist külön hardver hajt végre (2.4.
    ábra), ezek párhuzamosan muködhetnek (szerelo
    csarnok).

S1 S2 S3
S4 S5
6
A végrehajtás alatt lévo utasítás sorszáma A végrehajtás alatt lévo utasítás sorszáma A végrehajtás alatt lévo utasítás sorszáma A végrehajtás alatt lévo utasítás sorszáma A végrehajtás alatt lévo utasítás sorszáma A végrehajtás alatt lévo utasítás sorszáma A végrehajtás alatt lévo utasítás sorszáma A végrehajtás alatt lévo utasítás sorszáma A végrehajtás alatt lévo utasítás sorszáma A végrehajtás alatt lévo utasítás sorszáma
S1 1 2 3 4 5 6 7 8 9
S2 1 2 3 4 5 6 7 8
S3 1 2 3 4 5 6 7
S4 1 2 3 4 5 6
S5 1 2 3 4 5
ido 1 2 3 4 5 6 7 8 9
  • 2.4. ábra
  • Késleltetés (latency) mennyi ideig tart egy
    utasítás.
  • Áteresztoképesség (processor bandwidth) hány
    MIPS (Million Instruction Per Second) a sebesség.

7
  • Több szállítószalagos CPU
  • Két szállítószalag (2.5. ábra)
  • Két végrehajtó egység, de közös regiszterek,
  • A két szállítószalag lehet különbözo is
    (Pentium) fo ez többet tud, elsobbséget
    élvez és mellék
  • Bonyolult szabályok a párhuzamos
    végrehajthatóságra (fordítók vagy hardver).

S1 S2 S3
S4 S5
8
  • Szuperskaláris processzor 5 funkcionális
    egységgel

S1 S2 S3
S5
2.6. ábra
9
  • Processzor szintu párhuzamosítás
  • Tömb (array) processzor (2.7. ábra)

sok azonos processzor (ILLIAC IV (4)88,
1972.), mindnek saját memóriája. Vezérlo
processzor adja ki a feladatot. Mindegyik
processzor ugyanazt csinálja, de a saját adatain.
Már nem divatos (drága, nehéz kihasználni).
Vezérlo egység
Teríti az utasításokat
processzor
memória
88-as processzor/memória rács
10
  • Vektor processzorok
  • Vektor regisztereket használnak.
  • A vektor regiszter több hagyományos regiszterbol
    áll. Gyors szállítószalag gondoskodik a
    regiszterek feltöltésérol, szintén gyors
    szállítószalag továbbítja a regiszterek tartamát
    az aritmetikai egységbe, pl. a vektor regiszterek
    összeadásához. Az eredmények szintén vektor
    regiszterbe kerülnek.
  • Jól kombinálhatók hagyományos processzorokkal.

11
  • Multiprocesszorok
  • A közös memória megkönnyíti a feladat
    megosztását.
  • Csak közös memória.
  • Nagyon terheli a memória sínt.
  • Lokális memória is van.
  • Sok (gt64) processzoros rendszert nehéz építeni a
    közös memória miatt.

2.8. ábra
12
  • Multiszámítógépek Nincs közös memóriaA CPU-k
    üzenetekkel tartják egymással a
    kapcsolatot.Néhány µs üzenet ido. 2-3
    dimenziós hálók, fák, gyuruk. Közel 10 000-es
    rendszer is van.

13
  • A mikroarchitektúra szint tervezése
  • Mic-1 olcsó, de lassú. Sebesség növelés
  • rövidebb óraciklus,
  • kevesebb óraciklus az utasítások végrehajtásához,
  • az utasítások végrehajtásának átlapolása.
  • B sín 9 regiszterét 4 bittel címeztük dekódolóra
    van szükség, növeli az adatút ciklus idejét!
    (4.6. ábra)
  • Úthossz (path length, a szükséges ciklusok száma)
    rövidítése goto Main1 sokszor megspórolható,
    jobb microprogram vagy pl. PC növelésére külön
    áramkör (ez legtöbbször fetch-csel együtt
    történik).

14
  • goto Main1 sokszor megspórolható (4.23-24. ábra)
  • 0x57 POP A verem legfelso szavát eldobja.

pop1 MARSPSP-1 rd //2. szó címe, olvas
pop2 // vár
pop3 TOSMDR goto main1 //TOSa verem teteje
main1 PCPC1fetchgoto(MBR) //következo ut.
Új változat Új változat
pop1 MARSPSP-1 rd
pop2 PCPC1 fetch //következo ut. olvasása
pop3 TOSMDR fetch goto(MBR)
15
memória
Csín
4.29. ábra Háromsínes architektúra
4.1. ábra Mic-1
16
  • Három sínes architektúra
  • Sok regiszter csatlakozhat az A sínhez, nemcsak
    H (4.1., 4.29. ábra).
  • A muködése Minden IJVM utasítás értelmezése
    akkor fejezodik be, amikor a fetch goto(MBR)
    végrehajtásra kerül. Ilyenkor MBR-nek a következo
    IJVM utasítás kódját kell tartalmaznia, és
    megkezdodik ennek az utasításnak az értelmezése.
    Ez a fetch kezdeményezi a program következo
    bájtjának olvasását. Korábbi mikroutasítás ezt
    nem kezdeményezheti, mert akkor MBR tartalmát
    fölülírná a goto(MBR) végrehajtása elott. A
    következo IJVM értelmezésének elso mikroutasítása
    nem használhatja MBR-t az adatúton, mert
    ilyenkor MBR-ben még az IJVM utasítás kódja
    található.

17
  • A három sínes architektúra elonye a két sínes
    architektúrával szemben pl. iload -ban nem kell
    H LV (4.25-26. ábra).
  • ILOAD varnum // lokális változó a verembe
  • varnum a lokális változó 8 bites indexe.

18
  • Mic-1 kód (4.25. ábra)

iload1 H LV
iload2 MAR MBRU H rd
iload3 MAR SP SP 1
iload4 PC PC 1 fetch wr
iload5 TOS MDR goto main1
main1 PC PC 1 fetch goto(MBR)
Három sínes kód(4.26. ábra) Három sínes kód(4.26. ábra)
iload1 MAR MBRU LV rd
iload2 MAR SP SP 1
iload3 PC PC 1 fetch wr
iload4 TOS MDR
iload5 PC PC 1 fetch goto(MBR)
19
  • Hibás a könyvben lévo kód (4.26. ábra), mert még
    nem áll rendelkezésre MBRU értéke, mert az elozo
    utasítás utolsó mikroutasításában volt az a
    fetch, amely az ILOAD operandusát olvassa.

Három sínes kód(4.26. ábra) Három sínes kód(4.26. ábra)
iload1 MAR MBRU LV rd
iload2 MAR SP SP 1
iload3 PC PC 1 fetch wr
iload4 TOS MDR
iload5 PC PC 1 fetch goto(MBR)
20
  • Mic-1 kód (4.25. ábra)

iload1 H LV
iload2 MAR MBRU H rd
iload3 MAR SP SP 1
iload4 PC PC 1 fetch wr
iload5 TOS MDR goto main1
main1 PC PC 1 fetch goto(MBR)
Három sínes kód(4.26. ábra) Három sínes kód(4.26. ábra)
iload1 PC PC 1 fetch
iload2 MAR MBRU LV rd
iload3 MAR SP SP 1
iload4 TOS MDR wr
iload5 PC PC 1 fetch goto(MBR)
21
  • A PC-vel kapcsolatos teendok
  • PC növelése 1-gyel,
  • fetch,
  • 2 bájtos operandus olvasás a memóriából.
  • ALU-nál egyszerubb áramkörrel megvalósíthatók.
  • Utasításbetölto egység (IFU Instruction Fetch
    Unit)
  • értelmezhet minden kódot, hogy kell-e operandus,
  • de egyszerubb, ha a kódtól függetlenül elokészíti
    a következo 8 és 16 bites részt (4.27. ábra).

22
  • Utasításbetölto egység (IFU Instruction Fetch
    Unit)

4.27. ábra
Memória felé
23
  • Véges állapotú gép (FSM Finite State Machine,
    4.28. ábra) 0, , 6 állapotok, élek események.

24
  • Mic-2 (4.29. ábra)
  • Main1 fölösleges,
  • PC növeléséhez nem kell az ALU,
  • a 8 és 16 bites operandusokat IFU adja.

25
  • Mic-2 (4.29. ábra)
  • Több hardver kell az A sín címzése és IFU miatt,
    de kevesebb mikroutasítás kell, pl. WIDE
    ILOAD-hoz az eddigi 9 helyett csak 4 (v.ö. 4.17.
    ábra). WIDE ILOAD varnum //beteszi a 16 bites
    varnum indexu lokális változót a verembe

wide1 goto (MBR1 OR 0x100)
w_iload1 MARLVMBR2U rd goto iload2
iload1 MARLVMBR1U rd // változó olvasása
iload2 MARSPSP1 // vermelés elokészítése
iload3 TOSMDR wr goto (MBR1)
26
  • Mic-2 adatútja és IFU kapcsolata
  • Ha PC értéket kap a C sínrol, azt IMAR is
    megkapja. Ilyenkor a mikroprogramnak várnia kell
    a lépteto regiszter, MBR1 és MBR2 feltöltésére.
  • IMAR módosul, amint a lépteto regiszterbe írta a
    következo 4 bájtot, de PC csak akkor, ha MBR1vagy
    MBR2 olvasása történik.

goto1 HPC-1 // IFU már csinált PCPC1-et
goto2 PCHMBR2 // itt folytatódik a program
goto3 // IFU még nincs kész, várni kell!
goto4 goto (MBR1) // a folytatás 1. utasítása
27
  • A IFLT offset utasítás (Mic-2)
  • Kivesz egy szót a verembol és ugrik, ha negatív.

iflt1 MARSPSP-1 rd // 2. szó a verembol
iflt2 OPCTOS // TOS mentése
iflt3 TOSMDR // TOS a verem új teteje
iflt4 NOPC if(N) goto T else goto F //elágazás
T HPC-1 goto goto2 // igaz ág
F HMBR2 // hamis ág, eldobja offsetet
F2 goto (MBR1) // a folytatás 1. utasítása
28
  • A Mic-2 adatút idejének összetevoi (4.29.
    ábra)
  • az A és B sínek feltöltése a
    regiszterekbol,
  • az ALU és a lépteto munkája,
  • az eredmények tárolása a C sínrol.

29
  • Csovonalas terv Mic-3 (4.31. ábra)
  • A, B és C tároló.
  • 3 mikrolépés
  • A, B feltöltése,
  • C feltöltése az ALU és a lépteto eredménye
    alapján,
  • C tárolása regiszterbe.
  • A 3 mikrolépés egyidejuleg
    (párhuzamosan) végrehajtható!

30
  • Pl. a verem két felso szavának cseréje Mic-3-on
    (4.33. ábra)

swap1 swap2 swap3 swap4 swap5 swap6
cy MAR SP-1rd MAR SP HMDR wr MDR TOS MAR SP-1wr TOSH goto(MBR1)
1 BSP
2 CB-1 BSP
3 MARCrd CB Várni kell!
4 MDRmem MARC Várni kell!
5 BMDR
6 CB BTOS
7 HCwr CB BSP
8 memMDR MDRC CB-1 BH
9 MARCwr CB
10 memMDR TOSC
11 goto(MBR1)
Valódi függoség RAW Read After Write! Elakadás
eldugaszolja a csovezetéket!
31
  • Hétszakaszú csovezeték Mic-4 (4.35. ábra)
  • Az IFU a bejövo bájtfolyamot a dekódolóba küldi.
  1. A dekódolóban van egy táblázat, amely minden
    utasításnak tudja a hosszát. A WIDE prefixumot
    felismeri, pl. WIDE ILOAD -ot átalakítja
    WIDE_ILOAD -dá pl. 9 bites utasítás kód.El
    tudja különíteni az utasítás kódokat és az
    operandusokat. Az operandusokat a lépteto
    regiszterbe teszi, onnan tölti fel MBR1-et és
    MBR2-t.

IJVM hossz
m e m ó r i a
Lépteto regiszter
MBR1 MBR2
32
A dekódoló egy másik táblázata megmutatja, hogy
a sorba állító egységben lévo ROM melyik címén
kezdodnek a kódhoz tartozó mikromuveletek. Nincs
NEXT_ADDRESS és JAM mezo. Nincs feltétlen ugrást
végzo mikromuvelet. Az egyes IJVM utasításokat
megvalósító mikromuveletek egymás után vannak a
ROM-ban, az utolsónál a Final be van állítva.
33
  1. A sorba állító egység a ROM-ból a RAM-ba másolja
    a mikromuveleteket, amint van hely a RAM-ban. A
    kódhoz tartozó utolsó mikromuvelet Final bitje
    jelzi, hogy nincs több átmásolandó
    mikromuvelet.Ha a mikromuveletek között nem volt
    olyan, amelyik Goto bitje be volt állítva, akkor
    nyugtázó jelet küld a dekódolónak, hogy
    folytathatja a munkáját.

34
  • Néhány IJVM utasítás (pl. IFLT) elágazást kíván.
    A feltételes mikroutasítások speciális
    utasítások, ezeket külön mikromuveletként kell
    megadni. Tartalmazzák a JAM biteket és a Goto
    bitet. A Goto bit arra szolgál, hogy a sorba
    állító egység le tudja állítani további
    utasítások dekódolását. Mindaddig nem lehet
    tudni, hogy melyik utasítás következik a
    feltételes utasítás után, amíg a feltétel ki nem
    értékelodött.
  • Ha létrejön az elágazás, akkor a csovezeték nem
    folytatódhat. Tiszta lapot kell csinálni
    IFU-ban, a dekódolóban és a sorba állító
    egységben, majd az offset-nek megfelelo címtol
    folytatódik a betöltés.
  • Ha az ugrás feltétele nem teljesül, akkor a
    dekódoló megkapja a nyugtázó jelet, és a
    következo utasítással folytatódhat a dekódolás.

35
  • Az adatutat 4 független MIR vezérli. Minden
    óraciklus kezdetekor MIRi föltöltodik a fölötte
    lévobol, MIR1 pedig a RAM-ból.
  • MIR1 az A, B regiszterek feltöltését,
  • MIR2 az ALU és a lépteto muködését,
  • MIR3 az eredmény tárolását,
  • MIR4 pedig a memória muveleteket vezérli.

memória
36
  • Hétszakaszú csovezeték Mic-4 (4.35. ábra)

m e m ó r i a
Lépteto regiszter
MBR1 MBR2
37
  • IFLT offset programozása Mic-4-en

iflt1 iflt2 iflt3 iflt4 (Final1, Goto1) iflt4 (Final1, Goto1)
cy MARSP SP-1 rd OPC TOS TOSMDR NOPC if(N) GOTO offset NOPC if(N) GOTO offset
1 BSP
2 CB-1 BTOS
3 MARSPC rd CB Várni kell!
4 MDRmem OPCC Várni kell!
5 BMDR
6 CB BOPC BOPC
7 TOSC CB CB
8 N PCPC-1MBR2 tiszta lap, majd a PC által mutatott címtol utasítás betöltés, N MBR2 t eldobni, folytatódhat a dekódolás
A 8. ciklus feladata túl bonyolult! MBR2 - 1
elore kiszámítható.
38
  • IFLT offset programozása Mic-4-en

iflt1 iflt2 iflt3 iflt4 iflt5 (Final1, Goto1) iflt5 (Final1, Goto1)
cy MARSP SP-1 rd OPC TOS HMBR2-1 TOSMDR NOPC if(N) GOTO offset NOPC if(N) GOTO offset
1 BSP
2 CB-1 BTOS
3 MARSPC rd CB BMBR2
4 MDRmem OPCC CB-1 Várni kell!
5 HC BMDR
6 CB BOPC BOPC
7 TOSC CB CB
8 N PCPCH tiszta lap, majd a PC által mutatott címtol utasítás betöltés, N folytatódhat a dekódolás
Az IJVM feltétlen ugrását a dekódoló is
feldolgozhatja.
39
  • Elágazás jövendölés (4.40. ábra)
  • Legkorábban a dekódoló veheti észre, hogy ugró
    utasítást kell végrehajtani, de addigra a
    következo utasítás már a csovezetékben van! Pl.

Program Címke Gépi utasítás Megjegyzés
if(i0) CMP i,0 összehasonlítás
BNE else feltételes ugrás
k1 then MOV k,1 k1
else BR next feltétlen ugrás
k2 else MOV k,2 k2
next
A BR next utasítással is probléma van!
40
  • Elágazás jövendölés (4.40. ábra)
  • Eltolás rés (delay slot) Az ugró utasítás utáni
    pozíció. Az ugró utasítás végrehajtásakor ez az
    utasítás már a csovezetékben van!
  • Megoldási lehetoségek
  • Pentium 4 bonyolult hardver gondoskodik a
    csovezeték helyreállításáról
  • UltraSPARC III az eltolás résben lévo utasítás
    végrehajtásra kerül(!). A felhasználóra
    (fordítóra) bízza a probléma megoldását, a
    legrosszabb esetben NOP utasítást kell tenni az
    ugró utasítás után.

41
  • Feltételes elágazás
  • Sok gép megjövendöli, hogy egy ugrást végre kell
    hajtani vagy sem.
  • Egy triviális jóslás
  • a visszafelé irányulót végre kell hajtani (ilyen
    van a ciklusok végén),
  • az elore irányulót nem (jobb, mint a semmi).
  • Feltételes elágazás esetén a gép tovább futhat a
    jövendölt ágon,
  • amíg nem ír regiszterbe,
  • csak firkáló regiszterekbe írhat.
  • Ha a jóslat bejött, akkor minden rendben, ha nem,
    akkor sincs baj.
  • Több feltételes elágazás egymás után!

42
  • Dinamikus elágazás jövendölés
  • Elágazás elozmények tábla (4.41. ábra), hasonló
    jellegu, mint a gyorsító tár. Lehet több utas is!
  • Egy jövendölo bit mi volt legutóbb,

43
  • Két jövendölo bit mi várható és mi volt
    legutóbb.

Ha egy belso ciklus újra indul, akkor az
várható, hogy a ciklus végén vissza kell ugrani,
pedig legutóbb nem kellett.
44
  • A várható bitet csak akkor írja át, ha egymás
    után kétszer téves volt a jóslat (4.42. ábra).

45
  • A táblázat a legutóbbi célcímet is
    tartalmazhatja.

Célcím
Ha az a jövendölés, hogy lesz elágazás, akkor
arra számít, hogy a legutóbb tárolt célcímre kell
ugrani (ezt persze ellenorizni kell).
46
  • Figyeljük, hogy az utolsó k feltételes elágazást
    végre kellett-e hajtani. Ez egy k bites számot
    eredményez, ezt az elágazási elozmények blokkos
    regiszterében tároljuk. Ha a k bites szám
    megegyezik a táblázat valamely bejegyzésének a
    kulcsával (találat), akkor az ott talált
    jövendölést használja.

47
  • Statikus elágazás jövendölés
  • A feltételes utasításoknak néha olyan változata
    is van (pl. UltraSPARC III), mely tartalmaz bitet
    a jóslásra. A fordító ezt a bitet valahogy
    beállítja.
  • Olyankor is statikus elágazás jövendölés
    történik, ha a processzor arra számít, hogy a
    visszafelé ugrások bekövetkeznek, az elore
    ugrások nem.

48
  • Szuperskaláris architektúrák (2. 6. ábra)

S1 S2 S3
S5
Szuperskaláris processzor 5 funkcionális egységgel
49
  • Szuperskaláris architektúra esetén a dekódoló
    egység az utasításokat mikroutasításokra
    darabolhatja. Legegyszerubb, ha a mikroutasítások
    végrehajtási sorrendje megegyezik a betöltés
    sorrendjével, de ez nem mindig optimális.
  • FüggoségekHa egy utasítás írni/olvasni akar egy
    regisztert, akkor meg kell várja azon korábbi
    utasítások befejezését, amelyek ezt a regisztert
    írni/olvasni akarták!

50
  • Függoségek
  • Egy utasítás nem hajtható végre az alábbi
    esetekben
  • RAW (valódi) függoség (Read After Write) Onnan
    akarunk olvasni (operandus), ahova még nem
    fejezodött be egy korábbi írás.
  • WAR függoség (Write After Read)Olyan
    regiszterbe szeretnénk írni az eredményt,
    ahonnan még nem fejezodött be egy korábbi
    olvasás.
  • WAW függoség (Write After Write) Olyan
    regiszterbe szeretnénk írni az eredményt, ahova
    még nem fejezodött be egy korábbi írás. Ne
    boruljon föl az írások sorrendje!

51
  • Függoségek nem olvashatjuk, aminek az írása még
    nem fejezodött be (RAW), és nem írhatjuk felül,
    amit korábbi utasítás olvasni (WAR) vagy írni
    akar (WAW). Regiszterenként egy-egy számláló,
    hogy hányszor használják a végrehajtás alatt lévo
    mikroutasítások a regisztert olvasásra illetve
    írásra.
  • Pl. Tegyük fel, hogy az n. ciklusban dekódolt
    utasítás végrehajtása legkorábban az (n1).
    ciklusban kezdodhet, és a következoben fejezodik
    be, a szorzás csak két ciklussal késobb. A
    dekódoló ciklusonként két utasítást tud kiosztani
    (a valóságban 4-6 utasítást).
  • Az utasítások indítása és befejezése az eredeti
    sorrendben történjék!
  • C ciklus, Iindítás, Bbefejezés (4.43. ábra).

52
Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek
C Dekódolt I B 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
1 1 2 R3R0R1 R4R0R2 1 2 1 2 1 1 1 1 1 1
2 3 4 R5R0R1 R6R1R4 3 - 3 3 2 2 1 1 1 1 1 1 1 1
3 3 2 1 1 1 1
4 1 2 3 2 1 1 1 1 1 1 1
5 5 R7R1R2 4 5 1 2 1 1 1 1 1 1
6 6 R1R0-R2 - 2 1 1 1 1
7 4 1 1 1
8 5
9 7 R3R3R1 6 - 1 1 1 1 1 1 0 0
10 1 1 1 0
11 6
12 8 R1R4R4 7 - 1 1 1 1 1 1
RAW R4 miatt
I2 csak I1 után fejezodhet be
Csak a ciklus végére történik meg a visszaírás
R4-be
WAR R1 miatt
RAW R1 miatt
WAR R1 miatt
megjegyzés
hiba
53
Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek
C Dekódolt I B 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
9 7 R3R3R1 6 - 1 1 1 1 1 1 0 0
10 1 1 1 0
11 6
12 8 R1R4R4 7 - 1 1 1 1 1 1
13 1 1 1
14 1 1 1
15 7
16 8 2 1
17 2 1
18 8
RAW R1 miatt
WAR R1 miatt
54
  • Néhány gép bizonyos utasításokat átugorva
    függoben hagy, elobb késobbi utasításokat hajt
    végre, és késobb tér vissza a függoben hagyott
    utasítások végrehajtására (4.44. ábra).

55
  • Sorrendtol eltéro végrehajtás (kezdés és
    befejezés) esetén (4.44. ábra)

Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek
C Dekódolt I B 0 1 2 3 4 5 6 7 1 2 0 1 2 3 4 5 6 7 1 2
1 1 2 R3R0R1 R4R0R2 1 2 1 2 1 1 1 1 1 1
2 3 4 R5R0R1 R6R1R4 3 - 3 3 2 2 1 1 0 1 1 1 1 1 1 0
3 5 6 R7R1R2 R1(S1)R0-R2 5 6 2 3 4 3 3 3 3 2 3 2 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1
RAW
I5 megelozi I4-et
WAR R1 helyett S1
I4 nem indulhat RAW függoség (R4) I2 miatt, de
adminisztrációt igényel, hogy melyik
regisztereket használja (függoséget okozhat az
átugrott utasítás is!). I5 megelozheti a I4
et. I6 R1R0-R2 helyett S1R0-R2. Az S1 segéd
regisztert használja R1 helyett (regiszter
átnevezés). Az eredményt késobb átmásolhatja
R1 -be, ha R1 fölszabadult.
56
Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek
C Dekódolt I B 0 1 2 3 4 5 6 7 1 2 0 1 2 3 4 5 6 7 1 2
1 1 2 R3R0R1 R4R0R2 1 2 1 2 1 1 1 1 1 1
2 3 4 R5R0R1 R6R1R4 3 - 3 3 2 2 1 1 0 1 1 1 1 1 1 0
3 5 6 R7R1R2 R1(S1)R0-R2 5 6 2 3 4 3 3 3 3 2 3 2 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1
4 7 8 R3R3R1(S1) R1(S2)R4R4 4 - 8 1 3 3 3 3 2 1 4 4 4 3 2 2 2 2 2 2 0 0 0 0 1 1 3 3 3 0000 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
RAW
I5 megelozi I4-et
WAR R1 helyett S1
  • I6 eredménye R1 helyett S1-ben képzodik
    (regiszter átnevezés)! A késobbi utasításokban
    R1 helyett S1-et kell használni!
  • I7 RAW és WAW függoség R3 miatt (I1), RAW
    függoség R1 (S1) miatt (I6), regiszter
    átnevezés miatt R3R3R1 helyett R3R3S1
  • I8 WAR függoség R1-et I1, I3 olvassa, S1-be I7
    ír (WAW) ezért R1R4R4 helyett S2R4R4
    (mostantól R1 helyett S2 kell).

57
Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek
C Dekódolt I B 0 1 2 3 4 5 6 7 1 2 0 1 2 3 4 5 6 7 1 2
1 1 2 R3R0R1 R4R0R2 1 2 1 2 1 1 1 1 1 1
2 3 4 R5R0R1 R6R1R4 3 - 3 3 2 2 1 1 0 1 1 1 1 1 1 0
3 5 6 R7R1R2 R1(S1)R0-R2 5 6 2 3 4 3 3 3 3 2 3 2 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1
4 7 8 R3R3R1(S1) R1(S2)R4R4 4 - 8 1 3 3 3 3 2 1 4 4 4 3 2 2 2 2 2 2 0 0 0 0 1 1 3 3 3 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
5 6 2 1 0 3 1 0 0 1 1 0 1
6 7 4 5 8 2 1 1 1 1 1 1 1 3 2 2 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1
7 (R1S2) 1 1 1
8 1 1 1
9 7
RAW
I5 megelozi I4-et
WAR R1 helyett S1
RAW
WAR
58
Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Olvasott regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek Írt regiszterek
6 7 4 5 8 2 1 1 1 1 1 1 1 3 2 2 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1
7 (R1S2) 1 1 1
8 1 1 1
9 7
  • I8 eredménye a 7. ciklusban átkerülhet S2 -bol
    R1-be, de jobb, ha a hardver nyilvántartja,
    hogy hol van.
  • A modern CPU-k gyakran titkos regiszterek
    tucatjait használják regiszter átnevezésre, hogy
    ezáltal kiküszöböljék a WAR és WAW függoségeket.

59
  • Feltételezett végrehajtás (4.45. ábra)

evensum 0 oddsum 0 i 0
evensum 0 oddsum 0 i 0 while(i lt limit)
k i i i if(((i/2)2) i)
evensum evensum k else oddsum oddsum
k i i 1
i gt limit
while(i lt limit)
k i i i if(((i/2)2) i)
igaz
hamis
evensum evensum k
oddsum oddsum k
i i 1
60
  • Feltételezett végrehajtás (4.45. ábra)
  • Speculative Execution
  • Alap blokk (basic block) lineáris kód sorozat.
    Sokszor rövid, nincs elegendo párhuzamosság, hogy
    hatékonyan kihasználjuk.
  • Emelés egy utasítás elore hozatala egy
    elágazáson keresztül (lassú muveletek esetén
    nyerhetünk vele). Pl. evensum és oddsum
    regiszterbe töltheto az elágazás elott. Az egyik
    LOAD természetesen fölösleges.
  • Ha valamit nem biztos, hogy meg kell csinálni, de
    nincs más dolga a gépnek, akkor megteheti, de
    csak firkáló regiszterekbe írhat. Ha késobb
    kiderül, hogy kell, akkor átírja az eredményeket
    a valódi regiszterekbe, ha nem kell, elfelejti.

61
  • Feltételezett végrehajtás (Speculative Execution)
  • Mellékhatások
  • fölösleges gyorsító sor csere, SPECULATIVE_LOAD
  • csapda (pl. x0 esetén if(xgt0) zy/x), mérgezés
    bit.

62
  • Pentium 4 (2000. november)
  • Felülrol kompatibilis az I8088, , Pentium
    III-mal.
  • 29.000, , 42 ? 55 M tranzisztor, 1,5 ? 3,2 GHz,
    63-82W, 478 láb (3. 44. ábra), 32 bites gép, 64
    bites adat sín.
  • NetBurst architektúra. 2 fixpontos ALU ?
    többszálúság (hyperthreding) 5 többlet a
    lapkán két CPU.
  • Mindkét ALU kétszeres órajel sebességgel fut

63
  • Többszálúság (hyperthreding, 8.7. ábra)
  • Többszörözött regiszter készlet esetén
    valósítható meg némi szervezo hardver
    hozzáadásával.

(a) A1 A2 A3 A4 A5 A6 A7 A8

(b) B1 B2 B3 B4 B5 B6 B7 B8

(c) C1 C2 C3 C4 C5 C6 C7 C8

A1 B1 C1 A2 B2 C2 A3 B3 C3 A4 B4 C4
Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ? Óraciklus ?
Az (a), (b) és (c) processzus külön futtatva az
üres téglalapoknál várakozni kényszerül a
memóriához fordulások miatt.
64
  • Pentium 4
  • Gépi utasítások ? RISC szeru mikroutasítások,
    több mikroutasítás futhat egyszerre
    szuperskaláris gép, megengedi a sorrenden kívüli
    végrehajtást is.
  • 2-3 szintu belso gyorsító tár.
  • L1 8 KB utasítás nyomköveto tár akár 12000
    dekódolt mikroutasítás tárolására 16 KB adat.
  • L2 256 KB 1 MB, egyesített, 8 utas halmaz
    kezelésu, visszaíró, 128 bájtos gyorsító sor.
    Elore betölto egység.
  • Az Extrem Edition-ban 2 MB (közös) L3 is van.
  • Multiprocesszoros rendszerekhez szimatolás -
    snoop.

65
  • Két külso szinkron sín (memória és PCI) 3. 52.
    ábra.

66
  • Feladatok
  • Mit jelent a RISC rövidítés?
  • Mit jelent a CISC rövidítés?
  • Mi segítette elo a CISC gépek kialakulását?
  • Miért elonyös a RISC architektúra?
  • Miért nem tért át az Intel RISC processzorok
    gyártására?
  • Hogyan alkalmazza az Intel a RISC elveket?
  • Melyek a modern számítógép tervezés legfontosabb
    elvei?
  • Miért van szükség sok regiszterre a RISC gépeken?

67
  • Feladatok
  • Milyen párhuzamosítási lehetoségeket ismer?
  • Mi az utasítás szintu párhuzamosítás?
  • Szemléltesse az utasítás szintu párhuzamosságot!
  • Mit jelent a csovezeték (pipelining)?
  • Mi a késleltetés (latency)?
  • Mi az átereszto képesség?
  • A késleltetés vagy az átereszto képesség a
    fontosabb a gép teljesítménye szempontjából?
  • Mi az elonye/ hátránya a több szállítószalagos
    CPU-nak?
  • Mi a szuperskaláris architektúra lényege?

68
  • Feladatok
  • Hogy muködik a tömb (array) processzor?
  • Mi a tömb (array) processzor elonye/hátránya?
  • Hogy muködik a vektor processzor?
  • Mi a vektor processzor elonye/hátránya?
  • Mi a multiprocesszorok lényege?
  • Mi a szerepe a közös/helyi memóriák szerepe a
    multiprocesszoros rendszerekben?
  • Miért nehéz sok processzoros rendszert építeni?
  • Mi a lényege multiszámítógépeknek?
  • Hogy tartják a kapcsolatot egymással a
    multiszámítógépek CPU-i?

69
  • Feladatok
  • Mi az úthossz?
  • Milyen lehetoségek vannak a Mic-1 gyorsítására?
  • Mi az elonye a három sínes architektúrának a
    Mic-1-gyel szemben?
  • Sorolja fel a Mic-1 és Mic-2 közötti
    különbségeket! Miért eredményeznek ezek
    gyorsítást?
  • Mi az utasítás betölto egység (IFU) feladata?
  • Milyen részei vannak az IFU-nak?
  • Mi az IMAR szerepe az IFU-ban?
  • Írja le az IMAR és a PC regiszter kapcsolatát?
  • Hogy muködik az IFU?

70
  • Feladatok
  • Hogy ábrázolható véges állapotú géppel (FSM) az
    IFU muködése?
  • Mi a különbség Mic-2 és Mic-3 között? Miért
    eredményez ez gyorsítást?
  • A SWAP utasítás (a verem két felso szavának
    cseréje) Mic-3-on négy mikroutasítással
    megoldható tíz mikrolépésben. Hogyan? A megoldás
    nem viheto át Mic-2-re. Miért?A feladat nehéz!
    Élesen ki kell használni az adatút szakaszainak
    idozítését. Ezt ugyan nem tárgyaltuk, de
    kikövetkeztetheto abból, hogy az egyes szakaszok
    egyidejuleg muködhetnek.

71
  • Feladatok
  • Milyen szakaszai vannak a Mic-4 csovezetékének?
  • Mi a feladata a dekódolónak?
  • Mi a feladata a sorba állító egységnek?
  • Mire szolgál a Final bit?
  • Mire szolgál a Goto bit?
  • Hogy történik Mic-4-en adatút vezérlése?
  • Miért gyorsabb a Mic-4, mint a Mic-3?
  • Milyen speciális feladatokat kell megoldani Mic-4
    esetén a feltételes elágazásnál?

72
  • Feladatok
  • Mi az eltolási rés (delay slot)?
  • Hogy muködik az eltolási rés szempontjából a
    Pentium és az UltraSPARC?
  • Mit nevezünk elágazás jövendölésnek?
  • Milyen dinamikus elágazás jövendöléseket ismer?
  • Milyen statikus elágazás jövendöléseket ismer?
  • Mit nevezünk függoségnek?
  • Milyen függoségeket ismer?
  • Mely függoségek oldhatók fel, és hogyan?

73
  • Feladatok
  • Mi az elonye a sorrendtol eltéro végrehajtásnak?
  • Mire szolgál a regiszter átnevezés?
  • Mi a feltételezett végrehajtás?
  • Mit nevezünk emelésnek?
  • Mikor elonyös az emelés?
  • Milyen mellékhatásai lehetnek a feltételezett
    végrehajtásnak?
  • Mi a SPECULATIVE_LOAD lényege?
  • Mi a mérgezés bit?

74
  • Feladatok
  • Mi a többszálúság lényege, haszna?
  • Mik a többszálúság megvalósításának feltételei?
  • Hogy érvényesül a RISC elv a Pentium 4 esetén?
  • Mi a szuperskaláris gép lényege?
  • Mit jelent a sorrenden kívüli végrehajtás?
  • Milyen gyorsítótárakat használ a Pentium 4?
  • Jellemezze a Pentium 4 L2 gyorsítótárát!
  • Mire szolgál az elore betölto?
  • Mit jelent a szimatolás?
Write a Comment
User Comments (0)
About PowerShow.com