A konferencia terem foglaltsága miatt a november -i előadást november -én h-tól tudom megtartani a konferencia teremben. Elágazás jövendölé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. Máté: Architektúrák 8. előadás Máté: Architektúrák 8. előadás Szuperskaláris architektúrák (. 6. ábra) S ALU S S S ALU S utasítás beolvasó utasítás dekódoló operandus beolvasó LOA eredmény visszaíró STORE Szuperskaláris processzor funkcionális gel Lebegőpontos Szuperskaláris architektúra esetén a dekódoló 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 8. előadás Máté: Architektúrák 8. előadás 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 operandust, 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! 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). Annak nincs akadálya, hogy onnan olvassunk, ahonnan egy korábbi olvasás még nem fejeződött be, tehát az olvasás utáni olvasás nem okoz függőséget. Nincs RAR függőség. Máté: Architektúrák 8. előadás Máté: Architektúrák 8. előadás 6 8. előadás
Függőségek nyilvántartása: Regiszterenként egy-egy számláló, hogy hányszor használják a végrehajtás alatt lévő (mikro)utasítások a regisztert olvasásra illetve írásra. Pl. Tegyük fel, hogy a dekódoló ciklusonként két utasítást tud kiosztani végrehajtásra (a valóságban - 6 utasítást). Az n. ciklusban dekódolt utasítás végrehajtása legkorábban az (n+). ciklusban kezdődhet, és az (n+)-ben fejeződik be, de a szorzás csak az (n+)-ban. Az utasítások indítása és befejezése az eredeti sorrendben történjék! C= ciklus, K=kiosztás, B=befejezés (~.. ábra). Máté: Architektúrák 8. előadás 7 Olvasott regiszterek Írt regiszterek C # ekódolt K B 6 7 6 7 R=R*R R=R+R R=R+R R6=R+R - RAW R miatt I csak I után fejeződhet be Csak a ciklus végére történik meg a visszaírás R-be R7=R*R 6 6 R=R-R - WAR R miatt 7 8 9 6 7 R=R*R - RAW R miatt 6 7 8 R=R+R - WAR R miatt megjegyzés hiba Máté: Architektúrák 8. előadás 8 Olvasott regiszterek Írt regiszterek C # ekódolt K B 6 7 6 7 9 6 7 R=R*R - RAW R miatt 6 7 8 R=R+R - WAR R miatt 7 6 8 7 8 8 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 (~.. ábra). Máté: Architektúrák 8. előadás 9 Máté: Architektúrák 8. előadás Sorrendtől eltérő végrehajtás (kezdés és befejezés) esetén (.. ábra) Olvasott regiszterek Írt regiszterek C # ekódolt K B 6 7 6 7 R=R*R R=R+R R=R+R R6=R+R - RAW R7=R*R I megelőzi I-et 6 R(S)=R-R 6 WAR: R helyett S I nem indulhat RAW függőség (R) I miatt, de adminisztrációt igényel, hogy melyik regisztereket használja (függőséget okozhat az átugrott utasítás is!). I megelőzheti I et. I6 R=R-R helyett S=R-R. Az S segéd regisztert használja R helyett (regiszter átnevezés). Az eredményt később átmásolhatja R -be, ha R fölszabadult. Máté: Architektúrák 8. előadás Olvasott regiszterek Írt regiszterek C # ekódolt K B 6 7 6 7 R=R*R R=R+R R=R+R R6=R+R - RAW 6 R7=R*R R(S)=R-R 6 I megelőzi I-et WAR: R helyett S 7 R=R*R(S) - 8 R(S)=R+R 8 I6 eredménye R helyett S-ben képződik (regiszter átnevezés)! A későbbi utasításokban R helyett S-et kell használni! I7 RAW és WAW függőség R miatt (I), RAW függőség R (S) miatt (I6), regiszter átnevezés miatt: R=R*R helyett R=R*S I8 WAR függőség: R-et I, I olvassa, S-be I7 ír (WAW) ezért R=R+R helyett S=R+R (mostantól R helyett S kell). Máté: Architektúrák 8. előadás 8. előadás
Olvasott regiszterek Írt regiszterek C # ekódolt K B 6 7 6 7 R=R*R R=R+R R=R+R R6=R+R - RAW R7=R*R I megelőzi I-et 6 R(S)=R-R 6 WAR: R helyett S 7 R=R*R(S) - RAW 8 R(S)=R+R( ) 8 WAR 6 6 7 8 7 (R=S) 8 9 7 Máté: Architektúrák 8. előadás Olvasott regiszterek Írt regiszterek C # ekódolt K B 6 7 6 7 6 7 8 7 (R=S) 8 9 7 I8 eredménye a 7. ciklusban átkerülhet S -ből R-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 8. előadás Feltételezett végrehajtás (.. ábra) Páros és páratlan számok köbének összege: evensum = ; evensum = ; oddsum = ; oddsum = ; i = ; i = ; while(i < limit) { k = i * i * i; i >= limit while(i < limit) if(((i/)*) == i) k = i * i * i; evensum = evensum + k; igaz if(((i/)*) == i) else oddsum = oddsum + k; i = i + ; } evensum = evensum + k; i = i + ; hamis oddsum = oddsum + k; Máté: Architektúrák 8. előadás Feltételezett végrehajtás (.. á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 LOA 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 8. előadás 6 Feltételezett végrehajtás (Speculative Execution) Mellékhatások: fölösleges gyorsító sor csere, SPECULATIVE_LOA: megpróbálja a betöltést a gyorsító tárból. Ha nincs ott, akkor föladja. if(x>) z=y/x; Ha az osztást a feltétel ellenőrzése előtt végzi el a processzor (emelés), akkor x= esetén csapda következik be -val való osztás miatt. Megoldás: mérgezés bit. Emelés esetén a csapda csak akkor következik be, ha az emelt műveletet tényleg végre kell hajtani. Máté: Architektúrák 8. előadás 7 Pentium (. november) Felülről kompatibilis az I888,, Pentium III-mal. 9.,, M tranzisztor,,, GHz, 6-8W, 78 láb (.. ábra), bites gép, 6 bites adat sín. NetBurst architektúra. fi fixpontos ALU. Mindkét ALU kétszeres órajel sebességgel fut. Többszálúság (hyperthreding): % többlet a lapkán ~ két CPU. Máté: Architektúrák 8. előadás 8 8. előadás
Többszálúság (hyperthreding, 8.7. ábra) (a) A A A A A A6 A7 A8 (b) B B B B B B6 B7 B8 (c) C C C C C C6 C7 C8 Ó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. A többszálúság többszörözött regiszter készlet és némi szervező hardver hozzáadásával valósítható meg: EGYÜTT A B C A B C A B C A B C Máté: Architektúrák 8. előadás 9 Sín ütemezés Kérés Hiba Szimatolás Válasz Adat BPRI# LOCK# BR# A# AS# REQ# Paritás# Misc# RS# TRY# Paritás# BNR# # RY# BSY# Paritás# Egyéb# Pentium CPU 6 7 Φ 8 8 táp RESET# Megszakítások Energiaellátás Hőmenedzsment Órajel iagnosztika Inicializálás Egyéb Pentium logikai lábkiosztása (.. ábra) Máté: Architektúrák 8. előadás Pentium logikai lábkiosztása (.. ábra) RESET#: a CPU alapállapotba hozatala, Megszakítások: régi vezérlő, és Advanced Programmable Interrupt Controller (APIC) Különböző tápfeszültségek, alvási állapotok, Jelzés fölött, Rendszersín frekvenciája, Pentium CPU RESET# Megszakítások Energiaellátás Hőmenedzsment Órajel iagnosztika Inicializálás Egyéb Máté: Architektúrák 8. előadás 7 Sín ütemezés BPRI# LOCK# BR# A# AS# Kérés REQ# Paritás# Hiba Misc# Szimatolás Misc# RS# Válasz TRY# Paritás# BNR# # 6 RY# Adat BSY# Paritás# Egyéb# (.. ábra) Pentium CPU Pentium logikai lábkiosztása Sín ütemezés: BPRI#: magas, BR#: normál prioritású igény LOCK#: sín foglalás több ciklusra, Kérés: A#: 8 bájtos adat 6 bites címe (6 GB címezhető), AS#: a cím érvényes, REQ#: kívánság, Válasz: RS#: státus, TRY#: a szolga tud adatot fogadni, BNR#: WAIT Adat: #: 8 bájtos adat, RY#: az adat a sínen van, BSY#: a sín foglalt. Máté: Architektúrák 8. előadás Pentium 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. Pentium - szintű belső gyorsító tár. L: 8 KB adat, utas halmaz kezelésű, írás áteresztő, 6 bájtos gyorsító sor. 8 KB utasítás + nyomkövető tár akár dekódolt mikroutasítás tárolására. L: 6 KB MB, egyesített, 8 utas halmaz kezelésű, késleltetve visszaíró, 8 bájtos gyorsító sor. Előre betöltő. Az Extrem Edition-ban MB (közös) L is van. Multiprocesszoros rendszerekhez szimatolás - snoop. Máté: Architektúrák 8. előadás Máté: Architektúrák 8. előadás 8. előadás
Szimatolás snoop Minden processzor figyeli a sínen a többi processzor memóriához fordulásait (szimatol). Ha valamelyik processzor olyan adatot kér, amely bent van a gyorsító tárában, akkor a gyorsító tárából megadja a kért adatot, és letiltja a memóriához fordulást. Máté: Architektúrák 8. előadás Szimatolás snoop Ha minden processzornak saját írás áteresztő gyorsító tára van (8.. ábra) Esemény Saját gyorsító tár Többi gyorsító tár Olvasás hiány Olvasás a memóriából szimatolás Olvasás találat Olvasás a gyorsító tárból Írás hiány Írás a memóriába Ha az írandó szó a Írás találat gyorsító tárban van, Írás a gyorsító tárba akkor érvényteleníti a és a memóriába gyorsító tár bejegyzést A Pentium esetén L az írás áteresztő gyorsító tár, a késleltetve visszaíró L a memória. Máté: Architektúrák 8. előadás 6 Pentium memória sín A memóriaigények, tranzakciók 6 állapota: 6 fázisú csővezeték (.. ábra bal oldal) fázisonként külön vezérlő vonalakkal (amint a mester megkap valamit, elengedi a vonalakat):. Sín ütemezés (kiosztás, bus arbitration): eldől, hogy melyik sínmester következik,. Kérés: cím a sínre, kérés indítása,. Hibajelzés: a szolga hibát jelez(het),. Szimatolás,. Válasz: kész lesz-e az adat a következő ciklusban,. Adat: megvan az adat. Máté: Architektúrák 8. előadás 7 Φ: tranzakció Pentium memória sín csővezetéke (.6. ábra) T T T T T T 6 T 7 T 8 T 9 T T T K H S V A K H S V A K H S V A K H S V A K H S V A 6 K H S V A 7 K H S V A Ütemezés (nem ábrázoltuk), csak akkor kell, ha másé a sín. K: kérés, H: hiba, S: szimatolás, V: válasz, A: adat Máté: Architektúrák 8. előadás 8 A Pentium mikroarchitektúrája Memória sínhez Memória alrendszer Rendszerinterfész Betöltő dekódoló L +I Nyomkövető μrom Végrehajtó L Egész és lebegőpontos végrehajtó Ütemezők Befejező Elágazás jövendölő Bemeneti rész Sorrenden kívüliség vezérlő.6. ábra. A Pentium blokkdiagramja Máté: Architektúrák 8. előadás 9.6. ábra. A Pentium memória alrendszere Memória sínhez Memória alrendszer L 6 KB az első, KB a második, Rendszerinterfész MB a harmadik L +I generációs Pentium -ben. Bemeneti rész L 8 utas halmaz kezelésű, késleltetve visszaíró, 8 bájtos gyorsító sor, minden második ciklusban kezdődhet egy 6 bájtos feltöltés a memóriából. Előre betöltő: megpróbálja L-be tölteni azt a gyorsító sort, amelyre majd szükség lesz (nincs az ábrán). Máté: Architektúrák 8. előadás 8. előadás
.6. ábra. A Pentium bemeneti rész L-ből betölti és dekódolja a programnak megfelelő sorrendben az utasításokat. Az utasításokat RISC szerű mikroműveletek sorozatára bontja. A dekódolt mikro-műveletek a Nyomkövetőbe kerülnek (nem kell újra dekódolni). Betöltő dekódoló L +I Nyomkövető μrom Elágazás jövendölő Bemeneti rész Ha több, mint mikroművelet szükséges, akkor μrom-ra történik utalás. Elágazás jövendölés. Máté: Architektúrák 8. előadás A bemeneti rész az utasításokat L-ből kapja. Ezeket dekódolja, RISC szerű mikroműveletekre bontja, a nyomkövető gyorsító tárban tárolja (akár K mikroműveletet) a programnak megfelelő sorrendben. 6 mikroműveletet csoportosít minden nyomkövető sorban. Feltételes elágazásnál az utolsó Kelágazást tartalmazó L BTB-ből (Branch Target Buffer elágazási cél puffer) kikeresi a jövendölt címet, és onnan folytatja a dekódolást. Ha az elágazás nem szerepel L BTB-ben, akkor statikus jövendölés történik: visszafelé ugrást végre kell hajtani, előre ugrást nem. Máté: Architektúrák 8. előadás.6. ábra. Sorrenden kívüliség vezérlő Az utasítások a programnak megfelelő sorrendben kerülnek az ütemezőbe, eltérő sorrendben kezdődhet a végrehajtásuk (esetleg regiszter átnevezéssel), de a pontos megszakítás követelménye miatt az előírt sorrendben fejeződnek be. A Pentium mikroarchitektúrája Memória sínhez Memória alrendszer Rendszerinterfész L +I Végrehajtó L Egész és lebegőpontos végrehajtó Nyomkövető μrom Elágazás jövendölő Bemeneti rész Ütemezők Befejező Sorrenden kívüliség vezérlő Máté: Architektúrák 8. előadás Betöltő dekódoló Nyomkövető μrom Ütemezők Befejező Elágazás jövendölő Bemeneti rész Sorrenden kívüliség vezérlő.6. ábra. A Pentium blokkdiagramja Máté: Architektúrák 8. előadás.7. ábra. A NetBurst csővezeték Branch Target Buffer elágazási cél puffer Branch Target Buffer elágazási cél puffer Bemeneti rész ekódoló L BTB μrom Nyomkövető Nyomkövető BTB Bemeneti rész ekódoló L BTB μrom Nyomkövető Nyomkövető BTB en kívüliség zérlő Sorrende ve FP MMX SSE Lefoglaló/átnevező Nem memóriasor ALU üt. ALU üt. Mozgató Befejező Memóriasor Bet. üt. Tár. üt. Egész regisztergyűjtő Bet/Tár Egész Máté: Architektúrák 8. előadás L L /memóriából Memórába/ Lefoglaló/átnevező A dekódoló g az utasításokat L-ből kapja. Ezeket RISC szerű mikroműveletekre bontja, és a nyomkövető gyorsító tárban tárolja. Innen ciklusonként három mikroművelet kerül a lefoglaló/átnevező ROB (ReOrder Buffer, átrendező puffer) nevű táblájába. Ez a tábla 8 bejegyzést tartalmazhat. Máté: Architektúrák 8. előadás 6 L /memóriából Memórába/ 8. előadás 6
Ha egy mikroművelet minden inputja rendelkezésre áll, akkor az esetleges WAR vagy WAW függőséget a firkáló regiszter segítségével kiküszöböli. RAW függőség esetén a mikroműveletet várakoztatja, és a rákövetkező mikroműveleteket kezdi feldolgozni. Egyszerre akár 6 utasítás feldolgozása is folyamatban lehet, köztük 8 betöltés és tárolás. Az utasítások a programnak megfelelő lő sorrendben kerülnek az ütemezőbe, eltérő sorrendben kezdődhet a végrehajtásuk, de az előírt sorrendben fejeződnek be. Pontos megszakítás: a megszakítás előtti összes utasítás befejeződött, az utána következőkből egy sem kezdődött el. Máté: Architektúrák 8. előadás 7 A Lefoglaló/átnevező a két sor megfelelőjébe teszi a végrehajtható mikroutasításokat. Az ALU-k az órajel kétszeres sebességével dolgoznak, nehéz folyamatosan munkát adni nekik. en kívüliség zérlő Sorrende ve Lefoglaló/átnevező Nem memóriasor Memóriasor ALU üt. ALU üt. Bet. üt. Tár. üt. Minden órajel ciklusban egy betöltés és egy tárolás is végrehajtható. Máté: Architektúrák 8. előadás 8 Mindkét regisztergyűjtő 8 regisztert tartalmaz, időben változik, hogy melyikben van EAX, Az egyik egész aritmetikájú ALU az összes logikai, aritmetikai, és elágazó, a másik csak az összeadó, kivonó, léptető és forgató utasítás végrehajtására képes. ALU üt. ALU üt. Bet. üt. Tár. üt. A befejező feladata, hogy az utasítások a programnak megfelelő sorrendben fejeződjenek be. L utas halmazkezelésű, írás áteresztő gyorsítótár 6 bájtos gyorsító sorral. Nem lehet L-et módosítani, amíg a tárolást megelőző műveletek be nem fejeződtek ( bejegyzéses tároló puffer), de ha egy betöltő utasítás onnan akar olvasni, ahova egy korábbi tárolt, akkor a tárolások pufferéből megkaphatja a kért adatot (tárolás utáni betöltés). FP MMX SSE Mozgató Egész regisztergyűjtő Bet/Tár Egész Egész regisztergyűjtő Mozgató Bet/Tár Befejező L Máté: Architektúrák 8. előadás 9 Máté: Architektúrák 8. előadás.7. ábra. A NetBurst csővezeték en kívüliség zérlő Sorrende ve FP MMX SSE Bemeneti rész ekódoló Branch Target Buffer elágazási cél puffer L BTB μrom Nyomkövető Nyomkövető BTB Lefoglaló/átnevező Nem memóriasor ALU üt. ALU üt. Mozgató Befejező Memóriasor Bet. üt. Tár. üt. Egész regisztergyűjtő Bet/Tár Egész Máté: Architektúrák 8. előadás L L /memóriából Memórába/ () 6 bites RISC gép, felűről kompatibilis a bites SPARC V8 architektúrával és az UltraSPARC I, II-vel. Új a VIS. utasításkészlet ( grafikus alkalmazásokhoz, tömörítéshez, hálózat kezeléshez, jelfeldolgozáshoz, stb.). Több processzoros alkalmazásokhoz készült. Az összekapcsoláshoz szükséges elemeket is tartalmazza. -ben.6, -ben.9, -ben. GHz, órajel ciklusonként utasítás elvégzését tudja indítani. Máté: Architektúrák 9. előadás 8. előadás 7
CPU 9 millió tranzisztor, CPU közös memóriával használható. 68 láb (. 7. ábra). 6 (jelenleg csak ) bites cím és 8 bites adat lehetséges (több helyen ellentmondó adatok vannak a könyvben, az új kiadásban néhol bennmaradtak az UltraSPARC II-re vonatkozó adatok). Belső gyorsító tár ( KB utasítás + 6 KB adat, gyorsító sor B). KB előre betöltő és tároló gyorsító tár L eléréséhez. Az L gyorsító tár osztott, külső, vagy 8 MB A gyorsító sor mérete 6, 6 illetve B Máté: Architektúrák 8. előadás Másodlagos gyorsító tár (címkék - tags) 8 Bejegyzés cím Érvényes/ érvénytelen Bejegyzés adat Bejegyzés paritása Adat címe Másodlagos A cím érvényes gyorsító tár (adatok) 8 Adat 6 Paritás? UltraSPARC III központi Első szintű gyorsító tárak vezérlés UB II memória puffer Sín ütemezés Memória cím Cím paritása Érvényes cím Várakozás Válasz Mem. adat ECC 8 6 UPA interfész a fő memóriához Máté: Architektúrák 8. előadás Az UltraSPARC II-nél.-6 MB-os az L tár és 8 K - 6 K db 6 B-os gyorsító sor (cache line) lehet. A gyorsító sor címzéséhez 8 bit szükséges. A CPU mindig 8 bites Line címet (Bejegyzés cím) ad át. Csak maximális méret esetén van kihasználva mind a 8 bit címzésre. A cím 6 bit-es, de egyelőre bit-re korlátozva van bit átfedés 6 bites bájt cím Tag Line bit 8 bit =? Entry Valid Tag Cash hline L -... Máté: Architektúrák 8. előadás Máté: Architektúrák 8. előadás 6 KB-os gyorsító tár esetén a bites cím felosztása: Tag: bit, Line: bit, bájt cím: 6 bit = bit. 6 MB-os tár esetén 8 bites Line kell, és bites Tag (Bejegyzés adat) is elég lenne, de ilyekor hogy a CPU esen működhessen a gyorsító tárban tárolt bites Tag-et a gyorsító tár kiegészíti Line legmagasabb helyértékű bitjével. Az Adat címe a gyorsító sor címén (Bejegyzés cím, Line) kívül még bitet tartalmaz, mert egy átvitel során a gyorsító sornak csak negyed része (6 bájt) mozgatható. Másodlagos gyorsító tár (címkék - tags) Másodlagos gyorsító tár (adatok) 8 Bejegyzés cím (Line) Érvényes/érvénytelen 8 6 Bejegyzés adat (tag) Címke paritása Adat címe A cím érvényes Adat Paritás központi Első szintű gyorsító tárak UB II memória puffer vezérlés Máté: Architektúrák 8. előadás 7 Máté: Architektúrák 8. előadás 8 8. előadás 8
központi Első szintű gyorsító tárak Sín ütemezés Memória cím Cím paritása Érvényes cím Várakozás Válasz UPA interfész a fő memóriához UPA (Ultra Port Architecture) sín, hálózati csomópont vagy a kettő kombinációja. Több CPU esetén egy központi vezérlőn keresztül kapcsolódnak a sínhez. Több írást és olvasást tud egyidejűleg kezelni. Máté: Architektúrák 8. előadás 9 UB II (UltraSPARC ata Buffer II): ezen keresztül zajlik a memória és a gyorsító tárak közötti adatforgalom. Az adatsín MHz-es 8 bit széles szinkron sín, így a sávszélesség. GB/s. CPU Első szintű gyorsító tárak UB II memória puffer vezérlés Válasz Memória adat ECC 8 6 UPA interfész a fő memóriához Máté: Architektúrák 8. előadás Másodlagos gyorsító tár (címkék - tags) 8 Bejegyzés cím Érvényes/ érvénytelen Bejegyzés adat Bejegyzés paritása Adat címe Másodlagos A cím érvényes gyorsító tár (adatok) 8 Adat 6 Paritás UltraSPARC III központi Első szintű gyorsító tárak vezérlés Sín ütemezés Memória cím Cím paritása Érvényes cím Várakozás Válasz UPA interfész a fő memóriához Ugrótábla Az CPU mikroarchitektúrája L I Utasítás kiosztó Utasítás puffer Rendszer interfész L vezérlő Memória vezérlő L FP/Gr Egész Betöltő tároló Memóriához L 8 bit széles Tárolási gyorsítótár Előre betöltő gyorsítótár UB II memória puffer Mem. adat ECC 8 6.8. ábra. Az CPU blokkdiagramja Máté: Architektúrák 8. előadás Máté: Architektúrák 8. előadás Ugrótábla L I Utasítás kiosztó Utasítás puffer L I KB utas halmazkezelésű, B-os gyorsító sor. Az utasítás kiosztó ciklusonként utasítást tud kiosztani Ugrótábla 6K bejegyzés elágazás jövendöléshez (cél cím is) 6 elemű Utasítás puffer FP/Gr Egész Betöltő tároló Két egész aritmetikájú ALU + regiszterek + firkáló regiszterek Lebegőpontos : regiszter, összeadó/kivonó + szorzó + osztó ALU, grafikai utasítások Máté: Architektúrák 8. előadás L I Utasítás kiosztó Rendszer interfész L vezérlő Memória vezérlő L Betöltő tároló Memóriához 8 bit széles L Tárolási gyorsítótár KB Előre betöltő gyorsítótár KB L 6 KB-os utas halmazkezelésű, írás áteresztő, bájtos gyorsító sor. Feltételezett betöltésre KB előre betöltő gyorsítótár. KB tárolási gyorsítótár. Memória vezérlő: virtuális fizikai cím. Máté: Architektúrák 8. előadás 8. előadás 9
CPU mikroarchitektúrája A SPARC sorozat RISC elgondoláson alapul. A legtöbb utasításnak két forrás és egy cél regisztere van. Előre betöltés: speciális utasításokkal, és a visszafelé kompatibilitás miatt hardveresen is. bites elágazás jövendölő + statikus elágazás jövendölés. Máté: Architektúrák 8. előadás A P F B (.9. ábra) Ugrótábla Cél Címmultiplexor Utasítás gyorsítótár Utasítás dekódoló Address generation, cím generáló. Ugrás, csapda, Az eltolás résben lévő utasítást mindig végrehajtja! Preliminari Fetch, előzetes betöltő. Legfeljebb utasítást képes betölteni L I-ből, nézi, hogy van-e köztük elágazó, elágazás jövendölés. Branch target, elágazási cél. Ha kell ugrani, A Máté: Architektúrák 8. előadás 6 A P F B I J Ugrótábla Cél Címmultiplexor Utasítás gyorsítótár Utasítás dekódoló Utasítás csoportosító Instruction group formation, utasítás csoportosító. Aszerint csoportosítja az utasításokat, hogy melyik működési et használják. Máté: Architektúrák 8. előadás 7 I J R E C Utasítás csoportosító Munka regisztergyűjtő Máté: Architektúrák 8. előadás 8 L Betöltő/tároló, speciális J instruction stage grouping, utasítás kiosztó. Az elérhető működési ektől függően akár utasítást is továbbít az R szakasznak. Register, függőség esetén vár, nincs sorrenden kívüli végrehajtás. J R E C Utasítás csoportosító Munka regisztergyűjtő Máté: Architektúrák 8. előadás 9 L Betöltő/tároló, speciális Execution, végrehajtó. A legtöbb egész utasítás itt be is fejeződik. Ha egy utasítás készen van, akkor frissül a munka regisztergyűjtő. Itt dől el, hogy az ugrás feltétele teljesül-e. Hibás jövendölés esetén jelzés az A szakasznak, a csővezeték érvénytelenítése. Cache, gyorsítótár. Itt történik az olvasás L ből. J R E C M W Előjel kiterjesztés, igazítás Utasítás csoportosító Munka regisztergyűjtő Máté: Architektúrák 8. előadás 6 L Előre betöltő gy.tár Miss, hiány. L hiány esetén L-höz fordul. Itt történik az előjel kiterjesztés, igazítás, az előre betöltő gyorsítótárból kiszolgálható betöltés. Write, író. A speciális eredményei a munka regisztergyűjtőbe kerülnek. Betöltő/tároló, speciális L 8. előadás
E C M W X T FP A/SUB Grafikus, MM FP MUL/IV Grafikus, MM extended, kiterjesztett. Itt fejeződik be a legtöbb FP és grafikai utasítás. Trap, csapda. Ez észleli az egész és FP csapdákat. Pontos megszakítás. A szakasz véglegesíti a regiszterek értékét az architektúrális regiszter gyűjtőben. Megszakításkor az itteni adatok érvényesek. R E C M W X T Munka regisztergyűjtő Arch. r.gyűjtő L Betöltő/tároló, speciális L Előjel kiterjesztés, igazítás Tárolási sor Tárolási gy.tár Máté: Architektúrák 8. előadás 6 Máté: Architektúrák 8. előadás 6 J R E C Utasítás csoportosító Munka regisztergyűjtő L Betöltő/tároló, speciális Mit nevezünk függőségnek? Milyen függőségeket ismer? Mely függőségek oldhatók fel, és hogyan? M W X FP A /SUB Grafik kus ALU FP MU UL/IV Grafik kus ALU L T Arch. r.gyűjtő Előjel kiterjesztés, igazítás Tárolási sor Tárolási gy.tár Máté: Architektúrák 8. előadás 6 Máté: Architektúrák 8. előadás 6 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_LOA lényege? Mi a mérgezés bit? 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 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? Jellemezze a Pentium L gyorsítótárát! Mire szolgál az előre betöltő? Mit jelent a szimatolás? Milyen sorrendben dekódolja a Pentium az utasításokat? Mire szolgál a μrom? Máté: Architektúrák 8. előadás 6 Máté: Architektúrák 8. előadás 66 8. előadás
Mire szolgál a nyomkövető gyorsítótár? Milyen elágazás jövendölést használ a Pentium? Mire szolgál az L BTB? Mire szolgál a nyomkövető BTB? Milyen sorrendben kezdődik az utasítások végrehajtása a Pentium -en? Mire szolgál a Pentium lefoglaló/átnevező e? Mire szolgálnak a regiszter gyűjtők? Milyen sorrendben fejeződik be az utasítások végrehajtása a Pentium -en? Mi a különbség a Pentium két egész aritmetikájú ALU-ja j között? Miért nem írható azonnal az eredmény L-be? Mit jelent a pontos megszakítás kifejezés? Milyen problémát okozhat a tárolás utáni betöltés? Máté: Architektúrák 8. előadás 67 Máté: Architektúrák 9. előadás 68 Hogy működik az másodlagos gyorsítótára? Mire szolgál az UPA (Ultra Port Architecture)? Mire szolgál az UB II (UltraSPARC ata Buffer II)? Milyen szervezésű az L I gyorsítótára? Mire szolgál a munka regisztergyűjtő? Mire szolgál az architektúrális regisztergyűjtő? Mire szolgál az előre betöltő gyorsítótár? Mire szolgál a tárolási sor? Mire szolgál a tárolási gyorsítótár? Mire szolgál az ugrótáblája? Milyen elágazás jövendölést használ az? Mit nevezünk eltolás résnek? Hogy kezeli az az eltolás rést? Mire szolgál az utasítás csoportosító? g Hány ALU van az -ban? Hogy kezeli az a függőségeket? Máté: Architektúrák 9. előadás 69 Máté: Architektúrák 9. előadás 7 Az előadáshoz kapcsolódó Fontosabb tételek Sorrendtől eltérő végrehajtás, szuperskaláris architektúra, függőségek, regiszter átnevezés Feltételezett végrehajtás A Pentium processzor, a Pentium mikroarchitektúrája A NetBurst csővezeték Az processzor és az mikroarchitektúrája, csővezetéke Máté: Architektúrák 8. előadás 7 8. előadás