Elágazás jövendölés ok 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 esetén a gép tovább futhat a jövendölt ágon, amíg nem ír regiszterbe vagy csak firkáló regiszterekbe ír. a a jóslat bejött, akkor minden rendben, ha nem, akkor sincs baj. Több feltételes egymás után! Máté: rchitektúrák. előadás Dinamikus jövendölés Elágazás előzmények tábla (.. ábra), hasonló jellegű, mint a gyorsító tár. Lehet több utas is! Egy jövendölő bit: mi volt legutóbb, alid ejegyzés N Elágazási cím/tag Elágazás volt/nem volt Máté: rchitektúrák. előadás ét jövendölő bit: mi várható és mi volt legutóbb. alid Jövendölő ejegyzés Elágazási cím/tag bitek N a 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é: rchitektúrák. előadás várható bitet csak akkor írja át, ha egymás után kétszer téves volt a jóslat (.. ábra). nincs Jóslás: nincs Jóslás: nem nincs lesz újabb nincs Jóslás: újra lesz nincs Jóslás: Máté: rchitektúrák. előadás táblázat a legutóbbi célcímet is tartalmazhatja. alid Jövendölő ejegyzés Elágazási cím/tag élcím bitek N a az a jövendölés, hogy lesz, akkor arra számít, hogy a legutóbb tárolt célcímre kell ugrani (ezt persze ellenőrizni kell). Máté: rchitektúrák. előadás Figyeljük, hogy az utolsó k feltételes t végre kellette hajtani. Ez egy k bites számot eredményez, ezt az i előzmények blokkos regiszterében tároljuk. a 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é: rchitektúrák. előadás. előadás
zuperskaláris architektúrák (.. ábra) LU utasítás beolvasó utasítás operandus beolvasó zuperskaláris processzor funkcionális gel LU LOD TORE Lebegőpontos eredmény visszaíró zuperskaláris architektúra esetén a 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 a 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é: rchitektúrák. előadás Máté: rchitektúrák. előadás Függőségek Egy utasítás nem hajtható végre az alábbi esetekben: RW (valódi) függőség (Read fter Write): Onnan akarunk olvasni (operandus), ahova még nem fejeződött be egy korábbi írás. WR függőség (Write fter Read): Olyan regiszterbe szeretnénk írni az eredményt, ahonnan még nem fejeződött be egy korábbi olvasás. WW függőség (Write fter 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 (RW), és nem írhatjuk felül, amit korábbi utasítás olvasni (WR) vagy írni akar (WW). Regiszterenként egyegy 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+). ciklusban kezdődhet, és a következőben fejeződik be, a szorzás csak két ciklussal később. ciklusonként két utasítást tud kiosztani végrehajtásra (a valóságban utasítást). z utasítások indítása és befejezése az eredeti sorrendben történjék! = ciklus, =kiosztás, =befejezés (~.. ábra). Máté: rchitektúrák. előadás Máté: rchitektúrák. előadás R=R*R R=R+R R=R+R R=R+R RW R miatt I csak I után fejeződhet be sak a ciklus végére történik meg a visszaírás Rbe R=R*R R=RR WR R miatt R=R*R RW R miatt R=R+R WR R miatt megjegyzés hiba Máté: rchitektúrák. előadás R=R*R R=R+R RW R miatt WR R miatt Máté: rchitektúrák. előadás. előadás
. előadás Máté: rchitektúrák. 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 (~.. ábra). Máté: rchitektúrák. előadás orrendtől eltérő végrehajtás (kezdés és befejezés) esetén (.. ábra) R=R*R R()=RR R=R+R R=R+R R=R*R R=R+R RW WR: R helyett I megelőzi Iet I nem indulhat RW 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. I R=RR helyett =RR. z segéd regisztert használja R helyett (regiszter átnevezés). z eredményt később átmásolhatja R be, ha R fölszabadult. Máté: rchitektúrák. előadás I eredménye R helyett ben képződik (regiszter átnevezés)! későbbi utasításokban R helyett et kell használni! I RW és WW függőség R miatt (I), RW függőség R () miatt (I), regiszter átnevezés miatt: R=R*R helyett R=R* I WR függőség: Ret I, I olvassa, be I ír (WW) ezért R=R+R helyett =R+R (mostantól R helyett kell). R=R*R R=R+R R=R+R R=R+R R=R*R R()=RR R=R*R() R()=R+R RW WR: R helyett I megelőzi Iet Máté: rchitektúrák. előadás (R=) R=R*R() R()=R+R R=R*R R()=RR R=R+R R=R+R R=R*R R=R+R RW WR: R helyett I megelőzi Iet RW WR Máté: rchitektúrák. előadás (R=) I eredménye a. ciklusban átkerülhet ből Rbe, de jobb, ha a hardver nyilvántartja, hogy hol van. modern PUk gyakran titkos regiszterek tucatjait használják regiszter átnevezésre, hogy ezáltal kiküszöböljék a WR és WW függőségeket. Máté: rchitektúrák. előadás Feltételezett végrehajtás (.. ábra) Páros és páratlan számok köbének összege: evensum = ; oddsum = ; i = ; while(i < limit) { k = i * i * i; if(((i/)*) == i) evensum = evensum + k; else oddsum = oddsum + k; i = i + ; } evensum = ; oddsum = ; i = ; while(i < limit) k = i * i * i; if(((i/)*) == i) evensum = evensum + k; oddsum = oddsum + k; i = i + ; i >= limit igaz hamis
Feltételezett végrehajtás (.. ábra) peculative Execution lap blokk (basic block): lineáris kód sorozat. okszor rövid, nincs elegendő párhuzamosság, hogy hatékonyan kihasználjuk. Emelés: egy utasítás előre hozatala egy on keresztül (lassú műveletek esetén nyerhetünk vele). Pl. evensum és oddsum regiszterbe tölthető az előtt. z egyik LOD természetesen fölösleges. a valamit nem biztos, hogy meg kell csinálni, de nincs más dolga a gépnek, akkor megteheti, de csak firkáló regiszterekbe írhat. a később kiderül, hogy kell, akkor átírja az eredményeket a valódi regiszterekbe, ha nem kell, elfelejti. Máté: rchitektúrák. előadás Feltételezett végrehajtás (peculative Execution) Mellékhatások: fölösleges gyorsító sor csere, PEULTIE_LOD csapda (pl. x= esetén if(x>) z=y/x;), mérgezés bit. Máté: rchitektúrák. előadás Pentium (. november) Felülről kompatibilis az I,, Pentium IIImal..,, M tranzisztor,,, Gz, W, láb (.. ábra), bites gép, bites adat sín. Neturst architektúra. fixpontos LU. Mindkét LU kétszeres órajel sebességgel fut. Többszálúság (hyperthreding): % többlet a lapkán ~ két PU. (a) (b) (c) Többszálúság (hyperthreding,.. ábra) Óraciklus z (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. 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 Máté: rchitektúrák. előadás Máté: rchitektúrák. előadás ín ütemezés érés iba zimatolás álasz dat PRI LO R D REQ Misc R TRDY NR D DRDY DY Egyéb Pentium PU Φ táp REET Megszakítások Energiaellátás őmenedzsment Órajel Diagnosztika Inicializálás Egyéb Pentium logikai lábkiosztása (.. ábra) Máté: rchitektúrák. előadás Pentium logikai lábkiosztása (.. ábra) REET: a PU alapállapotba hozatala, Megszakítások: régi vezérlő, és dvanced Programmable Interrupt ontroller (PI) ülönböző tápfeszültségek, alvási állapotok, Jelzés fölött, Rendszersín frekvenciája, Pentium PU REET Megszakítások Energiaellátás őmenedzsment Órajel Diagnosztika Inicializálás Egyéb Máté: rchitektúrák. előadás. előadás
ín ütemezés PRI LO R D érés REQ iba Misc zimatolás Misc R álasz TRDY NR D DRDY dat DY Egyéb Pentium PU Pentium logikai lábkiosztása (.. ábra) ín ütemezés: PRI: magas, R: normál prioritású igény LO: sín foglalás több ciklusra, érés: : bájtos adat címe ( G címezhető), D: a cím érvényes, REQ: kívánság, álasz: R: státus, TRDY: a szolga tud adatot fogadni, dat: D: bájtos adat, DRDY: az adat a sínen van, DY: a sín foglalt. Máté: rchitektúrák. előadás Pentium Gépi utasítások RI 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. szintű belső gyorsító tár. L: utasítás + nyomkövető tár akár dekódolt mikroutasítás tárolására + adat. L: M, egyesített, utas halmaz kezelésű, késleltetve visszaíró, bájtos gyorsító sor. Előre betöltő. z Extrem Editionban M (közös) L is van. Multiprocesszoros rendszerekhez szimatolás snoop. Máté: rchitektúrák. előadás zimatolás snoop a minden processzornak saját írás áteresztő gyorsító tára van (.. ábra) Esemény aját gyorsító tár Többi gyorsító tár Olvasás hiány Olvasás találat Olvasás a gyorsító tárból Írás hiány Írás a memóriába Írás találat Olvasás a memóriából Írás a gyorsító tárba és a memóriába a az írandó szó a gyorsító tárban van, akkor érvényteleníti a gyorsító tár bejegyzést Pentium esetén bonyolultabb a helyzet a késleltetve visszaíró L miatt (ázi feladat). Máté: rchitektúrák. előadás Pentium memória sín memóriaigények, tranzakciók állapota: 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):. ín ütemezés (kiosztás, bus arbitration): eldől, hogy melyik sínmester következik,. érés: cím a sínre, kérés indítása,. ibajelzés: a szolga hibát jelez(het),. zimatolás: a másik PU gyorsító tárában,. álasz: kész lesze az adat a következő ciklusban,. dat: megvan az adat. Máté: rchitektúrák. előadás Φ: tranzakció Pentium memória sín csővezetéke (.. ábra) T T T T T Máté: rchitektúrák. előadás T T T T T T T Ütemezés (nem ábrázoltuk), csak akkor kell, ha másé a sín. : kérés, : hiba, : szimatolás, : válasz, : adat Memória sínhez Memória alrendszer Rendszerinterfész etöltő Pentium mikroarchitektúrája L D+I égrehajtó L D Egész és lebegőpontos végrehajtó Ütemezők efejező emeneti rész orrenden kívüliség vezérlő.. ábra. Pentium blokkdiagramja Máté: rchitektúrák. előadás. előadás
.. ábra. Pentium memória alrendszere Memória sínhez Memória alrendszer Rendszerinterfész L D+I L az első, a második, M a harmadik generációs Pentium ben. L utas halmaz kezelésű, késleltetve visszaíró bájtos gyorsító sor, minden második ciklusban kezdődhet egy bájtos feltöltés a memóriából. Előre betöltő: megpróbálja Lbe tölteni azt a gyorsító sort, amelyre majd szükség lesz (nincs az ábrán). Máté: rchitektúrák. előadás.. ábra. Pentium bemeneti rész Lből betölti és dekódolja a programnak megfelelő sorrendben az utasításokat. z utasításokat RI szerű mikroműveletek sorozatára bontja. a több, mint mikroművelet szükséges, akkor ra etöltő L D+I emeneti rész történik utalás. dekódolt mikroműveletek a be kerülnek (nem kell újra dekódolni). Elágazás jövendölés. Máté: rchitektúrák. előadás bemeneti rész az utasításokat Lből kapja. Ezeket dekódolja, RI szerű mikroműveletekre bontja, a nyomkövető gyorsító tárban tárolja (akár mikroműveletet) a programnak megfelelő sorrendben. mikroműveletet csoportosít minden nyomkövető sorban. Feltételes nál az utolsó t tartalmazó L Tből (ranch Target uffer i cél puffer) kikeresi a jövendölt címet, és onnan folytatja a dekódolást. a az nem szerepel L Tben, akkor statikus jövendölés történik: visszafelé ugrást végre kell hajtani, előre ugrást nem. Máté: rchitektúrák. előadás.. ábra. orrenden kívüliség vezérlő z 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. emeneti rész Ütemezők efejező orrenden kívüliség vezérlő Máté: rchitektúrák. előadás Memória sínhez Memória alrendszer Rendszerinterfész etöltő Pentium mikroarchitektúrája L D+I égrehajtó L D Egész és lebegőpontos végrehajtó Ütemezők efejező emeneti rész orrenden kívüliség vezérlő.. ábra. Pentium blokkdiagramja Máté: rchitektúrák. előadás Mit nevezünk jövendölésnek? Milyen dinamikus jövendöléseket ismer? Milyen statikus jövendöléseket ismer? Mi az eltolási rés (delay slot)? ogy működik az eltolási rés szempontjából a Pentium és az UltraPR? 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é: rchitektúrák. előadás. előadás
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 PEULTIE_LOD 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? ogy érvényesül a RI 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? Máté: rchitektúrák. előadás Máté: rchitektúrák. előadás Mire szolgál a nyomkövető gyorsítótár? Milyen jövendölést használ a Pentium? Mire szolgál az L T? Mire szolgál a nyomkövető T? Milyen sorrendben kezdődik az utasítások végrehajtása a Pentium en? z előadáshoz kapcsolódó Fontosabb tételek orrendtől eltérő végrehajtás, szuperskaláris architektúra, függőségek, regiszter átnevezés Feltételezett végrehajtás Pentium processzor, a Pentium mikroarchitektúrája Máté: rchitektúrák. előadás Máté: rchitektúrák. előadás. előadás