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

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.
A számítógép felépítése
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.
3. A programozás eszközei, programozás-technikai alapismeretek
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
A hardver és a személyi számítógép konfigurációja
A számítógép felépítése
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje (ábra) Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire előny,
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje (ábra) Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire előny,
Máté: Architektúrák5. előadás1 String kezelő utasítások Az s forrás területet (DS:SI), a d cél területet pedig (ES:DI) címzi. A mnemonik végződése (B /
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje (4.17. ábra) Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire.
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire előny, de.
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ű.
Máté: Architektúrák7. előadás1 RISC – CISC RISC: Reduced Instruction Set Computer csökkentett utasításkészletű számítógép CISC: Complex Instruction Set.
A számítógéprendszer.
Alapfogalmak Adat: fogalmak, tények, jelenségek olyan formalizált ábrázolása, amely emberi vagy gépi értelmezésre, feldolgozásra, közlésre alkalmas. Információ:
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
A mikrovezérlők világa
Egy harmadik generációs gép (az IBM 360) felépítése
A számítógép működése TAKÁCS BÉLA
A számítógép felépítése (funkcionális)
Operációs Rendszerek II.
Dinamikus elágazás jövendölés
Máté: Architektúrák5. előadás1 String kezelő utasítások Az s forrás területet (DS:SI), a d cél területet pedig (ES:DI) címzi. A mnemonik végződése (B /
Máté: Architektúrák7. előadás1 A verem két felső szavának cseréje (4.17. ábra) Megállapodás szerint TOS tartalmazza a verem tetején lévő szót! Ez többnyire.
RISC processzorok Processzorkategóriák RISC tervezési filozófia
Hálózati architektúrák
Számítógép architektúrák
A számítógép felépítése
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
A Mikroprocesszor Harmadik rész.
CUDA C/C++ programozás
A központi egység Informatika alapjai Készítette: Senkeiné B. Judit.
Mikroprocesszor.
Ismerkedjünk tovább a számítógéppel
Készítették: Turai Krisztina és Csaja Eszter Natália 9.a
Számítógépek felépítése 3. előadás CPU, utasítás ciklus, címzés
Írja fel a tizes számrendszerbeli
Máté: Architektúrák5. előadás1 PCI (Peripheral Component Interconnect): 32 bites adat átvitel (33,3 MHz, sávszélesség: 133 MB/s) szabadon felhasználható.
IT ALAPFOGALMAK HARDVER.
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,
7. Multiplikatív műveletek:  : szorzás / : osztás
Pentium 4 logikai lábkiosztása (3.45. ábra)
Máté: Architektúrák9. előadás1 Pentium 4 (2000. november) Felülről kompatibilis az I8088, …, Pentium III-mal , …, 42 → 55 M tranzisztor, 1,5 → 3,2.
Számítógépek felépítése 4. előadás ALU megvalósítása, vezérlő egység
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.
A ROM ÉS A BIOS. K ÉSZÍTETTE R ELL P ATRIK A ROM A ROM egy olyan elektrotechnikai eszköz, amely csak olvasható adatok tárolására alkalmas memória. Tartalma.
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)
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)
CPU (Processzor) A CPU (Central Processing Unit – Központi Feldolgozó Egység) a számítógép azon egysége, amely értelmezi az utasításokat és vezérli.
RAM (Random Access Memory)
A számítógép felépítése
A Számítógépek hardver elemei
Számítógép architektúrák
A számítógép működésének alapjai
Algoritmus készítés.
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:

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 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 rendelkező gép. 72-74 Máté: Architektúrák 7. előadás

Berkeley 1980 (David Petterson, Carlo Séquin) RISC I, később RISC II 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 Stanford 1981 (John Hennessy) MIPS → SPARC 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. 72-74 Máté: Architektúrák 7. előadás

Időkö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 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. 72-74 Máté: Architektúrák 7. előadás

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 74-75 Máté: Architektúrák 7. előadá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). 75-76 S1 S2 S3 S4 S5 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ényvisszaíró egység Máté: Architektúrák 7. előadás

A végrehajtás alatt lévő utasítás sorszáma 1 2 3 4 5 6 7 8 9 S2: S3: … S4: S5: idő 76-77 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

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ö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). S1 S2 S3 S4 S5 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ényvisszaíró egység 78 Máté: Architektúrák 7. előadás

Szuperskaláris processzor 5 funkcionális egységgel: utasítás beolvasó egység utasítás dekódoló egység operandus beolvasó egység ALU eredményvisszaíró egység S4 LOAD STORE lebegő-pontos egység S1 S2 S3 S5 78-80 2.6. ábra Máté: Architektúrák 7. előadás

Processzor szintű párhuzamosítás Tömb (array) processzor (2.7. ábra) Vezérlő egység 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). Teríti az utasításokat 80-82 processzor memória 8*8-as processzor/memória rács Máté: Architektúrák 7. előadás

Vektor regisztereket használnak. 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. 81-82 Máté: Architektúrák 7. előadás

Multiprocesszorok 2.8. ábra 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 (>64) processzoros rendszert nehéz építeni a közös memória miatt. CPU … közös memória CPU … közös memória helyi memóriák 82-83 2.8. ábra Máté: Architektúrák 7. előadás

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

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

goto Main1 sokszor megspórolható (4.23-24. ábra): 0x57 POP A verem legfelső szavát eldobja. pop1 MAR=SP=SP-1; rd //2. szó címe, olvas pop2 // vár pop3 TOS=MDR; goto main1 //TOS=a verem teteje main1 PC=PC+1;fetch;goto(MBR) //következő ut. Új változat MAR=SP=SP-1; rd PC=PC+1; fetch //következő ut. olvasása TOS=MDR; fetch; goto(MBR) 294-295 Máté: Architektúrák 7. előadás

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

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ó. 295-296 Máté: Architektúrák 7. előadás

ILOAD varnum // lokális változó a verembe 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. 295-296 Máté: Architektúrák 7. előadás

PC = PC + 1; fetch; goto(MBR) Három sínes kód(4.26. ábra) 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) MAR = MBRU + LV; rd TOS = MDR 295-296 Máté: Architektúrák 7. előadás

PC = PC + 1; fetch; goto(MBR) 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. 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) 295-296 Máté: Architektúrák 7. előadás

PC = PC + 1; fetch; goto(MBR) Három sínes kód(4.26. ábra) 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) PC = PC + 1; fetch MAR = MBRU + LV; rd TOS = MDR; wr 295-296 Máté: Architektúrák 7. előadás

Utasításbetöltő egység (IFU – Instruction Fetch Unit) 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). 296-301 Máté: Architektúrák 7. előadás

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

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

PC növeléséhez nem kell az ALU, 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. MAR MDR PC MBR1 MBR2 SP LV CPP TOS OPC H memória C sín B sín A sín ALU N Z Léptető 6 ALU vezérlés 2 IFU 300 Máté: Architektúrák 7. előadás

MAR=LV+MBR2U; rd; goto iload2 iload1 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: wide1 goto (MBR1 OR 0x100) w_iload1 MAR=LV+MBR2U; rd; goto iload2 iload1 MAR=LV+MBR1U; rd // változó olvasása iload2 MAR=SP=SP+1 // vermelés előkészítése iload3 TOS=MDR; wr; goto (MBR1) 301-303 Máté: Architektúrák 7. előadás

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, MBR1 és MBR2 feltöltésére. IMAR módosul, amint a léptető regiszterbe írta a következő 4 bájtot, de PC csak akkor, ha MBR1vagy MBR2 olvasása történik. 301-303 goto1 H=PC-1 // IFU már csinált PC=PC+1-et goto2 PC=H+MBR2 // 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 Máté: Architektúrák 7. előadás

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

A Mic-2 adatút idejének összetevői (4.29. ábra): 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. MAR MDR PC MBR1 MBR2 SP LV CPP TOS OPC H memória C sín B sín A sín ALU N Z Léptető 6 ALU vezérlés 2 IFU 300 Máté: Architektúrák 7. előadás

Csővonalas 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éptető eredménye alapján, C tárolása regiszterbe. A 3 mikrolépés egyidejűleg (párhuzamosan) végrehajtható! MAR MDR PC MBR1 MBR2 SP LV CPP TOS OPC H memória C sín B sín A sín ALU N Z Léptető 6 ALU vezérlés 2 IFU C A B 303-305 Máté: Architektúrák 7. előadás

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

Hétszakaszú csővezeték: Mic-4 (4.35. ábra) Az IFU a bejövő bájtfolyamot a dekódolóba küldi. 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éptető regiszterbe teszi, onnan tölti fel MBR1-et és MBR2-t. IJVM hossz 2 Dekódoló m e m ó r i a 1 IFU 309-312 Léptető regiszter MBR1 MBR2 Máté: Architektúrák 7. előadás

A függő mikroműveletek sora (RAM) Mikroművelet ROM IADD ISUB IFLT A függő mikroműveletek sora (RAM) 3 Sorba állító egység Final Goto Dekódoló 2 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. 309-312 Máté: Architektúrák 7. előadás

A függő mikroműveletek sora (RAM) Mikroművelet ROM IADD ISUB IFLT A függő mikroműveletek sora (RAM) 3 Sorba állító egység Final Goto Dekódoló 2 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. 309-312 Máté: Architektúrák 7. előadás

Néhány IJVM utasítás (pl. IFLT) elágazást kívá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. 309-312 Máté: Architektúrák 7. előadás

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

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

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

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

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 Megjegyzés if(i==0) CMP i,0 összehasonlítás BNE else feltételes ugrás k=1; then: MOV k,1 k=1 else BR next feltétlen ugrás k=2; else: MOV k,2 k=2 next: 319-324 A BR next utasítással is probléma van! Máté: Architektúrák 7. előadás

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 UltraSPARC 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. 319-324 Máté: Architektúrák 7. előadás

Több feltételes elágazás egymás után! 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! 319-324 Máté: Architektúrák 7. előadás

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, N-1 … 3 2 1 Elágazási cím/tag Bejegy-zés Valid Elágazás volt/nem volt 319-324 Máté: Architektúrák 7. előadás

Két jövendölő bit: mi várható és mi volt legutóbb. … 3 2 1 Elágazási cím/tag Bejegy-zés Valid Jövendölő bitek 319-324 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

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

A táblázat a legutóbbi célcímet is tartalmazhatja. N-1 … 3 2 1 Elágazási cím/tag Bejegy-zés Valid Jövendölő bitek Célcím 319-324 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

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

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 előre ugrások nem. 319-324 Máté: Architektúrák 7. előadás

Szuperskaláris architektúrák (2. 6. ábra) utasítás beolvasó egység utasítás dekódoló egység operandus beolvasó egység ALU eredményvisszaíró egység S4 LOAD STORE Lebegő-pontos egység S1 S2 S3 S5 78-80 Szuperskaláris processzor 5 funkcionális egységgel Máté: Architektúrák 7. előadás

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

Egy utasítás nem hajtható végre az alábbi esetekben: 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! 324-329 Máté: Architektúrák 7. előadás

Az utasítások indítása és befejezése az eredeti sorrendben történjék! 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). 324-329 Máté: Architektúrák 7. előadás

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

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

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

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

Olvasott regiszterek Írt regiszterek C # Dekódolt I B 1 2 3 4 5 6 7 R3=R0*R1 R4=R0+R2 R5=R0+R1 R6=R1+R4 - R7=R1*R2 R1(S1)=R0-R2 8 R3=R3*R1(S1) R1(S2)=R4+R4 0 0 0 0 RAW I5 megelőzi I4-et WAR: R1 helyett S1 324-329 I6 eredménye R1 helyett S1-ben képződik (regiszter átnevezés)! A későbbi utasításokban R1 helyett S1-et kell használni! I7 RAW és WAW függőség R3 miatt (I1), RAW függőség R1 (S1) miatt (I6), regiszter átnevezés miatt: R3=R3*R1 helyett R3=R3*S1 I8 WAR függőség: R1-et I1, I3 olvassa, S1-be I7 ír (WAW) ezért R1=R4+R4 helyett S2=R4+R4 (mostantól R1 helyett S2 kell). Máté: Architektúrák 7. előadás

Olvasott regiszterek Írt regiszterek C # Dekódolt I B 1 2 3 4 5 6 7 1 2 3 4 5 6 7 R3=R0*R1 R4=R0+R2 R5=R0+R1 R6=R1+R4 - R7=R1*R2 R1(S1)=R0-R2 0 0 8 R3=R3*R1(S1) R1(S2)=R4+R4 (R1=S2) 9 RAW I5 megelőzi I4-et WAR: R1 helyett S1 RAW WAR 324-329 Máté: Architektúrák 7. előadás

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

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

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

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

Mit jelent a RISC rövidítés? Mit jelent a CISC rövidítés? 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

Milyen párhuzamosítási lehetőségeket ismer? 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 CPU-nak? Mi a szuperskaláris architektúra lényege? Máté: Architektúrák 7. előadás

Hogy működik a tömb (array) processzor? 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

Milyen lehetőségek vannak a Mic-1 gyorsítására? 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

Hogy ábrázolható véges állapotú géppel (FSM) az IFU működése? 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

Milyen szakaszai vannak a Mic-4 csővezetékének? 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

Mi az eltolási rés (delay slot)? 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 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ü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

Mi az előnye a sorrendtől eltérő végrehajtásnak? 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