Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Dinamikus elágazás jövendölés

Hasonló előadás


Az előadások a következő témára: "Dinamikus elágazás jövendölés"— Előadás másolata:

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

2 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 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 8. előadás

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

4 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 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 8. előadás

5 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

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

7 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 S S S S5 Szuperskaláris processzor 5 funkcionális egységgel 78-80 Máté: Architektúrák 8. előadás

8 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 8. előadás

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

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

11 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 WAR R1 miatt RAW R1 miatt WAR R1 miatt megjegyzés hiba Máté: Architektúrák 8. előadás

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

13 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 8. előadás

14 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 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 8. előadás

15 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 RAW I5 megelőzi I4-et WAR: R1 helyett S1 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 8. előadás

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

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

18 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) 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 8. előadás

19 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 8. előadás

20 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 8. előadás

21 Felülről kompatibilis az I8088, …, Pentium III-mal.
Pentium 4 (2000. november) Felülről kompatibilis az I8088, …, Pentium III-mal. 29.000, …, 42 → 55 M tranzisztor, 1,5 → 3,2 GHz, 63-82W, 478 láb ( ábra), 32 bites gép, 64 bites adat sín. NetBurst architektúra. 2 fixpontos ALU → többszálúság (hyperthreding): 5% többlet a lapkán ~ két CPU. Mindkét ALU kétszeres órajel sebességgel fut Máté: Architektúrák 8. előadás

22 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) A1 A2 A3 A4 A5 A6 A7 A8 (b) B1 B2 B3 B4 B5 B6 B7 B8 (c) C1 C2 C3 C4 C5 C6 C7 C8 Óraciklus → Az (a), (b) és (c) processzus külön futtatva az üres négyzeteknél várakozni kényszerül a memóriához fordulások miatt. Máté: Architektúrák 8. előadás

23 2-3 szintű belső gyorsító tár.
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. L1: 8 KB utasítás + nyomkövető akár dekódolt mikroutasítás tárolására + 16 KB adat. L2: 256 KB – 1 MB, 8 utas halmaz kezelésű, 128 bájtos gyorsító sor. Az Extrem Edition-ban 2 MB (közös) L3 is van. Multiprocesszoros rendszerekhez szimatolás - snoop. Máté: Architektúrák 8. előadás

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

25 Pentium 4 logikai lábkiosztása (3.45. ábra)
BPRI# LOCK# BR0# A# ADS# REQ# Paritás# Misc# RS# TRDY# Paritás# BNR# D# DRDY# DBSY# Paritás# Egyéb# Sín ütemezés Kérés Hiba Szimatolás Válasz Adat RESET# Megszakítások Energiaellátás Hőmenedzsment Órajel Diagnosztika Inicializálás Egyéb 3 33 14 5 2 4 Pentium 4 CPU 5 5 2 23 2 2 7 64 Pentium 4 logikai lábkiosztása (3.45. ábra) 4 13 85 180 Φ táp Máté: Architektúrák 8. előadás

26 Pentium 4 logikai lábkiosztása (3.45. á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 1300 fölött, … Rendszersín frekvenciája, Pentium 4 CPU RESET# Megszakítások Energiaellátás Hőmenedzs ment Órajel Diagnosztika Inicializálás Egyéb 3 14 4 5 23 2 7 Máté: Architektúrák 8. előadás

27 Pentium 4 logikai lábkiosztása
BPRI# LOCK# BR0# A# ADS# REQ# Paritás# Misc# RS# TRDY# Paritás# BNR# D# DRDY# DBSY# Paritás# Egyéb# Pentium 4 logikai lábkiosztása (3.45. ábra) Sín ütemezés: BPRI#: magas, BR0#: normál prioritású igény LOCK#: sín foglalás több ciklusra, Kérés: A#: 8 bájtos adat címe (64 GB címezhető), ADS#: a cím érvényes, REQ#: kívánság, Válasz: RS#: státus, TRDY#: a szolga tud adatot fogadni, Adat: D#: 8 bájtos adat, DRDY#: az adat a sínen van, DBSY#: a sín foglalt. Sín ütemezés Kérés Hiba Szimatolás Válasz Adat Pentium 4 CPU 33 5 2 5 2 2 64 4 13 Máté: Architektúrák 8. előadás

28 Kérés: cím a sínre, kérés indítása,
Pentium 4 memória sín A memóriaigények, tranzakciók 6 állapota: 6 fázisú csővezeték (3.45. ábra bal oldal) fázisonként külön vezérlő vonalakkal (amint a mester megkap valamit, elengedi a vonalakat): 0. 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: a másik CPU gyorsító tárában, 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

29 Pentium 4 memória sín csővezetéke (3.46. ábra)
Φ: tranzakció T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 1 K H S V A 2 3 4 5 6 7 Ü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

30 A Pentium 4 mikroarchitektúrája
Memória alrendszer Memória sínhez Végrehajtó egység Rendszerinterfész Egész és lebegőpontos végrehajtó egység L2 D+I L1 D Betöltő dekódoló Nyomkövető ROM Ütemezők Befejező egység Elágazás jövendölő Bemeneti rész Sorrenden kívüliség vezérlő 4.46. ábra. A Pentium 4 blokkdiagramja Máté: Architektúrák 8. előadás

31 4.46. ábra. A Pentium 4 memória alrendszere
Memória sínhez L2 256 KB az első, 512 KB a második, 1 MB a harmadik generációs Pentium 4-ben. Memória alrendszer Rendszerinterfész L2 D+I L2 8 utas halmaz kezelésű, késleltetve visszaíró 128 bájtos gyorsító sor, minden második ciklusban kezdődhet egy 64 bájtos feltöltés a memóriából. Előre betöltő: megpróbálja L2-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

32 4.46. ábra. A Pentium 4 bemeneti rész
L2-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. Ha több, mint 4 mikroművelet szükséges, akkor ROM-ra történik utalás. A dekó-dolt mikroműveletek a Nyomkövetőbe kerülnek (nem kell újra dekódolni). Elágazás jövendölés. L2 D+I Betöltő dekódoló Nyomkövető ROM Elágazás jövendölő Bemeneti rész Máté: Architektúrák 8. előadás

33 A bemeneti rész az utasításokat L2-ből kapja, egyszerre 64 bitet
A bemeneti rész az utasításokat L2-ből kapja, egyszerre 64 bitet. Ezeket dekódolja, a nyomkövető gyorsító tárban tárolja (akár 12 K mikroműveletet). 6 mikroműveletet csoportosít minden nyomkövető sorban. Feltételes elágazásnál az utolsó 4 K elágazást tartalmazó L1 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 L1 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

34 4.46. á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. Nyomkövető Ütemezők Befejező egység ROM Elágazás jövendölő Bemeneti rész Sorrenden kívüliség vezérlő Máté: Architektúrák 8. előadás

35 A Pentium 4 mikroarchitektúrája
Memória alrendszer Memória sínhez Végrehajtó egység Rendszerinterfész Egész és lebegőpontos végrehajtó egység L2 D+I L1 D Betöltő dekódoló Nyomkövető ROM Ütemezők Befejező egység Elágazás jövendölő Bemeneti rész Sorrenden kívüliség vezérlő 4.46. ábra. A Pentium 4 blokkdiagramja Máté: Architektúrák 8. előadás

36 4.47. ábra. A NetBurst csővezeték
Branch Target Buffer elágazási cél puffer Bemeneti rész Dekódoló egység L1 BTB ROM Nyomkövető Nyomkövető BTB Memórába/memóriából Sorrenden kívüliség vezérlő Lefoglaló/átnevező egység Nem memóriasor Memóriasor L2 ALU üt. ALU üt. Bet. üt. Tár. üt. FP regisztergyűjtő Egész regisztergyűjtő FP MMX SSE Mozgató Bet/Tár L1 D Egész Befejező egység Máté: Architektúrák 8. előadás

37 Branch Target Buffer elágazási cél puffer Lefoglaló/átnevező egység
Dekódoló egység L1 BTB ROM Nyomkövető Nyomkövető BTB Lefoglaló/átnevező egység A nyomkövető gyorsítótárból ciklusonként három mikroművelet kerül a lefoglaló/átnevező egység ROB (ReOrder Buffer, átrendező puffer) nevű táblájába. Ez a tábla 128 bejegyzést tartalmazhat. Máté: Architektúrák 8. előadás

38 Ha egy mikroművelet minden inputja rendelkezésre áll, akkor az esetleges WAR vagy WAW függőséget a 120 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 126 utasítás feldolgozása is folyamatban lehet, köztük 48 betöltés és 24 tárolás. Az utasítások a programnak megfelelő 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

39 Lefoglaló/átnevező egység
A Lefoglaló/átnevező egység a két várakozási sor megfelelőjébe teszi a mikroutasításokat. Az ALU-k az órajel kétszeres sebességével dolgoznak, nehéz folyamatosan munkát adni nekik. Lefoglaló/átnevező egység 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

40 Egész regisztergyűjtő
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. Mindkét regisztergyűjtő 128 regisztert tartalmaz, időben változik, hogy melyikben van EAX, … ALU üt. ALU üt. Bet. üt. Tár. üt. FP regisztergyűjtő Egész regisztergyűjtő FP MMX SSE Mozgató Bet/Tár Egész Máté: Architektúrák 8. előadás

41 Egész regisztergyűjtő
A befejező egység feladata, hogy az utasítások a programnak megfelelő sorrendben fejeződjenek be. L1 4 utas halmazkezelésű, írás áteresztő gyorsítótár 64 bájtos gyorsító sorral. Nem lehet L1-et módosítani, amíg a tárolást megelőző műveletek be nem fejeződtek (24 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 regisztergyűjtő Egész regisztergyűjtő Mozgató Bet/Tár L1 D Befejező egység Máté: Architektúrák 8. előadás

42 4.47. ábra. A NetBurst csővezeték
Branch Target Buffer elágazási cél puffer Bemeneti rész Dekódoló egység L1 BTB ROM Nyomkövető Nyomkövető BTB Memórába/memóriából Sorrenden kívüliség vezérlő Lefoglaló/átnevező egység Nem memóriasor Memóriasor L2 ALU üt. ALU üt. Bet. üt. Tár. üt. FP regisztergyűjtő Egész regisztergyűjtő FP MMX SSE Mozgató Bet/Tár L1 D Egész Befejező egység Máté: Architektúrák 8. előadás

43 UltraSPARC III (2000) 64 bites RISC gép, felűről kompatibilis a 32 bites SPARC V8 architektúrával és az UltraSPARC I, II-vel. Új a VIS 2.0 utasításkészlet (3D 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. 2000-ben 0.6, 2001-ben 0.9, 2002-ben 1.2 GHz, órajel ciklusonként 4 utasítást tud elvégezni. Máté: Architektúrák 8. előadás

44 Másodlagos gyorsító tár (címkék -tags)
18 UltraSPARC III központi egység Első szintű gyorsító tárak 5 UPA interfész a fő memóriához Címke cím Érvényes címke Címke adat Címke paritása Adat címe Érvényes adat cím Adat Paritás Sín ütemezés Memória cím Cím paritása Érvényes cím Várakozás Válasz Mem. adat ECC 35 25 4 Másodlagos gyorsító tár (adatok) 20 4 128 vezérlés 16 5 UDB II memória puffer 128 UltraSPARC III 16 Máté: Architektúrák 8. előadás

45 Belső gyorsító tár (32 KB utasítás + 64 KB adat).
UltraSPARC III CPU 29 millió tranzisztor, 4 CPU közös memóriával használható láb ( ábra). 64 (jelenleg csak 43) bites cím és 128 bites adat lehetséges. Belső gyorsító tár (32 KB utasítás + 64 KB adat). 2 KB előre betöltő és tároló gyorsítótár L2 eléréséhez. A gyorsító sor (cache line) mérete 64 (32?) B. Külső MB (? UltraSPARC II-nek MB). 8 K K db 64 B-os gyorsító sor (cache line) lehet. A címzéséhez 13 – 18 bit szükséges. A CPU mindig 18 bites Line címet (Címkeazonosítót) ad át. Csak maximális méret esetén van mind a 18 bit kihasználva. Máté: Architektúrák 8. előadás

46 A cím 64 bit-es, de egyelőre 44 bit-re korlátozva van
Tag Line 25 bit 18 bit 5 bit átfedés 6 bit bájt cím =? Entry Valid Tag Cash line 2L-1 2 1 . . . Máté: Architektúrák 8. előadás

47 512 KB-os gyorsító tár esetén a 44 bites cím felosztása: Tag: 25 bit, Line: 13 bit, bájt cím: 6 bit = 44 bit. 16 MB-os tár esetén 18 bites Line kell, és 20 bites Tag (Címkeadat) is elég lenne, de ilyekor – hogy a CPU egységesen működhessen – a gyorsító tárban tárolt 20 bites Tag-et a gyorsító tár kiegészíti Line 5 legmagasabb helyértékű bitjével. Az Adat címe a gyorsító sor címén (Címkeazonosító, Line) kívül még 2 bitet tartalmaz, mert egy átvitel során a gyorsító sornak csak negyed része (16 bájt) mozgatható. Máté: Architektúrák 8. előadás

48 UltraSPARC III Másodlagos gyorsító tár (címkék -tags)
Másodlagos gyorsító tár (adatok) Címke cím (Line) Érvényes címke Címke adat (tag) Címke paritása Adat címe Érvényes adat cím Adat Paritás UltraSPARC III központi egység Első szintű gyorsító tárak 18 20 25 4 128 16 UDB II memória puffer 5 vezérlés UltraSPARC III Máté: Architektúrák 8. előadás

49 UltraSPARC III központi egység 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 5 UPA interfész a fő memóriához 35 4 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

50 Első szintű gyorsító tárak UPA interfész a fő memóriához
UDB II (UltraSPARC Data Buffer II): ezen keresztül zajlik a memória és a gyorsító tárak közötti adatforgalom. Az adatsín 150 MHz-es 128 bit széles szinkron sín, így a sávszélesség 2.4 GB/s. UltraSPARC III CPU Első szintű gyorsító tárak UDB II memória puffer 5 vezérlés Válasz Memória adat Hiba javító kód UPA interfész a fő memóriához 4 128 16 Máté: Architektúrák 8. előadás

51 Másodlagos gyorsító tár (címkék -tags)
18 UltraSPARC III központi egység Első szintű gyorsító tárak 5 UPA interfész a fő memóriához Címke cím Érvényes címke Címke adat Címke paritása Adat címe Érvényes adat cím Adat Paritás Sín ütemezés Memória cím Cím paritása Érvényes cím Várakozás Válasz Mem. adat ECC 35 25 4 Másodlagos gyorsító tár (adatok) 20 4 128 vezérlés 16 5 UDB II memória puffer 128 UltraSPARC III 16 Máté: Architektúrák 8. előadás

52 Az UltraSPARC III CPU mikroarchitektúrája Előre betöltő gyorsítótár
Memóriához L1 I Rendszer interfész L2 vezérlő Memória vezérlő 128 bit széles L2 Utasítás kiosztó Ugrótábla Utasítás puffer L1 D Tárolási gyorsítótár FP/Gr Egész Betöltő tároló Előre betöltő gyorsítótár 4.48. ábra. Az UltraSPARC III CPU blokkdiagramja Máté: Architektúrák 8. előadás

53 L1 I 32 KB 4 utas halmazkezelésű,
az utasítás kiosztó ciklusonként 4 utasítást tud kiosztani L1 I Ugrótábla Utasítás kiosztó 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 ALU-k: összeadó/kivonó, szorzó/osztó + 32 regiszter + grafikai utasítások. Máté: Architektúrák 8. előadás

54 Előre betöltő gyorsítótár
L1 D L2 Betöltő tároló Tárolási gyorsítótár Előre betöltő gyorsítótár Memóriához Rendszer interfész L2 vezérlő Memória vezérlő 128 bit széles L1 I Utasítás kiosztó L1 D 64 KB-os 4 utas halmazkezelésű, írás áteresztő, 32 bájtos gyorsító sor. Feltételezett betöltésre 2 KB előre betöltő gyorsítótár. 2 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

55 UltraSPARC III 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. 2 bites elágazás jövendölő + statikus elágazás jövendölés. Máté: Architektúrák 8. előadás

56 UltraSPARC III csővezetéke (4.49. ábra)
Címmultiplexor Utasítás gyorsítótár Utasítás dekódoló Ugrótábla Cél APF B 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 4 utasítást képes betölteni L1 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

57 UltraSPARC III csővezetéke Utasítás csoportosító
Címmultiplexor APF B I J Ugrótábla Utasítás gyorsítótár Cél 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 egységet használják. Máté: Architektúrák 8. előadás

58 UltraSPARC III csővezetéke
Munka regisztergyűjtő FP regisztergyűjtő J RE C L1 D Utasítás csoportosító Betöltő/tároló, speciális egység J instruction stage grouping, utasítás kiosztó. Az elérhető működési egységektől függően akár 4 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. Máté: Architektúrák 8. előadás

59 UltraSPARC III csővezetéke Utasítás csoportosító Munka regisztergyűjtő
Betöltő/tároló, speciális egység Utasítás csoportosító J RE C Munka regisztergyűjtő FP regisztergyűjtő L1 D 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 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 zárul L1 D elérése. Máté: Architektúrák 8. előadás

60 UltraSPARC III csővezetéke Utasítás csoportosító Munka regisztergyűjtő
Betöltő/tároló, speciális egység Utasítás csoportosító J RE C M W Munka regisztergyűjtő FP regisztergyűjtő L1 D Előjel kiterjesztés, igazítás Előre betöltő gy.tár Miss, hiány. L1 hiány esetén L2-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 egység eredményei a munka regisztergyűjtőbe kerülnek. L2 Máté: Architektúrák 8. előadás

61 Trap, csapda. Ez észleli az egész és FP csapdákat.
UltraSPARC III csővezetéke 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. E C M W X T D FP regisztergyűjtő FP ADD/SUB Grafikus ALU FP MUL/DIV Grafikus MUL Máté: Architektúrák 8. előadás

62 UltraSPARC III csővezetéke Munka regisztergyűjtő
Betöltő/tároló, speciális egység A D 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. RE C M W X T D Munka regisztergyűjtő L1 D L2 Arch. r.gyűjtő Előjel kiterjesztés, igazítás Tárolási sor Tarolási gy.tár Máté: Architektúrák 8. előadás

63 UltraSPARC III csővezetéke Betöltő/tároló, speciális egység
Utasítás csoportosító J RE C M W X T D Munka regisztergyűjtő FP regisztergyűjtő L1 D FP ADD/SUB Grafikus ALU FP MUL/DIV Grafikus MUL L2 Arch. r.gyűjtő Előjel kiterjesztés, igazítás Tárolási sor Tarolási gy.tár Máté: Architektúrák 8. előadás

64 Cél: beépített rendszerekben való alkalmazás.
I-8051 (1980) Cél: beépített rendszerekben való alkalmazás. Fő szempont: olcsóság (ma már ¢), sokoldalú alkalmazhatóság. A memóriával, be- és kivitellel együtt egyetlen lapkára integrált számítógép. 40 multiplexelt lábú standard tokban kerül forgalomba tranzisztor. 4 KB ROM, 128 B RAM, max. 64 KB külső memória. 16 címvezeték. 8 bites adat sín. 32 K/B vonal 4 db 8 bites csoportba rendezve, ezek mindegyike hozzáköthető nyomógombhoz, kapcsolóhoz, LED-hez, … Időzítők. Pl. Rádiós óra: nyomógombok, kapcsolók, kijelző. 59-61, Máté: Architektúrák 8. előadás

65 Az I-8051 logikai lábkiosztása (3.50. ábra)
Address Data RD# olvas a memóriából WR# ír a memóriába Address Latch Enable: külső memória esetén: a sínen érvényes a cím Program Store ENable: olvasás a programot tároló memóriából External Access (az értéke állandó): (1) a címek a belső, (0) a külső memóriára vonatkoznak 16 A D RD# WR# ALE PSEN# EA# Időzítők Megszakítások TXD RXD RST 8051 8 8 Port 0 Port 1 Port 2 Port 3 2 2 2 Φ Táp Máté: Architektúrák 8. előadás

66 Az I-8051 logikai lábkiosztása (3.50. ábra)
16 A D RD# WR# ALE PSEN# EA# Időzítők Megszakítások TXD RXD RST 8051 A két időzítő külső áramkörről kaphat jelet Megszakítások TXD Transmitted Data, továbbított adat RXD Received Data, érkezett adat ReSeT Port (4*8) bites B/K soros vonal 8 8 Port 0 Port 1 Port 2 Port 3 2 2 2 Φ Táp Máté: Architektúrák 8. előadás

67 Az I-8051 CPU mikroarchitektúrája (4.50. ábra) Lokális sín Fő sín ALU
RAM ROM Lokális sín Fő sín RAM ADDR ROM ADDR IR BUFFER SP PC növelő B PC ACC DPTR TMP2 Időzítő 0 TMP1 Időzítő 1 Időzítő 2 ALU Port 0 Az I-8051 CPU mikroarchitektúrája (4.50. ábra) Port 1 Port 2 PSW Port 3 Máté: Architektúrák 8. előadás

68 Az I-8051 CPU mikroarchitektúrája
(4.50. ábra) RAM 128 bájt A regiszterek a RAM-ban vannak RAM ADDRess a RAM címzéséhez Instruction Register Stack Pointer B szorzásnál, osztásnál van szerepe, ideiglenes tárolásra is használható ACCumulator: fő aritmetikai regiszter, a legtöbb számítás eredménye itt keletkezik TMP1 – TMP2 az ALU bemenetei, az eredmény a fő sínről akármelyik regiszterbe kerülhet Program Status Word RAM RAM ADDR IR SP B ACC TMP2 TMP1 Fő sín ALU PSW Máté: Architektúrák 8. előadás

69 ROM 4 KB belső, max. 64 KB külső 16 bites regiszterek: ROM ADDRess
Az I-8051 CPU mikroarchitektúrája (4.50. ábra) ROM 4 KB belső, max. 64 KB külső 16 bites regiszterek: ROM ADDRess BUFFER PC, PC növelő PC-t beírva, majd kiolvasva PC növelődik Időzítő 0 – 2 Port 0 – 3 ROM ROM ADDR BUFFER PC növelő PC DPTR Időzítő 0 Időzítő 1 Port 0 Időzítő 2 Port 1 Port 2 Port 3 Lokális sín Máté: Architektúrák 8. előadás

70 Az I-8051 CPU mikroarchitektúrája (4.50. ábra)
A legtöbb utasítás egy óraciklust igényel. A ciklus hat állapota: Az utasítás a ROM-ból a fősínre és IR-be kerül. Dekódolás, PC növelése. Operandusok előkészítése. Egyik operandus a fősínre, onnan általában TMP1-be, a másik ACC-ből TMP2-be kerül. Az ALU végrehajtja a műveletet. Az ALU kimenete a fősínre kerül, ROM ADDR felkészül a következő utasítás olvasására. Máté: Architektúrák 8. előadás

71 egy CISC utasítás → több RISC mikroutasítás UltraSPARC III RISC gép
Összehasonlítás Pentium 4 CISC gép egy CISC utasítás → több RISC mikroutasítás UltraSPARC III RISC gép I inkább RISC, mint CISC gép picoJava II verem gép, sok memória hivatkozás több CISC utasítás → egy RISC mikroutasítás Máté: Architektúrák 8. előadás

72 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 8. előadás

73 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 8. előadás

74 Mi a többszálúság lényege, haszna?
Feladatok Mi a többszálúság lényege, haszna? Mik a többszálúság megvalósításának feltételei? Hogy érvényesül a RISC elv a Pentium 4 esetén? Mi a szuperskaláris gép lényege? Mit jelent a sorrenden kívüli végrehajtás? Milyen gyorsítótárakat használ a Pentium 4? Jellemezze a Pentium 4 L2 gyorsítótárát! Mire szolgál az előre betöltő? Mit jelent a szimatolás? Hogy működik a Pentium 4 memória sín csővezetéke? Milyen sorrendben dekódolja a Pentium 4 az utasításokat? Mire szolgál a ROM? Máté: Architektúrák 8. előadás

75 Mire szolgál a nyomkövető gyorsítótár?
Feladatok Mire szolgál a nyomkövető gyorsítótár? Milyen elágazás jövendölést használ a Pentium 4? Mire szolgál az L1 BTB? Mire szolgál a nyomkövető BTB? Milyen sorrendben kezdődik az utasítások végrehajtása a Pentium 4-en? Mire szolgál a lefoglaló/átnevező egység? Mire szolgálnak a regiszter gyűjtők? Milyen sorrendben fejeződik be az utasítások végrehajtása a Pentium 4-en? Mi a különbség a Pentium 4 két egész aritmetikájú ALU-ja között? Miért nem tárolható azonnal az eredmény L2-be? Máté: Architektúrák 8. előadás

76 Mit jelent a pontos megszakítás kifejezés?
Feladatok Mit jelent a pontos megszakítás kifejezés? Milyen problémát okozhat a tárolás utáni betöltés? Hogy működik az UltraSPARC III másodlagos gyorsítótára? Mire szolgál az UPA (Ultra Port Architecture)? Mire szolgál az UDB II (UltraSPARC Data Buffer II)? Milyen szervezésű az UltraSPARC III L1 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? Máté: Architektúrák 8. előadás

77 Mire szolgál az UltraSPARC III ugrótáblája?
Feladatok Mire szolgál az UltraSPARC III ugrótáblája? Milyen elágazás jövendölést használ az UltraSPARC III? Mit nevezünk eltolás résnek? Hogy kezeli az UltraSPARC III az eltolás rést? Mire szolgál az utasítás csoportosító egység? Mire szolgál a munka regisztergyűjtő? Mire szolgál az architektúrális regisztergyűjtő? Hány ALU van az UltraSPARC III-ban? 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? Hogy kezeli az UltraSPARC III a függőségeket? Máté: Architektúrák 8. előadás

78 Mi az I-8051 fő alkalmazási területe?
Feladatok Mi az I-8051 fő alkalmazási területe? Nagyságrendileg milyen árú egy I-8051? Jellemezze az I-8051-et! Mi a RAM? Mi a ROM? Hány bites a RAM ADDR regiszter? Hány bites a ROM ADDR regiszter? Mekkora az I-8051 RAM-ja? Mekkora az I-8051 ROM-ja? Hol helyezkednek el az I-8051 regiszterei? Mire szolgál az IR, SP, B, ACC, TMP1-2 regiszter? Mi a PSW? Hogy történik PC növelése? Máté: Architektúrák 8. előadás

79 Milyen és hány be/kimenete van az I-8051-nek?
Feladatok Milyen és hány be/kimenete van az I-8051-nek? Mire használhatók az I-8051 be/kimenetei? Hány időzítője van az I-8051-nak? Mire használhatók az I-8051 időzítői? Mik az I-8051 ALU-jának bemenetei? Milyen állapotai vannak az óraciklusának? Jellemezze a CISC gépeket! Jellemezze a RISC gépeket! CISC vagy RISC gép a Pentium 4? CISC vagy RISC gép az UltraSPARC III? CISC vagy RISC gép az I-8051? Hasonlítsa össze a Pentium 4-et, az UltraSPARC III-at és az I-8051-ez! Máté: Architektúrák 8. előadás


Letölteni ppt "Dinamikus elágazás jövendölés"

Hasonló előadás


Google Hirdetések