RISC CISC RISC Reduced Instruction Set Computer cskkentett

  • Slides: 74
Download presentation
RISC – CISC RISC: Reduced Instruction Set Computer csökkentett utasításkészletű számítógép CISC: Complex Instruction

RISC – CISC RISC: Reduced Instruction Set Computer csökkentett utasításkészletű számítógép CISC: Complex Instruction Set Computer összetett utasításkészletű 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 RAMokhoz 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 rendelkező gép. Máté: Architektúrák 7. előadás 1

A RISC kialakulása IBM-801 (John Cocke) Seymour Cray ötletei alapján nagy teljesítményű miniszámítógép. Nem

A RISC kialakulása IBM-801 (John Cocke) Seymour Cray ötletei alapján nagy teljesítményű 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ésőbb 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ítherő, és a RISC 10 -szer gyorsabb, akkor is a RISC nyer. Máté: Architektúrák 7. előadás 2

Időközben a RAM-ok sebessége csaknem elérte a ROM-ok sebességét, ez is a RISC mellett

Időközben a RAM-ok sebessége csaknem elérte a ROM-ok sebességét, ez is a RISC mellett szól. KOMPATIBILITÁS Az Intel túlélte: a 486 -os processzortól kezdődően minden processzora tartalmaz RISC magot, amely a legegyszerűbb, és egyben leggyakoribb utasításokat egyetlen adatút ciklus alatt hajtja végre, csak a többit – a ritkábban előfordulókat – interpretálja a CISC elvnek megfelelően → versenyképes maradt. Máté: Architektúrák 7. előadás 3

Korszerű számítógépek (RISC) tervezési elvei • • Minden utasítást közvetlenül a hardver hajtson végre

Korszerű 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öltő és tároló utasítások hivatkozzanak a memóriára → Sok (legalább 32) regiszter kell Máté: Architektúrák 7. előadás 4

Párhuzamosítás: utasítás vagy processzor szintű. Utasítás szintű: szállítószalag, csővezeték (pipelining). Kezdetben: Utasítás beolvasás Utasítás

Párhuzamosítás: utasítás vagy processzor szintű. Utasítás szintű: szállítószalag, csővezeté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 működhetnek (szerelő csarnok). S 1 S 2 S 3 S 4 S 5 utasítás beolvasó egység utasítás dekódoló egység operandus beolvasó egység utasítás végrehajtó egység eredmény visszaíró egység Máté: Architektúrák 7. előadás 5

A végrehajtás alatt lévő utasítás sorszáma S 1: 1 2 3 4 5 6

A végrehajtás alatt lévő utasítás sorszáma S 1: 1 2 3 4 5 6 7 8 9 S 2: 1 2 3 4 5 6 7 8 S 3: 1 2 3 4 5 6 7 … S 4: 1 2 3 4 5 6 S 5: 1 2 3 4 5 idő 1 2 3 4 5 6 7 8 9 … 2. 4. ábra • Késleltetés (latency): mennyi ideig tart egy utasítás. • Áteresztőképesség (processor bandwidth): hány MIPS (Million Instruction Per Second) a sebesség. Máté: Architektúrák 7. előadás 6

Több szállítószalagos CPU S 1 utasítás beolvasó egység S 2 S 3 S 4

Több szállítószalagos CPU S 1 utasítás beolvasó egység S 2 S 3 S 4 S 5 utasítás dekódoló egység operandus beolvasó egység utasítás végrehajtó egység eredmény visszaíró egység 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öző is (Pentium): fő – ez többet tud, elsőbbséget élvez – és mellék Bonyolult szabályok a párhuzamos végrehajthatóságra (fordítók vagy hardver). Máté: Architektúrák 7. előadás 7

Szuperskaláris processzor 5 funkcionális egységgel: S 4 ALU S 1 S 2 S 3

Szuperskaláris processzor 5 funkcionális egységgel: S 4 ALU S 1 S 2 S 3 utasítás beolvasó egység utasítás dekódoló egység operandus beolvasó egység ALU S 5 LOAD eredmény visszaíró egység STORE lebegőpontos egység 2. 6. ábra Máté: Architektúrák 7. előadás 8

Processzor szintű párhuzamosítás • Tömb (array) processzor (2. 7. ábra) sok azonos processzor (ILLIAC

Processzor szintű párhuzamosítás • Tömb (array) processzor (2. 7. ábra) sok azonos processzor (ILLIAC IV: (4*)8*8, 1972. ), mindnek saját memóriája. Vezérlő 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érlő egység Teríti az utasításokat processzor memória 8*8 -as processzor/memória rács Máté: Architektúrák 7. előadás 9

 • Vektor processzorok Vektor regisztereket használnak. A vektor regiszter több hagyományos regiszterből áll.

• Vektor processzorok Vektor regisztereket használnak. A vektor regiszter több hagyományos regiszterből áll. Gyors szállítószalag gondoskodik a regiszterek feltöltéséről, 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. Máté: Architektúrák 7. előadás 10

 • Multiprocesszorok CPU … CPU A közös memória közös megkönnyíti a feladat memória

• Multiprocesszorok CPU … CPU A közös memória közös megkönnyíti a feladat memória megosztását. • Csak közös memória. Nagyon terheli a memória sínt. helyi memóriák • Lokális memória is van. közös memória CPU … CPU Sok (>64) processzoros rendszert nehéz építeni a közös memória miatt. 2. 8. ábra Máté: Architektúrák 7. előadás 11

 • Multiszámítógépek: Nincs közös memória: A CPU-k üzenetekkel tartják egymással a kapcsolatot. Néhány

• Multiszámítógépek: Nincs közös memória: A CPU-k üzenetekkel tartják egymással a kapcsolatot. Néhány μs üzenet idő. 2 -3 dimenziós hálók, fák, gyűrűk. Közel 10 000 -es rendszer is van. Máté: Architektúrák 7. előadás 12

A mikroarchitektúra szint tervezése Mic-1: olcsó, de lassú. Sebesség növelés: • rövidebb óraciklus, •

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 Main 1 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). Máté: Architektúrák 7. előadás 13

goto Main 1 sokszor megspórolható (4. 23 -24. ábra): 0 x 57 POP A

goto Main 1 sokszor megspórolható (4. 23 -24. ábra): 0 x 57 POP A verem legfelső szavát eldobja. pop 1 MAR=SP=SP-1; rd //2. szó címe, olvas pop 2 // vár pop 3 TOS=MDR; goto main 1 //TOS=a verem teteje main 1 PC=PC+1; fetch; goto(MBR) //következő ut. pop 1 pop 2 pop 3 Új változat MAR=SP=SP-1; rd PC=PC+1; fetch //következő ut. olvasása TOS=MDR; fetch; goto(MBR) Máté: Architektúrák 7. előadás 14

MAR memória MAR MDR PC MBR C sín MDR PC MBR SP SP LV

MAR memória MAR MDR PC MBR C sín MDR PC MBR SP SP LV LV CPP TOS B sín C sín OPC 6 ALU vezérlés H A 4. 1. ábra Mic-1 Máté: Architektúrák TOS A sín OPC H B N Z ALU Léptető B sín 6 ALU vezérlés 2 N Z ALU Léptető 2 ~4. 29. ábra Háromsínes architektúra 7. előadás 15

Három sínes architektúra Sok regiszter csatlakozhat az A sínhez, nemcsak H (4. 1. ,

Három sínes architektúra Sok regiszter csatlakozhat az A sínhez, nemcsak H (4. 1. , 4. 29. ábra). A működése: Minden IJVM utasítás értelmezése akkor fejeződik be, amikor a fetch; goto(MBR) végrehajtásra kerül. Ilyenkor MBR-nek a következő IJVM utasítás kódját kell tartalmaznia, és megkezdődik ennek az utasításnak az értelmezése. Ez a fetch kezdeményezi a program következő 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 előtt. A következő IJVM értelmezésének első 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ó. Máté: Architektúrák 7. előadás 16

A három sínes architektúra előnye a két sínes architektúrával szemben: pl. iload -ban nem

A három sínes architektúra előnye 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. Máté: Architektúrák 7. előadás 17

iload 1 iload 2 iload 3 iload 4 iload 5 main 1 iload 2

iload 1 iload 2 iload 3 iload 4 iload 5 main 1 iload 2 iload 3 iload 4 iload 5 Mic-1 kód (4. 25. ábra) H = LV MAR = MBRU + H; rd MAR = SP + 1 PC = PC + 1; fetch; wr TOS = MDR; goto main 1 PC = PC + 1; fetch; goto(MBR) Három sínes kód(4. 26. ábra) MAR = MBRU + LV; rd MAR = SP + 1 PC = PC + 1; fetch; wr TOS = MDR PC = PC + 1; fetch; goto(MBR) Máté: Architektúrák 7. előadás 18

Hibás a könyvben lévő kód (4. 26. ábra), mert még nem áll rendelkezésre MBRU

Hibás a könyvben lévő kód (4. 26. ábra), mert még nem áll rendelkezésre MBRU értéke, mert az előző utasítás utolsó mikroutasításában volt az a fetch, amely az ILOAD operandusát olvassa. iload 1 iload 2 iload 3 iload 4 iload 5 Három sínes kód(4. 26. ábra) MAR = MBRU + LV; rd MAR = SP + 1 PC = PC + 1; fetch; wr TOS = MDR PC = PC + 1; fetch; goto(MBR) Máté: Architektúrák 7. előadás 19

iload 1 iload 2 iload 3 iload 4 iload 5 main 1 iload 2

iload 1 iload 2 iload 3 iload 4 iload 5 main 1 iload 2 iload 3 iload 4 iload 5 Mic-1 kód (4. 25. ábra) H = LV MAR = MBRU + H; rd MAR = SP + 1 PC = PC + 1; fetch; wr TOS = MDR; goto main 1 PC = PC + 1; fetch; goto(MBR) Három sínes kód(4. 26. ábra) PC = PC + 1; fetch MAR = MBRU + LV; rd MAR = SP + 1 TOS = MDR; wr PC = PC + 1; fetch; goto(MBR) Máté: Architektúrák 7. előadás 20

A PC-vel kapcsolatos teendők: – PC növelése 1 -gyel, – fetch, – 2 bájtos

A PC-vel kapcsolatos teendők: – PC növelése 1 -gyel, – fetch, – 2 bájtos operandus olvasás a memóriából. ALU-nál egyszerűbb áramkörrel megvalósíthatók. Utasításbetöltő egység (IFU – Instruction Fetch Unit) • értelmezhet minden kódot, hogy kell-e operandus, • de egyszerűbb, ha a kódtól függetlenül előkészíti a következő 8 és 16 bites részt (4. 27. ábra). Máté: Architektúrák 7. előadás 21

Utasításbetöltő egység (IFU – Instruction Fetch Unit) ~4. 27. ábra Memória felől Léptető regiszter

Utasításbetöltő egység (IFU – Instruction Fetch Unit) ~4. 27. ábra Memória felől Léptető regiszter MBR 2 Legalacsonyabb 2 bit Memória felé B sín IMAR C sín +1 PC +1, 2 Máté: Architektúrák 7. előadás 22

Véges állapotú gép (FSM – Finite State Machine, 4. 28. ábra): 0, …, 6:

Véges állapotú gép (FSM – Finite State Machine, 4. 28. ábra): 0, …, 6: állapotok, élek: események. Szó olvasás MBR 1 0 MBR 1 MBR 1 1 2 3 4 5 MBR 2 MBR 2 Máté: Architektúrák 7. előadás 6 23

Mic-2 (4. 29. ábra) MDR • Main 1 fölösleges, PC IFU memória MAR MBR

Mic-2 (4. 29. ábra) MDR • Main 1 fölösleges, PC IFU memória MAR MBR 1 MBR 2 SP B sín LV CPP TOS OPC A sín H C sín 6 ALU vezérlés Máté: Architektúrák 7. előadás • a 8 és 16 bites operandusokat IFU adja. N Z ALU Léptető • PC növeléséhez nem kell az ALU, 2 24

Mic-2 (4. 29. ábra) Több hardver kell az A sín címzése és IFU miatt,

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 indexű lokális változót a verembe: wide 1 w_iload 1 iload 2 iload 3 goto (MBR 1 OR 0 x 100) MAR=LV+MBR 2 U; rd; goto iload 2 MAR=LV+MBR 1 U; rd // változó olvasása MAR=SP=SP+1 // vermelés előkészítése TOS=MDR; wr; goto (MBR 1) Máté: Architektúrák 7. előadás 25

Mic-2 adatútja és IFU kapcsolata: Ha PC értéket kap a C sínről, azt IMAR

Mic-2 adatútja és IFU kapcsolata: Ha PC értéket kap a C sínről, azt IMAR is megkapja. Ilyenkor a mikroprogramnak várnia kell a léptető regiszter, MBR 1 és MBR 2 feltöltésére. IMAR módosul, amint a léptető regiszterbe írta a következő 4 bájtot, de PC csak akkor, ha MBR 1 vagy MBR 2 olvasása történik. goto 1 goto 2 goto 3 goto 4 H=PC-1 // IFU már csinált PC=PC+1 -et PC=H+MBR 2 // itt folytatódik a program // IFU még nincs kész, várni kell! goto (MBR 1) // a folytatás 1. utasítása Máté: Architektúrák 7. előadás 26

A IFLT offset utasítás (Mic-2) Kivesz egy szót a veremből és ugrik, ha negatív.

A IFLT offset utasítás (Mic-2) Kivesz egy szót a veremből és ugrik, ha negatív. iflt 1 iflt 2 iflt 3 iflt 4 T F F 2 MAR=SP=SP-1; rd // 2. szó a veremből OPC=TOS // TOS mentése TOS=MDR // TOS= a verem új teteje N=OPC; if(N) goto T; else goto F //elágazás H=PC-1; goto 2 // igaz ág H=MBR 2 // hamis ág, eldobja offset–et goto (MBR 1) // a folytatás 1. utasítása Máté: Architektúrák 7. előadás 27

A Mic-2 adatút idejének összetevői (4. 29. ábra): MDR PC IFU memória MAR MBR

A Mic-2 adatút idejének összetevői (4. 29. ábra): MDR PC IFU memória MAR MBR 1 MBR 2 SP B sín LV CPP TOS OPC A sín H C sín 6 ALU vezérlés Máté: Architektúrák N Z ALU Léptető 7. előadás • az A és B sínek feltöltése a regiszterekből, • az ALU és a léptető munkája, • az eredmények tárolása a C sínről. 2 28

Csővonalas terv: Mic-3 (4. 31. ábra) MDR PC IFU memória MAR MBR 1 MBR

Csővonalas terv: Mic-3 (4. 31. ábra) MDR PC IFU memória MAR MBR 1 MBR 2 SP B sín LV CPP TOS OPC A sín H C C sín A 6 ALU vezérlés B Máté: Architektúrák N Z ALU Léptető 7. előadás A, B és C tároló. 3 mikrolépés: • A, B feltöltése, • C feltöltése az ALU és a léptető eredménye alapján, • C tárolása regiszterbe. 2 A 3 mikrolépés egyidejűleg (párhuzamosan) végrehajtható! 29

Pl. : a verem két felső szavának cseréje Mic-3 -on (4. 33. ábra): swap

Pl. : a verem két felső szavának cseréje Mic-3 -on (4. 33. ábra): swap 1 swap 2 swap 3 swap 4 swap 5 swap 6 cy MAR= SP-1; rd MAR= SP H=MDR; wr MDR= TOS MAR= SP-1; wr TOS=H; goto(MBR 1) 1 B=SP 2 C=B-1 Valódi függőség RAW – Read After Write! Elakadás B=SP 3 MAR=C; rd C=B 4 MDR=mem MAR=C Várni kell! 5 B=MDR 6 C=B B=TOS 7 H=C; wr C=B B=SP 8 mem=MDR MDR=C C=B-1 B=H 9 MAR=C; wr C=B 10 mem=MDR TOS=C eldugaszolja a csővezetéket! 11 Máté: Architektúrák 7. előadás goto(MBR 1) 30

Hétszakaszú csővezeték: Mic-4 (4. 35. ábra) m e m ó r i a 1.

Hétszakaszú csővezeték: Mic-4 (4. 35. ábra) m e m ó r i a 1. Az IFU a bejövő bájtfolyamot a dekódolóba küldi. 2. A dekódolóban van egy táblázat, IJVM hossz amely minden utasításnak tudja a hosszát. A WIDE prefixumot 2 felismeri, pl. WIDE ILOAD -ot 1 átalakítja WIDE_ILOAD -dá: pl. IFU Dekódoló 9 bites utasítás kód. El tudja különíteni az utasítás Léptető regiszter kódokat és az operandusokat. Az MBR 1 MBR 2 operandusokat a léptető regiszterbe teszi, onnan tölti fel MBR 1 -et és MBR 2 -t. Máté: Architektúrák 7. előadás 31

2 Final 3 Dekódoló Sorba állító egység Mikroművelet ROM IADD ISUB IFLT Goto A

2 Final 3 Dekódoló Sorba állító egység Mikroművelet ROM IADD ISUB IFLT Goto A függő mikroműveletek sora (RAM) A dekódoló egy másik táblázata megmutatja, hogy a sorba állító egységben lévő ROM melyik címén kezdődnek a kódhoz tartozó mikroműveletek. Nincs NEXT_ADDRESS és JAM mező. Nincs feltétlen ugrást végző mikroművelet. Az egyes IJVM utasításokat megvalósító mikroműveletek egymás után vannak a ROM -ban, az utolsónál a Final be van állítva. Máté: Architektúrák 7. előadás 32

2 Final 3 Dekódoló Sorba állító egység Mikroművelet ROM IADD ISUB IFLT Goto A

2 Final 3 Dekódoló Sorba állító egység Mikroművelet ROM IADD ISUB IFLT Goto A függő mikroműveletek sora (RAM) 3. A sorba állító egység a ROM-ból a RAM-ba másolja a mikroműveleteket, amint van hely a RAM-ban. A kódhoz tartozó utolsó mikroművelet Final bitje jelzi, hogy nincs több átmásolandó mikroművelet. Ha a mikroműveletek 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. Máté: Architektúrák 7. előadás 33

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

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 mikroműveletké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ékelődött. – Ha létrejön az elágazás, akkor a csővezeté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 megfelelő címtől 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övetkező utasítással folytatódhat a dekódolás. Máté: Architektúrák 7. előadás 34

memória Az adatutat 4 független MIR vezérli. Minden óraciklus kezdetekor MIRi föltöltődik a fölötte

memória Az adatutat 4 független MIR vezérli. Minden óraciklus kezdetekor MIRi föltöltődik a fölötte lévőből, MIR 1 pedig a RAM-ból. 4. MIR 1 az A, B regiszterek feltöltését, 5. MIR 2 az ALU és a léptető működését, 6. MIR 3 az eredmény tárolását, 7. MIR 4 pedig a memória műveleteket vezérli. 7 6 C 4 Regiszterek A 5 4 B ALU Léptető Máté: Architektúrák 7. előadás 5 6 7 ALU C M A B MIR 1 ALU C M A B MIR 2 ALU C M A B MIR 3 ALU C M A B MIR 4 35

Hétszakaszú csővezeték: Mic-4 (4. 35. ábra) Final 3 1 IFU Dekódoló A függő mikroműveletek

Hétszakaszú csővezeték: Mic-4 (4. 35. ábra) Final 3 1 IFU Dekódoló A függő mikroműveletek sora (RAM) ó Léptető regiszter 7 m e m MBR 1 6 C MBR 2 4 Regiszterek A 5 4 B ALU Léptető Máté: Architektúrák IADD ISUB IFLT Goto r i a 2 Sorba állító egység Mikroművelet ROM 7. előadás 5 6 7 ALU C M A B MIR 1 ALU C M A B MIR 2 ALU C M A B MIR 3 ALU C M A B MIR 4 36

IFLT offset programozása Mic-4 -en: cy 1 2 3 4 5 6 7 iflt

IFLT offset programozása Mic-4 -en: cy 1 2 3 4 5 6 7 iflt 1 iflt 2 iflt 3 MAR=SP= OPC= TOS=MDR SP-1; rd TOS B=SP C=B-1 B=TOS MAR=SP=C; rd C=B Várni kell! MDR=mem OPC=C Várni kell! B=MDR C=B TOS=C iflt 4 (Final=1, Goto=1) N=OPC; if(N) GOTO offset B=OPC C=B N PC=PC-1+MBR 2; „tiszta lap”, majd a PC által mutatott címtől utasítás betöltés, … 8 #N MBR 2 –t eldobni, folytatódhat a dekódolás A 8. ciklus feladata túl bonyolult! MBR 2 - 1 előre kiszámítható. Máté: Architektúrák 7. előadás 37

IFLT offset programozása Mic-4 -en: cy 1 2 3 4 5 6 7 iflt

IFLT offset programozása Mic-4 -en: cy 1 2 3 4 5 6 7 iflt 1 iflt 2 iflt 3 iflt 4 MAR=SP= OPC= H=MBR 2 TOS=MDR SP-1; rd TOS -1 B=SP C=B-1 B=TOS MAR=SP=C; rd C=B B=MBR 2 MDR=mem OPC=C C=B-1 Várni kell! H=C B=MDR C=B TOS=C iflt 5 (Final=1, Goto=1) N=OPC; if(N) GOTO offset B=OPC C=B N #N PC=PC+H; „tiszta folytatódhat lap”, majd a PC a dekódolás által mutatott címtől utasítás betöltés, … 8 Az IJVM feltétlen ugrását a dekódoló is feldolgozhatja. Máté: Architektúrák 7. előadás 38

Elágazás jövendölés (4. 40. ábra) Legkorábban a dekódoló veheti észre, hogy ugró utasítást kell

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övetkező utasítás már a csővezetékben van! Pl. : Program Címke Gépi utasítás if(i==0) CMP i, 0 BNE else k=1; then: MOV k, 1 else BR next k=2; else: MOV k, 2 next: Megjegyzés összehasonlítás feltételes ugrás k=1 feltétlen ugrás k=2 A BR next utasítással is probléma van! Máté: Architektúrák 7. előadás 39

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

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 csővezetékben van! Megoldási lehetőségek: • Pentium 4: bonyolult hardver gondoskodik a csővezeték helyreállításáról • Ultra. SPARC III: az eltolás résben lévő 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. Máté: Architektúrák 7. előadás 40

Feltételes elágazás Sok gép megjövendöli, hogy egy ugrást végre kell hajtani vagy sem. Egy

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 előre 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! Máté: Architektúrák 7. előadás 41

Dinamikus elágazás jövendölés Elágazás előzmények tábla (4. 41. ábra), hasonló jellegű, mint a gyorsító

Dinamikus elágazás jövendölés Elágazás előzmények tábla (4. 41. ábra), hasonló jellegű, mint a gyorsító tár. Lehet több utas is! • Egy jövendölő bit: mi volt legutóbb, Bejegyzés N-1 … Elágazás volt/nem Elágazási cím/tag volt Valid 3 2 1 0 Máté: Architektúrák 7. előadás 42

 • Két jövendölő bit: mi várható és mi volt legutóbb. Bejegyzés N-1 …

• Két jövendölő bit: mi várható és mi volt legutóbb. Bejegyzés N-1 … Jövendölő bitek Elágazási cím/tag Valid 3 2 1 0 Ha egy belső ciklus újra indul, akkor az várható, hogy a ciklus végén vissza kell ugrani, pedig legutóbb nem kellett. Máté: Architektúrák 7. előadás 43

A várható bitet csak akkor írja át, ha egymás után kétszer téves volt a

A várható bitet csak akkor írja át, ha egymás után kétszer téves volt a jóslat (4. 42. ábra). elágazás nincs elágazás 00 01 Jóslás: nem nincs lesz újabb elágazás elágazás 10 11 Jóslás: újra lesz nincs elágazás nincs elágazás Máté: Architektúrák 7. előadás 44

 • A táblázat a legutóbbi célcímet is tartalmazhatja. Bejegyzés N-1 … Jövendölő bitek

• A táblázat a legutóbbi célcímet is tartalmazhatja. Bejegyzés N-1 … Jövendölő bitek Célcím Elágazási cím/tag Valid 3 2 1 0 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 ellenőrizni kell). Máté: Architektúrák 7. előadás 45

 • Figyeljük, hogy az utolsó k feltételes elágazást végre kellett-e hajtani. Ez egy

• 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 előzmé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. Máté: Architektúrák 7. előadás 46

Statikus elágazás jövendölés A feltételes utasításoknak néha olyan változata is van (pl. Ultra. SPARC

Statikus elágazás jövendölés A feltételes utasításoknak néha olyan változata is van (pl. Ultra. SPARC 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 előre ugrások nem. Máté: Architektúrák 7. előadás 47

Szuperskaláris architektúrák (2. 6. ábra) S 4 ALU S 1 S 2 S 3

Szuperskaláris architektúrák (2. 6. ábra) S 4 ALU S 1 S 2 S 3 utasítás beolvasó egység utasítás dekódoló egység operandus beolvasó egység ALU S 5 LOAD eredmény visszaíró egység STORE Szuperskaláris processzor 5 funkcionális egységgel Máté: Architektúrák 7. előadás Lebegőpontos egység 48

Szuperskaláris architektúra esetén a dekódoló egység az utasításokat mikroutasításokra darabolhatja. Legegyszerűbb, ha a mikroutasítások

Szuperskaláris architektúra esetén a dekódoló egység az utasításokat mikroutasításokra darabolhatja. Legegyszerűbb, ha a mikroutasítások végrehajtási sorrendje megegyezik a betöltés sorrendjével, de ez nem mindig optimális. Függőségek Ha 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! Máté: Architektúrák 7. előadás 49

Függőségek Egy utasítás nem hajtható végre az alábbi esetekben: • RAW (valódi) függőség (Read

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

Függőségek: nem olvashatjuk, aminek az írása még nem fejeződött be (RAW), és nem írhatjuk

Függőségek: nem olvashatjuk, aminek az írása még nem fejeződö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évő 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 (n+1). ciklusban kezdődhet, és a következőben fejeződik be, a szorzás csak két ciklussal később. 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, I=indítás, B=befejezés (~4. 43. ábra). Máté: Architektúrák 7. előadás 51

C 1 2 3 4 5 6 7 8 9 10 11 12 #

C 1 2 3 4 5 6 7 8 9 10 11 12 # 1 2 3 4 5 6 7 8 Dekódolt R 3=R 0*R 1 R 4=R 0+R 2 R 5=R 0+R 1 R 6=R 1+R 4 Olvasott regiszterek Írt regiszterek 1 2 3 4 5 6 7 0 1 2 3 4 5 1 1 1 2 1 1 RAW R 4 miatt 2 1 1 2 1 I 2 csak I 1 után fejeződhet be 1 1 1 1 Csak a ciklus végére történik 1 1 meg a visszaírás R 4 -be 1 1 2 1 1 WAR R 1 miatt 1 1 I B 0 1 1 2 2 3 3 1 2 2 1 3 4 R 7=R 1*R 2 5 R 1=R 0 -R 2 4 5 6 1 R 3=R 3*R 1 1 1 6 7 1 R 1=R 4+R 4 1 megjegyzés Máté: Architektúrák 1 1 1 RAW R 1 miatt 1 1 WAR R 1 miatt hiba 7. előadás 1 1 1 0 0 0 1 1 52 6 1 1 1 7 1 1 1

C 9 # Dekódolt I B 0 6 1 7 R 3=R 3*R 1

C 9 # Dekódolt I B 0 6 1 7 R 3=R 3*R 1 1 10 1 11 6 12 7 8 R 1=R 4+R 4 13 14 15 7 16 8 17 18 8 Máté: Architektúrák Olvasott regiszterek 1 2 3 4 5 6 7 0 1 RAW R 1 miatt 1 1 1 WAR R 1 miatt 1 1 2 2 7. előadás Írt regiszterek 2 3 4 5 6 0 0 0 1 1 1 53 7

Néhány gép bizonyos utasításokat átugorva függőben hagy, előbb későbbi utasításokat hajt végre, és később

Néhány gép bizonyos utasításokat átugorva függőben hagy, előbb későbbi utasításokat hajt végre, és később tér vissza a függőben hagyott utasítások végrehajtására (~4. 44. ábra). Máté: Architektúrák 7. előadás 54

Sorrendtől eltérő végrehajtás (kezdés és befejezés) esetén (4. 44. ábra) C # Dekódolt 1

Sorrendtől eltérő végrehajtás (kezdés és befejezés) esetén (4. 44. ábra) C # Dekódolt 1 1 R 3=R 0*R 1 2 R 4=R 0+R 2 2 3 R 5=R 0+R 1 4 R 6=R 1+R 4 3 5 R 7=R 1*R 2 6 R 1(S 1)=R 0 -R 2 I B 0 1 1 2 2 3 3 3 5 3 6 4 2 3 Olvasott regiszterek Írt regiszterek 1 2 3 4 5 6 7 1 2 0 1 2 3 4 5 6 7 1 2 1 1 2 1 0 1 1 1 0 RAW 3 2 0 I 5 megelőzi I 4 -et 1 1 1 0 1 3 3 0 WAR: R 1 helyett S 1 1 0 1 1 3 2 0 1 1 I 4 nem indulhat RAW függőség (R 4) I 2 miatt, de adminisztrációt igényel, hogy melyik regisztereket használja (függőséget okozhat az átugrott utasítás is!). I 5 megelőzheti a I 4 –et. I 6 R 1=R 0 -R 2 helyett S 1=R 0 -R 2. Az S 1 segéd regisztert használja R 1 helyett (regiszter átnevezés). Az eredményt később átmásolhatja R 1 -be, ha R 1 fölszabadult. Máté: Architektúrák 7. előadás 55

C # Dekódolt 1 1 R 3=R 0*R 1 2 R 4=R 0+R 2

C # Dekódolt 1 1 R 3=R 0*R 1 2 R 4=R 0+R 2 2 3 R 5=R 0+R 1 4 R 6=R 1+R 4 3 5 R 7=R 1*R 2 6 R 1(S 1)=R 0 -R 2 I B 0 1 1 2 2 3 3 3 5 3 6 4 2 3 4 4 3 7 R 3=R 3*R 1(S 1) 3 8 R 1(S 2)=R 4+R 4 8 3 1 2 3 1 I 6 I 7 I 8 Olvasott regiszterek Írt regiszterek 1 2 3 4 5 6 7 1 2 0 1 2 3 4 5 6 7 1 1 1 2 1 1 RAW 2 1 0 1 1 1 0 3 2 0 I 5 megelőzi I 4 -et 1 1 1 0 1 3 3 0 WAR: R 1 helyett S 1 1 0 1 3 2 0 1 1 0 1 4 2 1 1 1 4 2 0 1 1 1 1 4 2 0 3 0 1 1 3 2 0 3 0 0 1 1 1 2 1 1 1 1 1 eredménye R 1 helyett S 1 -ben képződik (regiszter átnevezés)! A későbbi utasításokban R 1 helyett S 1 -et kell használni! RAW és WAW függőség R 3 miatt (I 1), RAW függőség R 1 (S 1) miatt (I 6), regiszter átnevezés miatt: R 3=R 3*R 1 helyett R 3=R 3*S 1 WAR függőség: R 1 -et I 1, I 3 olvassa, S 1 -be I 7 ír (WAW) ezért R 1=R 4+R 4 helyett S 2=R 4+R 4 (mostantól R 1 helyett S 2 kell). Máté: Architektúrák 7. előadás 56

C # Dekódolt 1 1 R 3=R 0*R 1 2 R 4=R 0+R 2

C # Dekódolt 1 1 R 3=R 0*R 1 2 R 4=R 0+R 2 2 3 R 5=R 0+R 1 4 R 6=R 1+R 4 3 5 R 7=R 1*R 2 6 R 1(S 1)=R 0 -R 2 I B 0 1 1 2 2 3 3 3 5 3 6 4 2 3 4 4 3 7 R 3=R 3*R 1(S 1) 3 8 R 1(S 2)=R 4+R 4 8 3 1 2 3 1 5 6 6 7 4 5 8 7 (R 1=S 2) 8 9 7 Máté: Architektúrák Olvasott regiszterek Írt regiszterek 1 2 3 4 5 6 7 1 2 0 1 2 3 4 5 6 7 1 1 1 2 1 1 RAW 2 1 0 1 1 1 0 I 5 megelőzi I 4 -et 3 2 0 1 1 1 0 1 3 3 0 WAR: R 1 helyett S 1 1 0 1 3 2 0 1 1 0 1 4 2 1 1 1 4 2 0 1 RAW 1 1 1 4 2 0 3 WAR 1 1 1 3 2 0 3 1 0 1 1 1 2 2 0 3 1 0 1 1 2 1 0 3 1 0 0 1 1 2 1 1 3 1 0 1 1 1 2 1 0 1 1 1 1 7. előadás 57 1 2 1 1 1 1 0 1 1 1 1

6 7 4 5 8 7 8 9 (R 1=S 2) Olvasott regiszterek 2

6 7 4 5 8 7 8 9 (R 1=S 2) Olvasott regiszterek 2 1 1 3 1 1 2 1 1 1 1 1 Írt regiszterek 0 1 1 1 0 1 1 7 I 8 eredménye a 7. ciklusban átkerülhet S 2 -ből R 1 -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üggőségeket. Máté: Architektúrák 7. előadás 58 1 1 1

Feltételezett végrehajtás (4. 45. ábra) evensum = 0; oddsum = 0; i = 0;

Feltételezett végrehajtás (4. 45. ábra) evensum = 0; oddsum = 0; i = 0; while(i < limit) { i >= limit while(i < limit) k = i * i; if(((i/2)*2) == i) evensum = evensum + k; else oddsum = oddsum + k; igaz k = i * i; if(((i/2)*2) == i) evensum = evensum + k; i = i + 1; hamis oddsum = oddsum + k; i = i + 1; } Máté: Architektúrák 7. előadás 59

Feltételezett végrehajtás (4. 45. ábra) Speculative Execution Alap blokk (basic block): lineáris kód sorozat.

Feltételezett végrehajtás (4. 45. ábra) Speculative Execution Alap blokk (basic block): lineáris kód sorozat. Sokszor rövid, nincs elegendő párhuzamosság, hogy hatékonyan kihasználjuk. Emelés: egy utasítás előre hozatala egy elágazáson keresztül (lassú műveletek esetén nyerhetünk vele). Pl. evensum és oddsum regiszterbe tölthető az elágazás előtt. 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ésőbb kiderül, hogy kell, akkor átírja az eredményeket a valódi regiszterekbe, ha nem kell, elfelejti. Máté: Architektúrák 7. előadás 60

Feltételezett végrehajtás (Speculative Execution) Mellékhatások: • fölösleges gyorsító sor csere, SPECULATIVE_LOAD • csapda (pl.

Feltételezett végrehajtás (Speculative Execution) Mellékhatások: • fölösleges gyorsító sor csere, SPECULATIVE_LOAD • csapda (pl. x=0 esetén if(x>0) z=y/x; ), mérgezés bit. Máté: Architektúrák 7. előadás 61

Pentium 4 (2000. november) Felülről kompatibilis az I 8088, …, Pentium III-mal. 29. 000,

Pentium 4 (2000. november) Felülről kompatibilis az I 8088, …, Pentium III-mal. 29. 000, …, 42 → 55 M tranzisztor, 1, 5 → 3, 2 GHz, 63 -82 W, 478 láb (3. 44. ábra), 32 bites gép, 64 bites adat sín. Net. Burst 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 Máté: Architektúrák 7. előadás 62

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 szervező hardver

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 szervező hardver hozzáadásával. (a) A 1 A 2 (b) B 1 (c) C 1 C 2 A 1 B 1 A 3 A 4 A 5 B 2 B 3 B 4 C 3 C 4 C 5 C 6 C 1 A 2 A 3 B 2 C 2 B 5 C 3 A 6 A 7 A 8 B 6 B 7 B 8 C 7 C 8 B 4 C 4 A 4 Ó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. Máté: Architektúrák 7. előadás 63

Pentium 4 Gépi utasítások RISC szerű mikroutasítások, több mikroutasítás futhat egyszerre: szuperskaláris gép, megengedi

Pentium 4 Gépi utasítások RISC szerű 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 szintű belső gyorsító tár. L 1: 8 KB utasítás + nyomkövető tár akár 12000 dekódolt mikroutasítás tárolására + 16 KB adat. L 2: 256 KB – 1 MB, egyesített, 8 utas halmaz kezelésű, visszaíró, 128 bájtos gyorsító sor. Előre betöltő egység. Az Extrem Edition-ban 2 MB (közös) L 3 is van. Multiprocesszoros rendszerekhez szimatolás - snoop. Máté: Architektúrák 7. előadás 64

Két külső szinkron sín (memória és PCI): 3. 52. ábra. Gyorsítótársín Lokális sín CPU

Két külső szinkron sín (memória és PCI): 3. 52. ábra. Gyorsítótársín Lokális sín CPU Gyorsító tár Másodlagos gyorsító tár Memóriasín Fő memória PCI-híd PCI sín SCSI USB Egér IDE diszk ISA-híd Billentyűzet Grafikus Szabad PCI kártya bővítőhely Monitor ISA sín Modem Máté: Architektúrák Hangkártya 7. előadás Nyomtató Szabad ISA bővítő helyek 65

Feladatok Mit jelent a RISC rövidítés? Mit jelent a CISC rövidítés? Mi segítette elő

Feladatok Mit jelent a RISC rövidítés? Mit jelent a CISC rövidítés? Mi segítette elő a CISC gépek kialakulását? Miért előnyö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? Máté: Architektúrák 7. előadás 66

Feladatok Milyen párhuzamosítási lehetőségeket ismer? Mi az utasítás szintű párhuzamosítás? Szemléltesse az utasítás szintű

Feladatok Milyen párhuzamosítási lehetőségeket ismer? Mi az utasítás szintű párhuzamosítás? Szemléltesse az utasítás szintű párhuzamosságot! Mit jelent a csővezeték (pipelining)? Mi a késleltetés (latency)? Mi az áteresztő képesség? A késleltetés vagy az áteresztő képesség a fontosabb a gép teljesítménye szempontjából? Mi az előnye/ hátránya a több szállítószalagos CPUnak? Mi a szuperskaláris architektúra lényege? Máté: Architektúrák 7. előadás 67

Feladatok Hogy működik a tömb (array) processzor? Mi a tömb (array) processzor előnye/hátránya? Hogy

Feladatok Hogy működik a tömb (array) processzor? Mi a tömb (array) processzor előnye/hátránya? Hogy működik a vektor processzor? Mi a vektor processzor előnye/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? Máté: Architektúrák 7. előadás 68

Feladatok Mi az úthossz? Milyen lehetőségek vannak a Mic-1 gyorsítására? Mi az előnye a

Feladatok Mi az úthossz? Milyen lehetőségek vannak a Mic-1 gyorsítására? Mi az előnye 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öltő 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 működik az IFU? Máté: Architektúrák 7. előadás 69

Feladatok Hogy ábrázolható véges állapotú géppel (FSM) az IFU működése? Mi a különbség Mic-2

Feladatok Hogy ábrázolható véges állapotú géppel (FSM) az IFU műkö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 felső szavának cseréje) Mic-3 -on négy mikroutasítással megoldható tíz mikrolépésben. Hogyan? A megoldás nem vihető át Mic-2 -re. Miért? A feladat nehéz! Élesen ki kell használni az adatút szakaszainak időzítését. Ezt ugyan nem tárgyaltuk, de kikövetkeztethető abból, hogy az egyes szakaszok egyidejűleg működhetnek. Máté: Architektúrák 7. előadás 70

Feladatok Milyen szakaszai vannak a Mic-4 csővezetékének? Mi a feladata a dekódolónak? Mi a

Feladatok Milyen szakaszai vannak a Mic-4 csővezeté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? Máté: Architektúrák 7. előadás 71

Feladatok Mi az eltolási rés (delay slot)? Hogy működik az eltolási rés szempontjából a

Feladatok Mi az eltolási rés (delay slot)? Hogy működik az eltolási rés szempontjából a Pentium és az Ultra. SPARC? 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üggőségnek? Milyen függőségeket ismer? Mely függőségek oldhatók fel, és hogyan? Máté: Architektúrák 7. előadás 72

Feladatok Mi az előnye a sorrendtől eltérő végrehajtásnak? Mire szolgál a regiszter átnevezés? Mi

Feladatok Mi az előnye a sorrendtől eltérő végrehajtásnak? Mire szolgál a regiszter átnevezés? Mi a feltételezett végrehajtás? Mit nevezünk emelésnek? Mikor előnyö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? Máté: Architektúrák 7. előadás 73

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

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 L 2 gyorsítótárát! Mire szolgál az előre betöltő? Mit jelent a szimatolás? Máté: Architektúrák 7. előadás 74