Informatika | Számítógép-architektúrák » Nagy-Pozsonyi - Számítógép architektúrák II.

Alapadatok

Év, oldalszám:1998, 39 oldal

Nyelv:magyar

Letöltések száma:808

Feltöltve:2004. június 08.

Méret:408 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!


Tartalmi kivonat

Számítógép architektúrák vizsgakérdések 1998. II félév Számítógép architektúrák, Vizsgakérdések II. Félév Nagy Tamás és Pozsonyi László Köszönet a felhasznált jegyzetek készítőinek!1 Vizsgakérdések Szótár . 5 Bevezetés az ILP-processzorokba . 5 1. A párhuzamos utasítás végrehajtás és kibocsátás szempontjából mi volt jellemző a Neumann processzorok fejlődésére? (OK) . 5 2. Miben tér el a futószalag, a VLIW és a szuperskalár processzorok működési elve? (OK) 5 3. Miért volt törvényszerű, hogy a VLIW processzorok megjelenése megelőzte a szuperskalár processzorokat? (OK) . 5 4. A VLIW és a szuperskalár processzorok közös jellemzői (OK) 5 5. Miben térnek el egymástól alapvetően a VLIW és szuperskalár processzorok? (OK) 5 6. A szuperskalár processzorok működési elve (OK) 6 7. Az ILP-végrehajtás teljesítmény határa (OK) 6 8. Függőségek típusainak áttekintése (OK) 6 9. Az adatfüggőség fogalma

(OK) 6 10. Adjon áttekintés az adatfüggőség főbb fajtáiról! (OK) 7 11. RAW függőség fogalma (OK) 7 12. RAW függőség fajtái (OK) 7 13. WAR függőség fogalma (OK) 7 14. WAW függőség fogalma (OK) 7 15. A valódi és hamis függőség fogalma (OK) 8 16. A hamis függőségek megszüntetésének elve, példák ennek alkalmazására (OK) 8 17. Az elérhető párhuzamosság tekintetében mennyire jelentenek éles korlátot a valódi adatfüggőségek korszerű ILP processzoroknál (OK) . 8 18. Rekurrencia fogalma (OK) 8 19. Mit értünk elsőrendű rekurrencia alatt? (OK) 8 20. Az adatfüggőség gráf (data dependence graph) fogalma, alkalmazása (OK) 8 21. Vezérlésfüggőség fogalma (OK) 8 1 Habó Zoltán, ifj. Hodosi Sándor, Dr Sima Dezső, Szabó Zsolt, Szász Péter 1/39 Számítógép architektúrák vizsgakérdések 1998. II félév 22. Feltétlen és feltételes elágazások dinamikus gyakorisága általános célú, ill műszaki/tudományos

programokban (OK) . 9 23. A növekvő mértékű utasításszintű párhuzamos végrehajtást mennyiben korlátozzák az elágazások? (OK) 9 24. A vezérlésfüggőség gráf (control dependence graph) fogalma (OK) 9 25. Milyen eljárással csökkenthető a vezérlésfüggőségek teljesítmény korlátozó hatása? (OK) 9 26. A spekulatív elágazáskezelés elve (OK) 9 27. Miért általános gyakorlat dinamikusan ütemezett ILP processzorok esetén is a párhuzamos optimalizációt végrehajtó fordítók használata? (OK). 10 28. Milyen mérvű gyorsulás várható el ILP-végrehajtásnál alapblokkon belüli ütemezés esetén? (OK) 10 29. A párhuzamos végrehajtás lehetséges forrásai ILP-processzoroknál (OK) 10 30. Milyen mérvű gyorsulás várható el ILP-végrehajtásnál valós, de igényes rendszereknél? (OK) 10 Szuperskalár architektúrák megjelenése, elterjedése . 10 31. A szuperskalár utasítás-kibocsátás ötletének, elnevezésének eredete (OK) 10

32. Adjon áttekintést a fontosabb kísérleti szuperskalár implementációkról (OK) 10 33. Mikor jelentek meg és melyek voltak az első kommersz szuperskalár RISC és CISC processzorok? (OK) 10 34. Mi indokolta a szuperskalár CISC processzorok későbbi megjelenését a szuperskalár RISC-hez képest? (OK) 11 35. Alapvetően mely két csoportba sorolhatók a megjelent szuperskalár RISC processzorok? (OK) 11 36. Mi jellemezte a szuperskalár processzorok elterjedését? (OK) 11 Szuperskalár processzorok tervezési tere . 11 37. Adja meg a szuperskalár processzorok tervezési terének főbb komponenseit! (OK) 11 Elődekódolás . 12 38. Miért jelent a dekódolás szuperskalár processzorokban lényegesen komplexebb feladatot, mint skalár processzorokban? (OK) . 12 Elődekódolás . 12 39. Az elődekódolás elve (OK) 12 40. Az elődekódoláshoz használt többletbitek közelítő száma és felhasználása (OK) 13 41. Mikor jelentek meg elődekódolást használó

szuperskalár processzorok? (OK) 13 42. Nevezzen meg néhány példát! (OK) 13 Szuperskalár kibocsátás . 14 43. A szuperskalár utasítás kibocsátás tervezési terének fő komponensei (OK) 14 44. A kibocsátási blokkolások kezelésének tervezési tere (OK) 15 45. Milyen lehet a szuperskalár processzorok utasítás kibocsátási sorrendje? (OK) 15 46. Milyen utasítás kibocsátási sorrendet használ a legtöbb szuperskalár processzor? Miért? (OK) 15 47. A szuperskalár utasítás kibocsátásnál használt illesztési eljárások (OK) 16 48. Milyen illesztési eljárásokat használnak a szuperskalár processzorok utasítás kibocsátáskor? Miért? (OK) 17 49. Nevezze meg a skalár processzoroknál használatos két legfontosabb utasítás kibocsátási politikát! Adjon néhány példát! (OK) . 18 50. Nevezze meg a szuperskalár processzoroknál használatos három legfontosabb utasítás kibocsátási politikát! Adjon néhány példát! (OK) . 18 51. A

szuperskalár utasítás kibocsátás multiplicitásának fejlődése (OK) 18 52. Az “issue rate” ill a “dispatch rate” értelmezése szuperskalár processzorokban A két jellemző közül tipikusan melyik értéke nagyobb? Miért? (OK) . 19 Utasítás várakoztatás (shelving) . 19 53. Az utasítás várakoztatás (shelving) célja és elve (OK) 20 54. Az "instruction issue" és "instruction dispatch" értelmezése utasítás várakoztatásnál (OK) 20 2/39 Számítógép architektúrák vizsgakérdések 1998. II félév 55. Mire redukálódik az utasítás függőség vizsgálat, ha az utasítás várakoztatást együtt alkalmazzák a spekulatív végrehajtással és a regiszter átnevezéssel? (OK). 20 56. Az utasítás várakoztatás tervezési tere (OK) 20 57. Mire terjedhet ki az utasítás várakoztatás (scope of shelving)? Itt milyen trend érvényesül? (OK) 20 58. Az utasítás várakoztatáshoz használt puffertárak tervezési tere

(OK) 21 59. Utasítás várakoztató pufferek (shelving buffers) típusai (OK) 21 60. Hogyan valósították meg az utasítás várakoztató puffereket (shelving buffers) a Power PC családnál, a POWER 2-ben, R10000-ben, illetve a PentiumPro-ban? (OK) . 22 61. Jellemzően milyen kapacitásúak az utasítás várakoztató pufferek (shelving buffers)? (OK) 22 62. Milyen operandus lehívási politikákat használnak utasítás várakoztatásnál (shelving) ? (OK) 23 63. Az utasítás várakoztatás működése kibocsátáshoz kötött operandus lehívás esetén (OK) 23 64. Az utasítás várakoztatás működése kiküldéshez kötött operandus lehívás esetén (OK) 23 65. Várakoztató pufferek frissítése kibocsátáshoz kötött operandus lehívás esetén (OK) 23 66. Milyen operandus lehívási politikát használnak a Power PC és a Power család processzorai ill a Pentium Pro (P6) ? (OK) . 23 67. Hasonlítsa össze a két lehetséges operandus lehívási politika

előnyeit és hátrányait! (OK) 24 1. Regiszter file-ok jellemző megvalósítása utasítás várakoztatásnál (OK) 24 69. Adjon áttekintést az utasítás várakoztató (shelving) pufferek legfontosabb megvalósítási lehetőségeiről! (OK) 24 70. Milyen okok korlátozhatják az utasítás kibocsátást utasítás várakoztatás (shelving) esetén? (OK) 25 71. Az utasítás kiküldés (instruction dispatch) tervezési tere (OK) 25 72. Milyen főbb komponensekből áll az utasítás kiküldési politika (dispatch policy)? (OK) 25 73. Az utasítás kiküldési sorrend (dispatch order) lehetséges megvalósítási alternatívái és trendje (OK) 25 74. Milyen utasítás kiküldési sorrendet (dispatch order) alkalmaznak a Power PC család tagjai, az R10000 és a Pentium Pro (P6)? (OK) . 26 75. Leginkább milyen kiküldési politikákat alkalmaznak a szuperskalár processzorokban? (OK) 26 76. Hány utasítás kiküldése jellemző (multiplicity of dispatched instruction) az

utasítás várakoztató pufferek (shelving buffers) megvalósítási alternatíváinál? . 26 77. Milyen eltérő módokon kezelhető egy üres várakoztató puffer (shelving buffer, reservation station)? (OK) 27 78. Milyen eljárással állapítható meg a forrás operandusok jelenléte utasítás várakoztatás (shelving) esetén? (OK) 27 79. A PowerPC 604 processzor szuperskalár működésének főbb jellemzői (OK) 28 Regiszter átnevezés . 29 80. Regiszter átnevezés megvalósítási elve utasítás várakoztatást és kibocsájtáshoz kötött operandus lehívást feltételezve . 29 81. Regiszter átnevezés főbb feladatai utasítás várakoztatás és kibocsátáshoz kötött operandus lehívást feltételezve . 29 82. Regiszter átnevezés megvalósítási elve utasítás várakoztatás és kibocsájtáshoz kötött operandus lehívást feltételezve . 30 83. Regiszter átnevezés főbb feladatai utasítás várakoztatás és kiküldéshez kötött operandus lehívás

esetén 30 84. Operandus lehívás elve utasítás várakoztatás és regiszter átnevezés esetén, kibocsátáshoz, ill Kiküldéshez kötött operandus lehívás esetén . 30 85. Eredmények kezelésének elve regiszter átnevezés esetén 30 86. A statikus és dinamikus regiszter átnevezés értelmezése, gyakorlata 31 87. A regiszter átnevezés tervezési tere 31 88. Mire terjedhet ki a regiszter átnevezés (scope)? 32 89. Leggyakrabban használt átnevezési eljárások 32 3/39 Számítógép architektúrák vizsgakérdések 1998. II félév 90. Milyen átnevezési eljárást használ az R10000 és a PowerPC család? 32 91. Átnevező regiszterek megvalósítási alternatívái 32 A szekvenciális konzisztencia biztosítása . 32 92. Milyen szempontokra terjed ki a szuperskalár processzorok utasítás végrehajtásának szekvenciális konzisztenciája?. 33 93. A szuperskalár processzorok konzisztenciájának lehetséges alternatívái, trendje 33 94. Milyen

eljárással biztosítható az erős processzor konzisztencia? 33 95. Szuperskalár processzorok memória konzisztenciájának lehetséges alternatívái, trendje? 34 96. Az utasítás végrehajtás konzisztencia modelljei, melyik modell került előtérbe a korszerű szuperskalár processzorokban? . 34 Szuperskalár processzorok megvalósítása . 34 97. Szuperskalár CISC processzorok megvalósításának elve szuperskalár RISC maggal 34 98. CISC utasítások konvertálása RISC utasíásokká a Pentium Pro-ban 35 99. Szuperskalár CISC processzorok megvalósításának fontosabb elemi RISC maggal 35 100. Mely szempontok befolyásolják alapvetően a szuperskalár processzorok mikroarchitektúrájának felépítését? 35 101. Adjon áttekintést a szuperskalár processzorok mikroarchitektúrájának alternatíváiról (rajz alapján)! 35 102. A PowerPC 620 felépítése, működése (rajz alapján)! 36 103. Az R10000 felépítése, működése (rajz alapján)! 37 104. A

Pentium Pro felépítése, működése (rajz alapján)! 38 4/39 Számítógép architektúrák vizsgakérdések 1998. II félév Szótár Utasítás kibocsátás Issue Utasítás kiküldés Dispatch Regiszter átnevezés Register renaming Elődekódolás Predecoding Utasítás várakoztatás Shelving Bevezetés az ILP-processzorokba 1. A párhuzamos utasítás végrehajtás és kibocsátás szempontjából mi volt jellemző a Neumann processzorok fejlődésére? (OK) Traditional von Neumann processor Scalar ILP processor SuperScalar ILP processor Utasítás végrehajtás Serial Parallel Parallel Utasítás kibocsátás serial serial Parallel Fejlődési irányok: • Órajelfrekvencia növelése • Funkcionális fejlesztés: párhuzamosság növelése (kibocsátás, végrehajtás) Jelenleg 4-6 utasítás lehívás/kibocsátás a jellemző. 2. Miben tér el a futószalag, a VLIW és a szuperskalár processzorok működési elve? (OK) A pipeline-nál a

párhuzamosságot a művelet részfunkciókra bontásával érik el, minden részművelet-végző egységből csak egy van, a feladatok szekvenciálisan hajtódnak végre. Ezzel szemben a VLIW-eknél és a szuperskalár processzoroknál multiplikálással valósul meg a ||-ság, több végrehajtóegység működik időben egyszerre. A futószalag részei: Fetch, Decode, Execution, Write-back 3. Miért volt törvényszerű, hogy a VLIW processzorok megjelenése megelőzte a szuperskalár processzorokat? (OK) Azért, mert ez az architektúra függőségmentes utasítás sort vár (a függőséget a fordító programok szintjén oldják fel), így a hardware rész nyilvánvalóan egyszerűbb a szuperskalároknál, ahol a függőségek kezelését processzor valósítja meg. 4. A VLIW és a szuperskalár processzorok közös jellemzői (OK) Alapelvük közös, az utasítás végrehajtás párhuzamosságát mindkét esetben multiplikálással, a végrehajtó egységek

megtöbbszörözésével érik el. 5. Miben térnek el egymástól alapvetően a VLIW és szuperskalár processzorok? (OK) Két fő eltérés van a VLIW-ek és szuperskalár processzorok között. Az utasítás formálás/ellátás (): Szuperskalároknál az egymás után jövő hagyományos utasításokat a dekódoló egység párhuzamosítja valamilyen módon. 5/39 Számítógép architektúrák vizsgakérdések 1998. II félév VLIW-eknél multiop. utasítások, ahol az utasítás hosszát két tényező befolyásolja, a rendelkezésre álló EU-k (Execution Unit) száma, illetve a vezérlésükhöz szükséges bitek száma. Egy-egy utasítás e kettő szorzatából adódik : 5-30 EU × 16-32 bit = 1 Kbit hosszú utasításszavak jöhetnek létre, ahogy a nevük is jelzi : Very Large Instruction Word. Az utasítások ütemezése (schedulding) : Szuperskalároknál a függőség feloldás hardware-beli megoldása miatt sokkal bonyolultabb. VLIW-eknél az egyetlen

utasításszón belül megkövetelt függőség mentesség miatt ez statikus, egyszerű. A VLIW-ek tehát egyszerűbb HW felépítésűek, magasabb órajelfrekvencia érhető el velük. Azonos órajelfrekvencia mellett is gyorsabb utasítás feldolgozást eredményeznek, ugyanakkor az ezt lehetővé tévő compilerek sokkal bonyolultabbak. Az utasítások szintaktikáján és szemantikáján kívül az alattuk fekvő HW tulajdonságaira is érzékenyek (ugyanaz a fordító nem használható két eltérő gépen; assemblyben is csak nagyon komplexen lehet programozni őket). 6. A szuperskalár processzorok működési elve (OK) Icache I-buffer Issue window Decode/ dependence check/ issue EU EU Dependence free instructions are issued directly to the execution units. (EUs) EU A processzor egy utasítás sort kezel. Több végrehajtó egységgel rendelkezik a processzor, amelyek párhuzamosan dolgoznak A program állapotát szekvenciálisan konzisztensé teszik. 7. Az

ILP-végrehajtás teljesítmény határa (OK) Az ILP végrehajtásnál a három fajta : adat, vezérlés és erőforrás függőség jelenti a teljesítmény korlátokat. Az erőforrás függőséget több erőforrás hozzárendelésével lehet feloldani v. csökkenteni, de a másik kettőt teljesen nem lehet megszüntetni A párhuzamosítási lehetőség: • Alapblokkon belül: általános (2-3x), tudományos (2-4x) • Spekulatív elágazás kezeléssel: általános (4-6x), tudományos (10-20x) 8. Függőségek típusainak áttekintése (OK) Két függőség létezik: • Adatfüggőség (data dependency) • Vezérlésfüggőség (control dependency) 9. Az adatfüggőség fogalma (OK) Egy utasítás egy előző utasítás eredményét használja fel. 6/39 Számítógép architektúrák vizsgakérdések 1998. II félév 10. Adjon áttekintés az adatfüggőség főbb fajtáiról! (OK) Data dependence Involved data Kind RAW/WAR/WAW dependences Recurrences in a

loop-free code seqment between subsequent instructions in a loop between instructions belonging to subsequent iterations Register data Memory data (5.24) Az adatok jellege szerint : regiszterben v. memóriában lévő adat A függőség típusa szerint : szekvenciális utasítássorban egymást követő utasítások között RAW, WAR, WAW 11. RAW függőség fogalma (OK) Read After Write; csak az adat előállítása után lehet olvasni (flow dependence); valódi függőség, kezelése bypassing-el történik. ADD R1, R2, R3 SUB R4, R1, R5 Bypassing: az EU kimenete vissza van csatolva az EU bemenetére 12. RAW függőség fajtái (OK) Műveleti és lehívási függőség. A műveleti függőség: lásd 11. pont A lehívási függőség: a memóriából kell beolvasni egy regiszterbe. On-chip (1-3 ciklus késés ) és off-chip (5-10 késés) cache megoldások 13. WAR függőség fogalma (OK) Hamis adatfüggőség (anti dependence); Write after Read, Regiszter átnevezéssel

kiküszöbölhető. ADD R1, R2, R3 SUB R2, R4, R5 14. WAW függőség fogalma (OK) Hamis adatfüggőség, (output dependence), Write After Write; Regiszter átnevezéssel kiküszöbölhető. ADD R1, R2, R3 SUB R1, R4, R5 7/39 Számítógép architektúrák vizsgakérdések 1998. II félév 15. A valódi és hamis függőség fogalma (OK) Valódi adatfüggőség: ki kell várni, amíg a szükséges adat elkészül. Hamis adatfüggőség: csak az ugyanarra a tárolóhelyre hivatkozás miatti függőség, regiszter átnevezéssel (renaming) megszüntethető. 16. A hamis függőségek megszüntetésének elve, példák ennek alkalmazására (OK) Regiszter átnevezés: ha egy éppen foglalt tároló helyre lenne szükség, akkor nem azt használjuk fel, hanem egy éppen szabadot, de ilyenkor minden további az átnevezett helyre hivatkozást is át kell nevezni. ADD R1, R2, R3 ; WAW-függőség SUB R1, R4, R5 ; R1 -> R33 (a további R1 hivatkozások helyett R33-t fog használni)

17. Az elérhető párhuzamosság tekintetében mennyire jelentenek éles korlátot a valódi adatfüggőségek korszerű ILP processzoroknál (OK) Az egyszerű utasítások nem, mert csak 1 buborék keletkezik, a bonyolult utasítások esetén jelentős teljesítmény csökkenés (n*10 óraciklus mértékben). 18. Rekurrencia fogalma (OK) Rekurrenciának nevezzük, ha az egymást követő ciklusokban a ciklusok között adatfüggőség lép fel. Egyszerűbben : ha a ciklus valamelyik előző ciklus végeredményét használja fel. (NEM gépi ciklusról van szó!) 19. Mit értünk elsőrendű rekurrencia alatt? (OK) Ha a ciklus az őt közvetlenül megelőző ciklus eredményét használja fel, akkor elsőrendű rekurrenciáról beszélünk. xi = f ( xi −1 ) 20. Az adatfüggőség gráf (data dependence graph) fogalma, alkalmazása (OK) A gráf csomópontjai az utasítások, az irányított élek pedig az él 2 végpontján lévő utasítások közti adatfüggőséget ábrázolja.

i1 i2 δt δt i3 δo i4 δo i1 : load r1, a; i2: load r2, b; i3: add r3, r1, r2; i 4: mul r1, r2, r4; i5: div r1, r2, r4; i5 A nyilak a végrehajtás irányát jelzik, a sigma indexe a függőség típusát (f-flow, a-anti, o-output) 21. Vezérlésfüggőség fogalma (OK) Elágazáskor a processzor (ugrás esetén) nem az elágazás utasítás utáni utasítást olvassa be, dekódolja, stb. hanem az ugrás címén találhatót. Ehhez feltétlen ugrásnál is címet kell számítani, feltételes ugrás esetén pedig feltétel vizsgálatot is kell végezni Mindez időbe telik és addig az egységek nem tudnak dolgozni (úgynevezett buborék keletkezik). Tehát itt is függ a feldolgozás az előző (elágazás) utasítástól. 8/39 Számítógép architektúrák vizsgakérdések 1998. II félév 22. Feltétlen és feltételes elágazások dinamikus gyakorisága általános célú, ill műszaki/tudományos programokban (OK) Az általános célú programokban az elágazások

egymástól való távolsága átlag 4 és 5 közé esik (tehát az alapblokk hossza 4-5). Az elágazások 80%-a feltételes elágazás, a maradék 20% feltétlen. A tudományos/műszaki programokban az elágazások 9-10 utasítás távolságnyira találhatók egymástól (alapblokkk hossza 9-10). Itt az elágazások 75%-a feltételes. 23. A növekvő mértékű utasításszintű párhuzamos végrehajtást mennyiben korlátozzák az elágazások? (OK) Általános célú programokban az elágazások távolsága kb. 5 utasítás Ha a futószalag feltöltődött, akkor ciklusonként 1 utasítást hajt végre, tehát ez 5 ciklus ideig tart. Viszont ugrás esetén az ugrás lehívása (Fetch) után a dekódoláskor (Decode) már tudja, nem biztos, hogy a következő utasítást kell lehívni, tehát leállítja a lehívást (1. buborék) Viszont a következő ciklus elején (Execute) még mindig nem tudja, hogy mi az ugrás címe és hogy kell-e ugrani. Ezért még ekkor sem hívhatja le (2

buborék) Csak a 3 ciklusban lehet újraindítani az egységeket, ezáltal 2 buborék (2 üres ciklus) csúszott be. Ha 5 helyett 7 ciklus ideig tart az alapblokk feldolgozása és ez ellen nem teszünk semmit, akkor kb.30% teljesítmény csökkenést szenvedünk 24. A vezérlésfüggőség gráf (control dependence graph) fogalma (OK) Az irányított gráf csomópontjai az utasítások. A gráf élei a program lehetséges menetét jelzik Az éleken megjelenő T és F betűk az ugrás ill. nem ugrás tényét jelölik A csomópontból 1-nél több kimenő él jelöli, ha az elágazás i0 i0: i1 : i2: i3: i 4: i5: i6: i7: i8: r1 = op1; r2 = op2; r3 = op3; if (r2 > r1) { if (r3 > r1) r4 = r3; else r4 = r1} else r4 = r2; r5 = r4 * r4 i1 i2 i3 F T i4 T i5 F i6 i7 T F i8 25. Milyen eljárással csökkenthető a vezérlésfüggőségek teljesítmény korlátozó hatása? (OK) Spekulatív elágazás kezelés: Az ugrás végeredményét (ugrik/nem ugrik) meg kell jósolni.

Minél pontosabb a jóslás, annál kevesebb a vezérlésfüggőség által okozott teljesítmény csökkenés. (Másik lehetséges eljárás: mindkét lehetőséget fel kell dolgozni, amíg ki nem derül, melyik a jó, akkor a másikat el kell dobni.) 26. A spekulatív elágazáskezelés elve (OK) Feltételes elágazásoknál becslés történik, hogy lesz-e ugrás vagy sem. Ennek megfelelően történik a végrehajtás, majd a végén ellenőrzés, hogy helyes volt-e a becslés. Igen-megerősítés, nem-visszalépés Két alapvető lehetőség van a spekulatív elágazáskezelésre: a statikus és a dinamikus módszer. A statikus módszer: az ugrás előjelét vizsgálva vonja le a következtetést. Ha az ugrás előjele pozitív (előre ugrik), akkor várhatóan nem lesz ugrás, ha az ugrás előjele negatív (visszafelé ugrik), akkor várhatóan lesz ugrás. A dinamikus módszer: 2 bites, telített számlálót tart fenn minden ugrásra. 00: várhatóan nem fog ugrani (ugrás

esetén 01, nem ugráskor 00 az új állapot) 9/39 Számítógép architektúrák vizsgakérdések 1998. II félév 01: várhatóan nem fog ugrani (ugrás esetén 10, nem ugráskor 00 az új állapot) 10: várhatóan ugrani fog (ugrás esetén 11, nem ugráskor 01 az új állapot) 11: várhatóan ugrani fog (ugrás esetén 11, nem ugráskor 10 az új állapot) 27. Miért általános gyakorlat dinamikusan ütemezett ILP processzorok esetén is a párhuzamos optimalizációt végrehajtó fordítók használata? (OK) Mert a szuperskalár rendszerek felerősítik az ugrások/elágazások negatív hatásait. Tfh A feltételes elágazások egy skalár rendszerben egyenletesen oszlanak el: csak minden 6. Ciklusban okoznak problémát 2x, 3x, 6x-an párhuzamos szuperskalár rendszerekben, ugyanekkor minden 3. , 2 ill minden ciklusban problémásak Ennek minimalizálására használják a fordításkori párhuzamos optimalizációt. 28. Milyen mérvű gyorsulás várható el

ILP-végrehajtásnál alapblokkon belüli ütemezés esetén? (OK) Általános célú programok esetén kétszeres gyorsulás várható el, míg tudományos/műszaki programoknál 2-4-szeres gyorsítás is elérhető. Ez abból következik, hogy az általános célú programok 5 utasítás hosszú alapblokkjaiban kb. 2-3 utasítás található, amely a többivel párhuzamosan elvégezhető, míg a tudományos programok 10 utasítás hosszú alapblokkjaiban sokkal több párhuzamosítható műveletet lehet felfedezni. 29. A párhuzamos végrehajtás lehetséges forrásai ILP-processzoroknál (OK) A ciklusok egymás utáni végrehajtása igen sok ideig tart, azonban ha esetleg több processzorral a ciklusokat egy időben végezzük el, akkor hatalmas teljesítmény növekedést nyerünk. A másik lehetőség, ha tökéletes (100%-os) jóslást sikerülne bevezetni 30. Milyen mérvű gyorsulás várható el ILP-végrehajtásnál valós, de igényes rendszereknél? (OK) Ha reálisan

vizsgáljuk a lehetőségeket, akkor a mai rendszereknél az utasítás ablak (a várakoztató pufferek száma) kb.60 2 bites jóslást alkalmazva, 6-8 processzor teljesítményét lehet kiaknázni. Ennél többnek nincs értelme Ez már súrolja az utasítás szint határait, ezért érdemes továbblépni a fonál szintre (már kutatják). Szuperskalár architektúrák megjelenése, elterjedése 31. A szuperskalár utasítás-kibocsátás ötletének, elnevezésének eredete (OK) A Neumann-architektúrák teljesítményének növelésére a ’60-as évek második felében megjelent a párhuzmaos utasítás végrehajtás ill. pipeline. A párhuzamosan működő végrehajtó egységek “táplálására” azonban már nem volt elég a szekvenciális kibocsátás, ezért jöttek létre a szuperskalár rendszerek, amelyek 1 óraciklus alatt több utasítás kibocsátására is képesek. Az elvet először 1970-ben Tjaden és Flynn alkotta meg, amelyet a 80-as években újragondoltak

(Torng 1982, Acosta & al. 1986) A szuperskalár elnevezést egy IBM technical report-ban látott napvilágot 1987-ben (SuperScalar kísérlet). 32. Adjon áttekintést a fontosabb kísérleti szuperskalár implementációkról (OK) Az IBM hatalmas előnyt és tapasztalatot szerzett azzal, hogy 1982-ben a Cheetah projectet, majd 1985-ben az America projectet útjára indította. A Cheetah szolgált az America alapjául, amelyből később a Power1 és az RS/6000-es nőtte ki magát A DEC volt a második, aki a szuperskalár architektúrával kísérletezett, 1985-ben a Multititan projectben. Az azóta ismertté vált α sorozat azonban nem ebből született, hanem egy későbbi, teljesen új, 1988-as RISCy VAX kódnevű projectből. Két további korai kísérlet volt felfedezhető 1988-89 környékén, a Stanford University és a japán Kyushu University projectjei. 33. Mikor jelentek meg és melyek voltak az első kommersz szuperskalár RISC és CISC processzorok? (OK) Az első

kommersz szuperskalár RISC processzor az Intel960CA volt, amely 1989-ben jelent meg. További képviselői az első RISC-eknek: MC 88000, HP PA (Precision Architecture), Sun Sparc, MIPS R, AM 29000, DEC α sorozat, RS/6000, Power1, PowerPC család. 10/39 Számítógép architektúrák vizsgakérdések 1998. II félév A MC 68060 és a Pentium a CISC processzorok első képviselői 1993-tól elérhetőek. A Pentium-ot klónjai követték (K5, K6, M1, M2 ) 34. Mi indokolta a szuperskalár CISC processzorok későbbi megjelenését a szuperskalár RISC-hez képest? (OK) A CISC magasabb komplexitásának köszönhetően több oka is volt későbbi megjelenésének. Az első ok, hogy a RISC load-store archihtektúrájához képest egy bonyolultabb CISC memória architektúrát kellett létrehozni. A másik, hogy a a RISC fix utasításhosszához képest a CISC utasítások hossza változó. 35. Alapvetően mely két csoportba sorolhatók a megjelent szuperskalár RISC processzorok?

(OK) Az első csoportban a már meglévő skalár RISC-et konvertálták szuperskalár processzorrá. Ennek képviselői : Intel 960, MC 88000, HP PA (Precision Architecture), Sun Sparc, MIPS R, AM 29000. A második csoport egy teljesen új, szuperskalár családot fejlesztett ki. Például az IBM RS/6000-ese (később Power 1) volt az egyik Követői : DEC α család, a PowerPC család az Apple-től, az IBM-től és a Motorolától. 36. Mi jellemezte a szuperskalár processzorok elterjedését? (OK) A szuperskalár processzorok széleskörű elterjedése viszonylag hosszú ideig tartott, amit három egymás utáni fázisra bonthatjuk fel. Az első fázisban maga a kiinduló elképzelés született meg, majd kísérleti, prototípus példányok készültek, végül a kommersz rendszerek megjelenése. Elsőnek az IBM készített prototípus gépeket (Cheetah és America project), majd a DEC (Multititan project) Az első kommersz, piaci forgalomban megjelenő szuperskalár processzor az

Intel 960 (1989-ben). Ezután lassan minden gyártónak szuperskalár technológiát kellett alkalmaznia, hogy saját termékeinek teljesítményét növelje. A szuperskalár kibocsátás egyértelműen a RISC processzorok körében jelent meg először. A RISC processzorok esetében a gyártók vagy meglévő skalár RISC processzoraikat változtatták szuperskalárrá (i960, HP PA, MC88k, Sun SPARC, MIPS Rxxx), vagy egy teljesen új szuperskalár architektúrával álltak elő (RS/6000, DEC Alpha, PowerPC). Nagyobb komplexitásuk miatt a szuperskalár CISC processzorok csak jóval később jelentek meg a piacon. Ennek oka az, hogy a változó utasításhossz és a CISC memória architektúra (nem egyszerű load/store) szuperskalár környezetben való megvalósítása nehezebb. Az első szuperskalár CISC processzorokra példa a Pentium és MC68060 (1993-tól), mindkettő létező processzorsorozatok szuperskalár tagja. A mai CISC processzorok egy része szuperskalár RISC belső

magot használ (Pentium, K5). Szuperskalár processzorok tervezési tere 37. Adja meg a szuperskalár processzorok tervezési terének főbb komponenseit! (OK) Specific issues of superscalar processing Predecoding Superscalar instruction issue Parallel execution Preserving sequential consistency of execution Exception processing (Section 8.2) (Section 8.3-85) (Section 8.6) (Section 8.7) (Section 8.8) A szuperskalár feldolgozás több különböző feladatra (problémára) osztható: 1. Párhuzamos dekódolás (elődekódolás): A szuperskalár processzorok minden órajelben több utasítás bocsátanak ki egyszerre, ezért párhuzamos dekódolásra van szükség. Ez sokkal bonyolultabb feladat, mint a skalár processzorok esetében. Ma a legelterjedtebb eljárás az elődekódolás 2. Szuperskalár utasítás kibocsátás: 11/39 Számítógép architektúrák vizsgakérdések 1998. II félév Fontos feladat. Magasabb utasítás kibocsátási ráta nagyobb

teljesítményt eredményez, de egyben erősíti a vezérlési és adatfüggőségek teljesítmény-visszafogó hatását is. Ennek elkerülésére különböző kiküldési politikákat (dispatch policy) alkalmaznak (shelving, register renaming, speculative branch processing). 3. Párhuzamos utasítás végrehajtás: A szuperskalár feldolgozás alapfeltétele 4. A szekvenciális konzisztencia biztosítása (utasítás-végrehajtás és kivétel-kezelés esetén): Az utasítások párhuzamosan hajtódnak végre, de szekvenciális logika szerint, ezért fontos a szekvenciális konzisztencia biztosítása. Ma általában az jellemző, hogy az utasítások párhuzamosan hajtódnak végre, de azok eredményét csak szekvenciális sorrendben vesszük figyelembe. A párhuzamosság növekedésével ez a probléma egyre fontosabb. 5. Kivétel kezelés: a szekvenciális konzisztenciát a kivételkezelésnél is biztosítani kell Elődekódolás 38. Miért jelent a dekódolás szuperskalár

processzorokban lényegesen komplexebb feladatot, mint skalár processzorokban? (OK) A skalár processzorokhoz képest a szuperskalár processzorokban a kibocsátási ráta növekedésével a dekódolás egyre komplexebbé válik. Egy skaláris processzornak egyszerre csak egy utasítást kell dekódolnia és csak néha kell függőségvizsgálatokat végeznie egy utasítás kibocsátása előtt. Ezzel szemben egy szuperskalár processzornak sokkal bonyolultabb feladatot kell ellátnia: egy óraciklus alatt egyszerre több (pl. 4-6) utasítást kell dekódolnia és bonyolult függőségvizsgálatokat kell végeznie a a több végrehajtó egységben egyszerre végrehajtás alatt álló és a következő lépésben kibocsátandó utasítások között. A mai processzorok ezért a dekódolás és kibocsátás folyamatát több (pipeline) órajel alatt végzik el (PPC 604 és UltraSparc: 2, Alpha: 3, PPro: 4.5) A problémára egyre gyakrabban az elődekódolás módszerét alkalmazzák. A

következő ábra egy skalár és egy 4 utas szuperskalár processzor dekódolási és kibocsátási folyamatának összehasonlítását ábrázolja: Icache Icache Instruction buffer Instruction buffer Typical FXpipeline layout Decode / Issue Decode / Issue Scalar issue Superscalar issue F D/I F . D I Elődekódolás 39. Az elődekódolás elve (OK) Az előkódolás során a kódolási folyamat egy része a chipre integrált cache-be való betöltés idejére tevődik át. 12/39 . Számítógép architektúrák vizsgakérdések 1998. II félév Second-level cache (or memory) Typically 128 bits/cycle Predecode unit E.g 148 bits/cycle When instructions are written into the Icache, the predecode unit appends 4-7 bits to each RISC instruction 1 Icache 1 In the AMD K5, which is an x86-compatible CISC-processor, the predecode unit appends 5 bits to each byte A chipre integrált cache-be való betöltődés során egy elődekódoló egység részleges dekódolást

végez és dekódolási információkat tartalmazó biteket illeszt az utasításokhoz. A többletbitek száma általában 4-7 bit Az elődekódolás a párhuzamos dekódolást támogatja 40. Az elődekódoláshoz használt többletbitek közelítő száma és felhasználása (OK) Az elődekódoláshoz használt bitek száma RISC processzorok esetében általában 4-7 bit, melyek a következő jellegű információkat hordoznak: • az utasítás milyen osztályba tartozik (milyen típusú) • végrehajtáshoz szükséges erőforrások típusa A CISC processzorok esetében további többletinformációkat is tartalmazhatnak, például egy utasítás hol kezdődik és hol végződik. Az AMD K5 processzora pl. minden byte-hoz 5 bitet fűz (+60%!) 41. Mikor jelentek meg elődekódolást használó szuperskalár processzorok? (OK) Először 1995-ben jelentek meg elődekódolást használó szuperskalár processzorok: PA-7200 (1995), PA-8000 (1996), PowerPC 620 (1995), R10000 (1995),

UltraSparc (1995). 42. Nevezzen meg néhány példát! (OK) Az elődekódolás egyre növekvő használata jól megfigyelhető trend, az egyes meghatározó processzorcsaládok legújabb tagjai rendszerint már használják. 13/39 Számítógép architektúrák vizsgakérdések 1998. II félév Superscalar processors without Superscalar processors without predecoding Type/Year of first volume shipment Superscalar processors using predecoding 1 Issue rate instr./cycle Clock rate MHz Pipeline cycles 2 PA7200 (1995) 2 100 n.a PA8000 (1996) 4 150 n.a PowerPC620 (1995) 4 133 MHz F, D/I, E R10000 (1995) 4 200 MHz F, D, I, E UltraSparc (1995) 4 167 MHz F, D, I, E Hal PM1 (1995) 4 154 MHz F, D/I, E Am K5 (1995) ~2 n.a n.a Issue rate instr./cycle 2 PA 7100 (1992) PowerPC 601 (1993) 4 PowerPC 604 (1994) 3 R8000 (1994) 4 SuperSparc (1992) 3 Am 29000 sup. (1995) 3 α 21164 (1995) 4 PentiumPro (1995) 3 3 Néhány nagyon elterjedt processzor

ugyanakkor nem használ elődekódolást, pl. Pentium Pro Szuperskalár kibocsátás 43. A szuperskalár utasítás kibocsátás tervezési terének fő komponensei (OK) Superscalar instruction issue Issue policy related to the handling of dependences Issue order Alignment of instruction issue (Section 8.32) (Section 8.33) (Section 8.34) Multiplicity of instruction issue (Section 8.35) A szuperskalár utasítás kibocsátás tervezési terének négy fő komponense van: • A kibocsátási politika (issue policy) meghatározza a függőségek kezelésének módját a kibocsátás során. • A kibocsátási ráta (issue rate) az egy óraciklus alatt a processzor által kibocsátható utasítások maximális számát határozza meg. • Az ablakfeltöltés módja (alignment of instruction issue) • Kibocsátási sorrend (issue order) A kibocsátási politikák tervezési tere elég komplex. Négy fő területből áll Az első kettő az adat- és vezérlési

függőségek kezelését határozza meg. Mindkét esetben két lehetőség adódik, vagy megszüntetjük őket regiszter átnevezéssel ill spekulatív elágazás-kezeléssel, vagy nem. A harmadik terület arról szól, hogy megpróbáljuk-e a kibocsátási blokkolások számát drasztikusan csökkenteni az utasítás várakoztatás (shelving) technikával. Az utolsó terület a (megmaradó) kibocsátási blokkolások kezelését határozza meg 14/39 Számítógép architektúrák vizsgakérdések 1998. II félév 44. A kibocsátási blokkolások kezelésének tervezési tere (OK) A kibocsátás blokkolása tervezési tere két szempontot vesz figyelembe: • Kibocsátási sorrend (issue order) • Kibocsátás illesztés (alignment of issue) Handling of issue blockages Issue order Alignment of issue Whether a dependent instruction blocks the issue of subsequent not dependent instructions in the issue window Whether a fixed or a gliding instruction window is used

In-order issue Out-of-order issue Aligned issue Unaligned issue A fenti ábra felső sora kell! 45. Milyen lehet a szuperskalár processzorok utasítás kibocsátási sorrendje? (OK) A kibocsátási sorrend azt befolyásolja, hogy vajon egy függőségekkel rendelkező utasítás a szekvenciálisan utána következő utasítások kibocsátását is blokkolja-e. Az in-order kibocsátási sorrend esetében blokkolja, az out-of-order esetében nem A fenti ábra bal alsó sarka kell! 46. Milyen utasítás kibocsátási sorrendet használ a legtöbb szuperskalár processzor? Miért? (OK) Az out-of-order sorrend esetén sokkal nehezebbé válik a szekvenciális konzisztencia megtartása, ráadásul utasítás várakoztatás (shelving) használatával elég ritkává válnak azok az esetek, amikor az out-of-order kibocsátási sorrend kihasználhatóvá válna, ezért a mai processzorok többnyire az in-order kibocsátási sorrendet használják, s csupán néhány, kibocsátási

blokkolást használó processzor használ korlátozott out-of-order kibocsátási sorrendet (pl. PPC 601) Az ábra az in-order és az out-of-order kibocsátási sorrend működését szemlélteti. 15/39 Számítógép architektúrák vizsgakérdések 1998. II félév Issue order In-order issue Out-of-order issue Issue window Instructions to be issued Instructions issued e d c b Issue window a Instructions to be issued a Instructions issued Instructions are issued strictly in program order e d c b a c a Instructions may be issued out-of-order Most superscalar processors MC 88110 (1991) (partially) PPC 601 (1993) (partially) Comments: For illustration purposes issue in-order superscalar processor is assumed Designates an independent instruction. Designates a dependent instruction. Designates an issued instruction. 47. A szuperskalár utasítás kibocsátásnál használt illesztési eljárások (OK) Utasítás kibocsátási illesztési eljárások: •

Illesztett, fix ablak (aligned issue): amíg az utasítás ablakból el nem fogynak az utasítások, nem lép tovább • Illesztetlen, csúszó ablak (unaligned issue): minden utasítás kibocsátása után újabb utasításokat csúsztat az ablakba 16/39 Számítógép architektúrák vizsgakérdések 1998. II félév Alignment of instruction issue Aligned issue Next window Instructions checked in cycle 1 h g f e Unaligned issue d c b issued in cycle 1 checked in cycle 2 a h g f d e c b d c b c f g d issued in cycle 3 e d b d a a a issued in cycle 2 checked in cycle 3 Gliding window Fixed window f e d f e c b c b d Instructions are issued by checking those being in a fixed window Instructions are issued by checking those being in a gliding window Typical for first generation superscalar processors and for recent processors using shelving, e.g It is typical for follow-on superscalar processors which do not use shelving, such as

i960CA (1989 ) Power1 (1990) PA 7100 (1992) SuperSparc (1992) PPC 603 (1993) PPC 604 (1994) PPC 620 (1995) PA 8000 (1996) R 10000 (1995) PM1 (Sparc64) (1995) but also in the α 21064 (1992) α 21064A (1994) α 21164 (1995) M 88110 (1991) M 68060 (1993) PA 7100LC (1993) R 8000 (1994) PA 7200 (1995) UltraSparc (1995) Comments: In this Figure a 4-issue in-order superscalar processor is assumed Designates an instruction checked for dependeces. Designates a dependent instruction. Here for simplicity, we assume that a dependent instruction becomes dependent free after its preceeding instruction has been issued. Designates an issued instruction. Ma már ismét a fix ablakos megoldást használják, mivel az utasítás várakoztatás (shelving) miatt, így nem kell figyelni, hogy az ablakban van-e függő utasítás. A függőségek kezelése kiküldéskor (dispatch) történik 48. Milyen illesztési eljárásokat használnak a szuperskalár processzorok utasítás kibocsátáskor? Miért?

(OK) Az illesztés a kibocsátási sorrend mellett a kibocsátási blokkolások kezelésének másik jelentős kérdése. Az illesztés azt határozza meg, hogy az egyszerre kibocsátható utasításokat tartalmazó ablak az utasításfolyamnak csak meghatározott pozícióira kerülhet-e (illesztett), vagy szabadon csúsztatható (illesztetlen). Az illesztés két lehetséges esete tehát: 17/39 Számítógép architektúrák vizsgakérdések 1998. II félév Aligned instruction issue (fixed window), illesztett utasítás kibocsátás. Az illesztett utasítás kibocsátás esetén a kibocsátható utasításokat tartalmazó ablak rögzített, amíg valamennyi utasítást kibocsátása meg nem történik, addig nem kerülhetnek újak bele. Unaligned instruction issue (gliding window), illesztetlen utasítás kibocsátás. Az illesztetlen utasítás kibocsátás esetén a kibocsátható utasításokat tartalmazó ablak elmozdítható, az utasításfolyamon eltolható. Ez azért

jó, mert így a függőségek miatt ki nem bocsátott utasítások mellé mindig felvehetünk újakat, majd ha azok függetlenek, akkor akár az egész ablak tartalma egyszerre kibocsátható. Az illesztetlen kibocsátás a kibocsátási blokkolást használó processzorokra volt jellemző (MC68060, R8000, UltraSparc), de az utasításvárakoztatás (shelving) lecsökkentette az erre való igényt, ezért többen visszatértek az egyszerűbb, illesztett kibocsátásra (PPC 603, 604, 620, R10000). Ennek az oka, hogy a shelving bufferekbe szinte korlátozás nélkül bekerülhetnek az utasítások, így nem használható ki igazán az illesztetlen kibocsátás. Külön utat jár a Digital az Alphával, mert az nem használ shelving-et, illesztett kibocsátású, és mégis ő a leggyorsabb jelenleg. 49. Nevezze meg a skalár processzoroknál használatos két legfontosabb utasítás kibocsátási politikát! Adjon néhány példát! (OK) Skalár processzoroknál a lehetséges

kibocsátási technikák közül leginkább kettőt használnak: Hagyományos skalár kibocsátási politika. A korai, nem futószalag-elven működő processzorok szekvenciális végrehajtást alkalmaztak, egyik utasítást a másik után dolgozták fel, ezért nem alkalmaztak regiszter-átnevezést, spekulatív elágazáskezelést vagy utasítás várakoztatást (shelving). Az első pipeline processzorok is ilyenek voltak Ezt a politikát használja az i86-i386, Motorola 68000-68030. Hagyományos skalár kibocsátási politika spekulatív elágazáskezeléssel. A futószalag elven működő processzorok teljesítményét a vezérlési függőségek miatti kibocsátás-blokkolás erősen visszafogta volna, ezért spekulatív elágazás kezeléssel egészítették ki a hagyományos skaláris kibocsátási politikát. Így működik az i486, MC68040, R4000, MicroSparc 50. Nevezze meg a szuperskalár processzoroknál használatos három legfontosabb utasítás kibocsátási politikát!

Adjon néhány példát! (OK) A szuperskalár processzoroknál a lehetséges kibocsátási technikák közül leginkább kettőt használnak: Straightforward aligned superscalar issue. (egyenes, illesztett szuperskalár kibocsátás) Ez a legegyszerűbb, leggyakrabban használt politika. Nem alkalmaz regiszter-átnevezést, de spekulatív elágazás-kezelést és kibocsátás blokkolást igen. Az adat és erőforrás-függőségek esetében kibocsátás blokkolás van, a vezérlési függőségekre spekulatív elágazás előrejelzés. Illesztett kibocsátást használ Ez az egyszerű megoldás leginkább az első generációs szuperskalár processzoroknál van, pl. Pentium, PPC 601, Alpha 21164 Straightforward superscalar issue without issue alignment. (egyenes, illesztetlen szuperskalár kibocsátás) A processzorok másik csoportja illesztés nélkül használja az előbbi politikát, pl. R8000, PA 7200, UltraSparc Advanced superscalar issue policy. (fejlett szuperskalár

kibocsátási politika) Ma ez a legjelentősebb Regiszter átnevezés, spekulatív elágazás kezelés és shelving (utasítás várakoztatás). A tárgyalt tervezési térben ez a legfejlettebb Alkalmazás: R10000, Pentium Pro, PPC 603 - PPC 620 stb. 51. A szuperskalár utasítás kibocsátás multiplicitásának fejlődése (OK) A kibocsátási ráta az a szám, ahány utasítást egy szuperskalár processzor legfeljebb ki tud bocsátani egy órajel alatt. A kibocsátási ráta a szuperskalár utasítás kibocsátás multiplicitásának jellemzője. Minél nagyobb, annál nagyobb teljesítmény érhető el, de annál bonyolultabb áramkörök kellenek a megvalósításhoz (függőségek). A szuperskalár CISC és a korai RISC processzorok csak két utasítást tudtak kibocsátani egyszerre, míg az egyes RISC processzorcsaládok újabb tagjai általában négyet, sőt, a Power2 hatot is. Tehát lassan nő 18/39 Számítógép architektúrák vizsgakérdések 1998. II félév

Issue rate 2 3 4 Power1 (1990) 6 Power2 (1993) PowerPC 604 (1994) PowerPC 620 (1995) PowerPC 601 (1993) PowerPC 620 (1993) α 21064 (1992) α 21064A (1993) PA 7100 (1992) PA 7200 (1995) α 21164 (1995) PA 8000 (1996) SuperSparc (1992) UltraSparc (1995) 52. Az “issue rate” ill a “dispatch rate” értelmezése szuperskalár processzorokban A két jellemző közül tipikusan melyik értéke nagyobb? Miért? (OK) Az “issue rate” az az érték, ahány utasítást egy szuperskalár processzor egyszerre ki tud bocsátani (legfeljebb ennyit). Ez shelving alkalmazása esetén az utasítás várakoztató tárakba kerül. A “dispatch rate” ezzel szemben arra vonatkozik, hogy legfeljebb hány utasítás kerülhet egyszerre az utasítás várakoztató tárakból a végrehajtó egységekbe. Processor/Year shipment of volume Maximum issue rate instr./cycle Maximum dispatch rate instr./cycle PowerPC 603 (1993) 3 3 PowerPC 604 (1994) 4 6 PowerPC 620 (1995) 4 6

Power2 (1993) 4/6 10 PM1 (Sparc 64) (1995) 4 8 PA8000 (1996) 4 4 R10000 (1996) 4 5 Nx586 (1994) ľ Ľ K5 (1995) 4 5 Pentium Pro (1995) 4 5 A legtöbb esetben a “dispatch rate” és az “issue rate” értéke vagy megegyezik, vagy a “dispatch rate” értéke nagyobb (pl. PPC 604, PPC 620). Ennek az az oka, hogy míg az utasítás várakoztatás (shelving) alkalmazása miatt szinte minden órajelben maximális számú utasítás kerül az utasítás várakoztató pufferekbe, addig a bonyolultabb utasítások esetén (pl. szorzás, osztás) a pufferekből ennél kevesebb utasítás kerül ki a végrehajtó egységekbe. Annak érdekében, hogy az egyensúly fennmaradjon, a “dispatch rate” értéke gyakran nagyobb, azaz az egyszerűbb utasítások esetén egyszerre több kerülhet ki a pufferből, mint be. Utasítás várakoztatás (shelving) 19/39 Számítógép architektúrák vizsgakérdések 1998. II félév 53. Az utasítás várakoztatás

(shelving) célja és elve (OK) Az utasítás várakoztatás célja az utasítások között fellépő függőségek hatására létrejövő kibocsátási blokkolások megszüntetése. Ezt úgy éri el, hogy a várakoztató állomások felé függőségek vizsgálata nélkül kibocsátja (issue) a dekódolt utasításokat, majd ezek után végez függőség vizsgálatot, a várakoztató állomásban lévő utasítások között. A nem-függő utasításokat kiküldi (dispatch) a végrehajtó egység felé. 54. Az "instruction issue" és "instruction dispatch" értelmezése utasítás várakoztatásnál (OK) Instruction issue: A dekódolt utasítások kibocsátása a várakoztató pufferek (shelving buffers) felé Instruction dispatch: A függőségektől mentes utasítások kiküldése a várakoztató pufferekből a végrehajtó egységekbe 55. Mire redukálódik az utasítás függőség vizsgálat, ha az utasítás várakoztatást együtt alkalmazzák a

spekulatív végrehajtással és a regiszter átnevezéssel? (OK) Mivel a spekulatív végrehajtás megszünteti a vezérlés függőségeket, a regiszter átnevezés pedig az álfüggőségeket (WAR, WAW), ezért az utasítás függőség vizsgálata a valódi függőség vizsgálatára (RAW) korlátozódik, tehát csak azt kell figyelnie, hogy az operandus rendelkezésre áll-e. Ez az adatfolyam-modellel egyezik 56. Az utasítás várakoztatás tervezési tere (OK) Shelving Scope of shelving Infrastructure of shelving Instruction issue scheme Instruction dispatch scheme (Section 8.42) (Section 8.43) (Section 8.44) (Section 8.45) • mire terjed ki az utasítás várakoztatás (scope of shelving) • utasítás várakoztató pufferek típusai (layout of the shelving buffers) • operandus lehívási politika (operand fetch policy) • kiküldési eljárások (instruction dispatch scheme) 57. Mire terjedhet ki az utasítás várakoztatás (scope of shelving)? Itt

milyen trend érvényesül? (OK) Részleges utasítás várakoztatás (partial shelving) : az utasítás várakoztatás egy vagy kevés utasítás típusra terjed ki. Pl. -Power1, Power2, R8000 : csak FP műveletekre -MC88100 : csak store és feltételes elágazásokra Teljes utasítás várakoztatás (full shelving) : minden utasításra kiterjed A trend: ma minden szuperskalár processzor full shelving-et alkalmaz. 20/39 Számítógép architektúrák vizsgakérdések 1998. II félév 58. Az utasítás várakoztatáshoz használt puffertárak tervezési tere (OK) Infrastructure of shelving General layout of shelving buffers (Section 8.432) Number of shelving buffer entries provided (Section 8.433) Operand fetch policy (Section 8.434) Register file usage (Section 8.435) Location of renamed operands (Section 8.436) 3 fontos szempont (az utolsó szempont nem számít): • Várakozó bufferek kialakítási módja (general layout of shelving buffers): •

Várakozó pufferek kapacitása, a puffer bejegyzések száma (number of shelving buffer entires provided): • Operandus lehívási politika (Operand fetch policy) 59. Utasítás várakoztató pufferek (shelving buffers) típusai (OK) General layout of shelving buffers Stand-alone shelving buffers Combined buffer for shelving, renaming and reordering Reservation station DRIS (D eferred scheduling, Register renaming, I nstruction S helve) 21/39 Számítógép architektúrák vizsgakérdések 1998. II félév Stand-alone shelving buffers (Reservation stations, (RS) ) Group RSs Individual RSs RS RS EU EU Power1 (1990) Nx586 (1994) PPC 603 (1993) PPC 604 (1994) PPC 620 (1995) Am 29000 sup (1995) Am K5 (1995) RS EU Central RSs RS EU EU ES/9000 (1992p) Power2 (1993) R 10000 (1996) PM1 (Sparc64)(1995) RS EU EU EU P6 (1995) Az egyedülálló (stand-alone) várakoztató puffereket csak shelvingre használják, elnevezése : várakoztató állomás (reservation

station). Ez az egyszerűbb megoldás, amelynek implementálására három alapvető lehetőség van: • egyéni (individual) várakoztató pufferek (kis kapacitással : 2-4 hely). Ebben az esetben minden végrehajtó egység (EU) előtt külön puffer található (Power 1, Power PC-k, .) • csoportos (group) várakoztató pufferek (nagyobb kapacitás : 8-12-16). A pufferek bizonyos utasítás csoportokat várakoztatnak, majd a megfelelő EU-k között szétosztják. Jellemző csoportok lehetnek az FX, FP műveletek (Power 2, R10000, Sparc64, Alpha 21264) • központi (central) várakoztató pufferek (nagy kapacitás : 20). Az összes végrehajtó egységet egy várakoztató állomás hajtja meg Ez a legbonyolultabb megoldás a három közül. (csak a PentiumPro használja) A mai trend: csoportos várakozó állomások, mivel ezek a leghatékonyabbak, miközben nem bonyolítják túl az implementációt. A kombinált (combined) várakoztató pufferek a shelving, reordering és

renaming műveletekre egyaránt használatosak. A ReOrder Bufferben (ROB) végzik a shelving és renaming műveleteket is. Egy megvalósítása volt, amely komplexitása miatt nem került piacra, a Lightning nevet kapta. Ez a processzor DRIS-nek (Deferred scheduling, Register renaming, Instruction Shelve) nevezte ezt az egységet Várhatóan több implementálása is lesz. 60. Hogyan valósították meg az utasítás várakoztató puffereket (shelving buffers) a Power PC családnál, a POWER 2ben, R10000-ben, illetve a PentiumPro-ban? (OK) Power PC család: egyéni várakoztató állomások minden EU előtt POWER 2: csoportos várakoztató állomások R10000: csoportos várakoztató állomások (FX, FP, címszámító csoportok) Pentium Pro: központi várakoztató állomás 61. Jellemzően milyen kapacitásúak az utasítás várakoztató pufferek (shelving buffers)? (OK) Egyéni várakoztató állomások esetén kis kapacitás elegendő (2-4 bejegyzésnyi) Csoportos várakoztató

állomások esetén már nagyobb kapacitás szükséges (8, 12, 16 bejegyzésnyi) Központi várakoztató állomás esetén igen nagy kapacitás szükséges, hogy az EU-k ne legyenek üresek (20 bejegyzés-Pentium Pro). A várakoztató állomások teljes kapacitása definiál egy ablakot, amelyből ki lehet válogatni az egymástól nem függő utasításokat. Minél nagyobb az ablak, annál több független utasítás van benne. A mai rendszerek kapacitása tipikusan 15 és 40 közé esik 22/39 Számítógép architektúrák vizsgakérdések 1998. II félév 62. Milyen operandus lehívási politikákat használnak utasítás várakoztatásnál (shelving) ? (OK) I-buffer I-buffer Decode/Issue Decode/Issue Instructions Source reg. numbers Issue Reg. file Dispatch RS RS Opcodes, destination reg. numbers RS Source register numbers Source 1 operands Op. codes, destination reg. numbers Source 2 operands RS RS Reg. file Source 1 operands RS Source 2 operands EU EU

EU EU EU EU Alapvetően kétféle operandus lehívási politikát használnak utasítás várakoztatásnál. • kibocsátáshoz kötött (issue bound) lehívás (bal oldali ábra) • kiküldéshez kötött (dispatch bound) lehívás (jobb oldali ábra) Kibocsátáshoz kötött operandus lehíváskor a shelving buffer-ek a forrás operandusok értékét tartalmazzák. Kiküldéshez kötött operandus lehíváskor a shelving buffer-ek a forrás operandusok regiszterének azonosítóját tartalmazzák. 63. Az utasítás várakoztatás működése kibocsátáshoz kötött operandus lehívás esetén (OK) Lásd fenti bal ábra! Az utasítások kibocsátásakor (issue) a register file felé a dekódolt utasítások forrás operandusainak regiszter azonosítóját küldik. Erre a register file a regiszter értékét küldi ki a megfelelő "buszon", amit a várakoztató állomás a dekódolt utasítással együtt beolvas. Így a várakoztató állomásban a forrás

operandusok értéke lesz. (Széles bejegyzések!) 64. Az utasítás várakoztatás működése kiküldéshez kötött operandus lehívás esetén (OK) Lásd fenti jobb ábra! Az utasítások kibocsájtásakor a várakozó állomások a forrás operanduszok regiszter azonosítóját kapják meg. (Keskeny bejegyzések!) Ezt kiküldéskor a regiszter file felé továbbítják, amely a megfelelő "buszra" a regiszter értékét az EU-k felé kiírja. 65. Várakoztató pufferek frissítése kibocsátáshoz kötött operandus lehívás esetén (OK) A regiszter file-ban a regiszterek mellett V (valid) bit jelzi érvényességüket. Ha az operandus lehívásakor még nem volt érvényes értéke (egy művelet, aminek ez a kimenete még nem fejeződött be), akkor a forrás operandus helyére nem az értéke kerül, hanem a regiszter azonosítója (+mellette is egy V=0 bit). Ha a regiszter érvényessé válik, akkor asszociatívan keresi a várakozó pufferekben Ha talált, akkor

átírja az azonosítót az értékre (+V=1). A frissítés asszociatív keresést igénylő folyamat. 66. Milyen operandus lehívási politikát használnak a Power PC és a Power család processzorai ill a Pentium Pro (P6) ? (OK) (Fig.3414) Power PC: kibocsátáshoz kötött (issue bound) Power család: kiküldéshez kötött (dispatch bound) Pentium Pro (P6): kibocsátáshoz kötött (issue bound) 23/39 Számítógép architektúrák vizsgakérdések 1998. II félév 67. Hasonlítsa össze a két lehetséges operandus lehívási politika előnyeit és hátrányait! (OK) Kiküldéshez (issue bound) kötött operandus lehívás esetén a regiszter file-nak egyszerre kell az összes kiküldött utasítás operandusát visszaadni. Kibocsátáshoz (dispatch bound) kötött operandus lehívás esetén is a kibocsátási rátának megfelelően 2x annyi értéket kell szolgáltatni. Tehát mivel általában a dispatch rate nagyobb, mint az issue rate, ezért ISSUE : DISPATCH 1:0

Viszont a kritikus utasításlehívási szakasz rövidebb a dispatch bound-nál, ezért ISSUE : DISPATCH 1:1. A várakoztató pufferek sokkal keskenyebbek (ezáltal kevésbé komplexek) a dispatch bound-nál, tehát ISSUE : DISPATCH 1:2. Ahogy látszik a verseny elég szoros, még nincs tisztán látható trend. (SD a dispatch bound-nak szurkol) 68. Regiszter file-ok jellemző megvalósítása utasítás várakoztatásnál (OK) Basic layout of rename buffers (Specification of how rename buffers are implemented) Merged architectural and rename register file Merged rename and architectural reg. file Power1 (1990) Power2 (1993) ES/9000 (1992p) Nx586 (1994) PM1 (Sparc64, 1995) R10000 (1996) Separate rename and architectural register files Rename reg. file Architectural reg. file Holding renamed values in the ROB ROB PPC 603 (1993) PPC 604 (1994) PPC 620 (1995) Architectural reg. file Am29000 sup (1995) K5 (1995) M1 (1995) Holding renamed values in the DRIS DRIS

Acrhitectural reg. file Lightning (1991p) 4 fajta regiszter file létezik: • együttes register file (merged architectural and rename register file) • önálló architektúrális és regiszter file (separate rename and architectural register file) • ROB (Holding renamed values in the ROB) • DRIS (Holding renamed values in the DRIS) Ez tulajdonképpen a renaming-hez tartozik. 69. Adjon áttekintést az utasítás várakoztató (shelving) pufferek legfontosabb megvalósítási lehetőségeiről! (OK) Önálló várakoztató állomások esetén: • Egyéni várakoztató állomást alkalmaz kibocsátáshoz (issue) kötve a Power PC család és az Amd család (K5, 29000 sup) • Egyéni várakoztató állomást alkalmaz kiküldéshez (dispatch) kötve a Power 1 és az Nx586. • Csoportos várakoztató állomást alkalmaz kibocsátáshoz (issue) kötve a PM-1 és a Sparc64. • Csoportos várakoztató állomást alkalmaz kiküldéshez (dispatch) kötve az RS/9000,

Power 2 és az R10000. • Központi várakoztató állomást csak a Pentium Pro alkalmaz, kibocsátáshoz (issue) kötve. 24/39 Számítógép architektúrák vizsgakérdések 1998. II félév Kombinált várakoztató pufferek esetén: Kiküldéshez (dispatch) kötött megoldást alkalmaz a Lightning. Nincs tisztán látható a trend! 70. Milyen okok korlátozhatják az utasítás kibocsátást utasítás várakoztatás (shelving) esetén? (OK) Egy lehetséges oka a várakoztató pufferek megtelése. Ekkor nem képes a várakoztató puffer több utasítást befogadni, így blokkolni kell a kibocsátást. Másik lehetséges ok, ha az adatutak száma kevesebb, mint ami szükséges lenne Ekkor még a várakoztató állomásban van üres hely, de fizikailag nem lehet eljuttatni az utasítást. 71. Az utasítás kiküldés (instruction dispatch) tervezési tere (OK) Instruction dispatch scheme Dispatch policy Dispatch rate Scheme for checking the availability of operands

Treatment of an empty reservation station Dispatch policy: kiküldési politika meghatározza, hogy milyen módon válasszuk ki az utasítást a végrehajtáshoz, és hogyan kezelje a kiküldési dugulást. Dispatch rate: kiküldési ráta, amely definiálja az egy ciklusban a várakozó pufferekből kiküldhető utasítások számát Scheme for checking the availability of operands: az operandusok elérhetőségének vizsgálata, az utasítások kiküldhetők-e járulékos késés nélkül vagy sem. Treatment of an empty reservation station: üres várakozó állomások kezelése, el kell döntenünk, hogy egy üres várakozó állomás elkerülhető-e. 72. Milyen főbb komponensekből áll az utasítás kiküldési politika (dispatch policy)? (OK) Dispatch policy Selection rule Arbitration rule Dispatch order Szelekció (selection rule): kiválasztja, hogy melyik utasítás küldhető ki. Egy utasítás akkor küldhető ki, ha rendelkezésre állnak a szükséges operandusok

(adatfolyam végrehajtási szabály). A vizsgálat csak akkor következhet be, ha van szabad vezérlőegység Döntési szabály (arbitration rule): ha több végrehajtható utasítás van, akkor az “öregebb” kerül ki küldésre. Így valószínű, hogy több valószínűség is feloldódik. Kiküldési sorrend (dispatch order): ld. köv kérdés 73. Az utasítás kiküldési sorrend (dispatch order) lehetséges megvalósítási alternatívái és trendje (OK) Az in-order kiküldési sorrend esetén csak az utolsó utasítást vizsgálja, ha azt nem tudja elküldeni, akkor blokkol. Az out of order kiküldési politikánál minden utasítást vizsgál a várakozási pufferben, amely jó azt elküldi, különben blokkol. A harmadik a partially outof-order módszer 25/39 Számítógép architektúrák vizsgakérdések 1998. II félév Dispatch order Partially out-of-order dispatch In-order dispatch Out-of-order dispatch Shelving buffer Shelving buffer Check Check A

non-executable instruction blocks the dissemination of all subsequent instructions Power 1(1990) PowerPC 603 (1993) Non-executable instructions belonging to particular instruction types block the dissemination of all other subsequent instructions, but others do not. 1 Power 2 (1993) PowerPC 604 (1994) 2 PowerPC 620 (1995) 3 Nx 586 (1994) Am 29000 sup (1995) A non-executable instruction does not block the dissemination of subsequent executable instructions 360/91 (1967) Lightning (1991) ES/9000 (1992p) PM1 (1995) PentiumPro (1995) R10000 (1996) PA8000 (1996) Performance, trend Comments: 1 In the Power2 only a single pending (not executable) FP-instruction can be skipped. 2 Out-of-order dispatch from the three integer reservation stations, but in-order dispatch from the Branch-, Load/Store- and FP-reservation stations. 3 Out-of-order dispatch from the three integer- and from the Load/Store reservation stations, in-order dispatch from the Branch- and FP-reservation stations. A

trend az out-of-order fele tart. 74. Milyen utasítás kiküldési sorrendet (dispatch order) alkalmaznak a Power PC család tagjai, az R10000 és a Pentium Pro (P6)? (OK) Ld. előző ábra PowerPC: In-order dispatch illetve partially out-of-order dispatch technikát alkalmaznak az utasítás kiküldésben. R10000: Out-of-order dispatch technikát alkalmaznak az utasítás kiküldésben. Pentium Pro: Out-of-order dispatch technikát alkalmaznak az utasítás kiküldésben. 75. Leginkább milyen kiküldési politikákat alkalmaznak a szuperskalár processzorokban? (OK) • Straightforward dispatch policy: ciklusonként 1 utasítást küld ki, egyedi RS-eket és in-order sorrendet használ • Enhanced straightforward dispatch policy: ciklusonként 1 utasítás kiküldés, out-of-order sorrend • Advanced dispatched policy: ciklusonként több utasítás kiküldés, csoport, központi RS vagy DRIS out-of-order sorrend. 76. Hány utasítás kiküldése jellemző (multiplicity of

dispatched instruction) az utasítás várakoztató pufferek (shelving buffers) megvalósítási alternatíváinál? (OK) A várakozó puffereknek minden ciklusban el kell tudni látnia minden hozzárendelt EU-t utasítással. Ennek megfelelően: • Egyedi RS: csak 1 utasítás kiküldésére képes ciklusonként, csak saját EU-ját kell ellátnia • Csoport RS: több utasítás kiküldésére is alkalmasnak kell lennie, de a kiküldendő utasítás típusától is függ a kiküldési ráta • Egyszerű utasítás (R10000, load/store): esetén 2, bonyolultabb utasítás (R10000 FX, FP, div, mul) azonban csak 1. • Központi RS és DRIS: ciklusonként több (P6-nál 5) utasítást is kell tudnia küldeni, de ezek megvalósítása összetettebb 26/39 Számítógép architektúrák vizsgakérdések 1998. II félév 77. Milyen eltérő módokon kezelhető egy üres várakoztató puffer (shelving buffer, reservation station)? (OK) Treatment of an empty reservation station

(RS) Bypassing Straightforward approach RS At least one-cycle stay in the RS RS Bypassing if RS is empty EU EU NX 586 (1994) PowerPC 604 (1994) PM1 (Sparc64, 1995) Egyszerű kezelés (straightforward): ha egy utasítás egy üres pufferhez ér, akkor az adott ciklusban beíródik a pufferbe, és csak a következő ciklusban lesz kiküldve, tehát egy egész ciklust fölöslegesen várakozik a pufferben. Pl: Nx586 Hatékonyabb megoldás (bypassing): ha az utasítás üres pufferhez érkezik, akkor ki “kerüli” azt, és még az adott ciklusban kiküldésre kerül (nincs fölösleges várakoztatás). Pl: PC604 (1994) 78. Milyen eljárással állapítható meg a forrás operandusok jelenléte utasítás várakoztatás (shelving) esetén? (OK) Scheme for checking the availability of operands Direct check of the scoreboard bits Check of the explicit status bits The availability of source operands is not explicitly indicated in the RS. Thus, the scoreboard bits are tested

for availability The availability of source operands is explicitly indicated in the RS. These explicit status bits are tested for availability Usually, employed if operands are fetched during instruction dispatch, as assumed below Usually, employed if operands are fetched during instruction issue, as assumed below 27/39 Számítógép architektúrák vizsgakérdések 1998. II félév Decoded instructions Decoded instructions R S1, RS2 , R D OC R S1 RS2 Update R D, set V-bit Reset V-bit of R D RD V Check V-bits of source operands Reservation Station Reg. file Scoreboard bits R S1, RS2, R D Update RD , set V-bit Reset V-bit of RD V OC O S1 /I S1 VS1 OS2 /I S2VS2 R D Reg. file OS1 Check the status bits (VS1 , V S2) Scoreboard bits OS2 OC , OS1, OS2 , R D Reservation Station Associative update of I S1, I S2 with R D1 set related VS -bits OC , OS1, OS2 , R D EU EU Result, R D Result, RD OC: Operation Code RS1, RS2: Renamed source register number RD:

Renamed destination register number OS1, OS2: Source operand values IS1, IS2: Source operand identifiers (tags) VS1, VS2: Source operand valid bits RS: Reservation station Vizsgálati eljárások: • Közvetlen ellenőrzés (kiküldéshez kötött): nincsenek konkrét állapotbitek, melyek jeleznék az operandusok jelenlétét, így külön meg kell vizsgálni azokat. Az RS-ben csak az opcode-t és a hivatkozott forrás és célregiszterek számát tárolják A regiszter elérhetőségét egy a register file-ban lévő scoreboard jelzi. Minden regiszternél még egy validity bit Ha egy regisztert valamelyik utasítás használja V bitje 0. Ha eredmény megérkezett és beíródott, akkor V=1 lesz A regiszterek hozzáférhetőségét ezzel a bittel ellenőrzik. • Állapotbitek vizsgálata (kibocsátáshoz kötött): az operandusok meglétét külön erre a célra definiált állapotbitek jelzik Az RS-ben az opcode mellett a hivatkozott forrásregiszterek értéke és a

hozzáférhetőségüket jelző státusz bitek mellett a célregiszter számát tárolják. V=1 esetén a regiszter tartalma, V=0 esetén csak a hivatkozott regiszter száma van az RS-ben 79. A PowerPC 604 processzor szuperskalár működésének főbb jellemzői (OK) Jellemzők: • Elődekódolást nem használ, két ciklus szükséges a dekódoláshoz • Kibocsátási politika: advanced superscalar issue (shelving, renaming, speculative execution) • Kibocsátási sorrend : in-order • Ablak feltöltés: illesztett kibocsátás (aligned issue) • Kibocsátási ráta: 4 (RS-enként és ciklusonként csak 1) • Shelving: teljes, 4 db egyedi RS egyenként 3 hellyel • Operandus lehívás: kibocsátáshoz kötött • Kiküldési politika: enhanced straightforward 28/39 Számítógép architektúrák vizsgakérdések 1998. II félév • Kiküldési sorrend: partially out-of-order • Kiküldési ráta: 6 (RS-enként és ciklusonként csak 1) • Üres

RS kezelése: bypassing • Renaming: teljes, külön rename register file-okban, külön FX és FP (12 és 8) • ROB: csak reordering (14 hely, retire rate 4) • Szekvenciális konzisztencia: erős (processzor), gyenge (memória, SW) Regiszter átnevezés 2 80. Regiszter átnevezés megvalósítási elve utasítás várakoztatás t és kibocsátáshoz kötött operandus lehívást feltételezve A dekódolás, kibocsátás a program logikai sorrendjében történik (in-order). Utasítás kibocsátásnál: • célregiszter(ek) átnevezése, architektúrális célregiszterhez átmenő puffert kell allokálni, architektúrális regiszter helyett az átnevező (???) buffert kell a használni.(rename buffer index, RBI) • forrásregiszterek átnevezése, a forrásregiszter helyett a RBI-eket kell használni, akkor, ha létezik érvényes átnevezés • átnevezett forrásoperandusok lehívása (átnevező buffer vagy architekturális bufferből), RBI v. arch

regiszterazonosítóknak megfelelő forrásoperandusok lehívása Eredménye: • operandus értéke, ha az érvényes • RBI ha nincs érvényes adat Kiküldéskor: • várakoztató pufferben az érvényességi bitek vizsgálatával utasítások kiválasztása és kiküldése a végrehajtó egység felé, ha VE eredményt generál • várakoztató pufferek frissítése (forrás operandus mezőben van-e erre az eredményre váró operandus), találat esetén ki kell cserélni az RBI-t az eredménnyel és be kell állítani az érvényességi bitet • átnevező puffer frissítése (soron következő utasítások esetén az op. lehívás megfelelően történjen), Eredmény RBI alapján beírása (indexelt beírás), megfelelő érvényességi bit beállítása. • átnevező pufferek felszabadítása • újabb célregiszter átnevezés után • utasítás kiíráskor (szekvenciális konzisztencia figyelembe vételével) 81. Regiszter átnevezés főbb feladatai

utasítás várakoztatás és kibocsátáshoz kötött operandus lehívást feltételezve (OK) Kibocsátási feladatok: • Cél regiszterek átnevezése: átnevező puffer allokálás szükséges, meg kell teremteni a kapcsolatot architektúrális regiszter helyett az átnevező puffer indexét (RBI) kell használni • Forrás regiszterek átnevezése: az architektúrális forrás regiszter helyett a rename buffer indexét kell használni, ha létezik érvényes átnevezés, , ha ilyen nincs marad az architektúrális regiszter azonosítója. • Operandusok lehívása: átnevező vagy az architektúrális pufferből az átnevezett operandusokat kell lehívni, ha volt érvényes átnevezés 2 29/39 A 80-90 kérdések kidolgozása kívánnivalót hagy maga után. Számítógép architektúrák vizsgakérdések 1998. II félév Kiküldési feladatok: • A várakozó pufferben V1 és V2 bitek vizsgálatával a végrehajtható utasítások kiválasztása, kiküldése a

végrehajtó egységek felé. Eredmény: • Ha egy végrehajtó egység eredményt generál, várakozó puffer frissítése, találat esetén érvényességi bit beállítása • Az átnevező puffer frissítése • Átnevező pufferek felszabadítása 82. Regiszter átnevezés megvalósítási elve utasítás várakoztatás és kibocsátáshoz kötött operandus lehívást feltételezve (OK) Utasítás kibocsátás: • kibocsátott utasítás(ok) célregisztereinek átnevezése • forrás operandusok átnevezése Utasítás kiküldés: • operandusok meglétének vizsgálata • végrehajtható utasítások kiküldése Eredmény: • átnevező pufferek frissítése • átnevező pufferek felszabadítása (ha az átnevező puffere már nincs hivatkozás) 83. Regiszter átnevezés főbb feladatai utasítás várakoztatás és kiküldéshez kötött operandus lehívás esetén (OK) Utasítás kibocsátáskor: • Célregiszterhez új rename buffer rendelés, a

Mapping Table-t beállítom, hogy jelezze • 2 operandus ellenőrzése • ha van érvényes bejegyzés az RB-ben, akkor onnan veszem az értéket Utasítás kiküldéskor: • Az átnevezett azonosítókhoz rendelt RB-ket meg kell nézni, hogy érvényesek-e, ha mindkettő rendelkezésre áll, akkor kiküldhető Eredmény megjelenésekor az RB frissítése. Tartalom beírása az architektúrális regiszterbe Mapping table bejegyzés törlése 84. Operandus lehívás elve utasítás várakoztatás és regiszter átnevezés esetén, kibocsátáshoz, ill kiküldéshez kötött operandus lehívás esetén (OK) Lásd előbbi kettő! 85. Eredmények kezelésének elve regiszter átnevezés esetén (?) ???? 30/39 Számítógép architektúrák vizsgakérdések 1998. II félév 86. A statikus és dinamikus regiszter átnevezés értelmezése, gyakorlata (OK) Implementation of register renaming Static implementation Dynamic implementation Performed during compilation, i.e

statically, in parallel optimising compilers Performed during execution, i.e dynamically, in superscalar processors Statikus implementáció: A fordítás alatt történik az átnevezés. VLIW-nél elvárás A szuper-skalár processzoroknál is a compiler egy párhuzamos optimalizálást hajt végre, aminek keretében a regiszter átnevezést is elvégzi. Dinamikus implementáció: A végrehajtás során a processzor által történik az átnevezés. 87. A regiszter átnevezés tervezési tere (OK) Register renaming Scope of register renaming Layout of the rename buffers Operand fetch policy Rename rate (Section 7.52) (Section 7.53) (Section 7.54) (Section 7.55) A regiszter átnevezési tere a következő komponenseket tartalmazza: • átnevezés kiterjedése (scope of register renaming) • rename buffer kialakítása (layout of the rename buffers) • operandusok lehívási politikája (operand fetch policy) • renaming ráta (rename rate) 31/39

Számítógép architektúrák vizsgakérdések 1998. II félév 88. Mire terjedhet ki a regiszter átnevezés (scope)? (OK) Scope of register renaming Full renaming Partial renaming Renaming comprises all eligible instruction types Renaming is restricted to particular istruction types 1 Power1 (RS/6000, 1993) 2 Power2 (1993) 3 Nx586 (1994) PPC 603 (1993) PPC 604 (1994) PPC 620 (1995) R10000 (1996) and all further recent superscalar processors featuring renaming Trend Comments: 1 2 3 The Power1 renames only FP-loads. The Power2 extends renaming to all FP-instructions. Since the Nx586 is an FX-processor, it is restricted to renaming only FX-instructions. Trend: ma a full renaming-et használják, mindent átnevez kivéve az elágazáskezelést. 89. Leggyakrabban használt átnevezési eljárások (OK) 4 alapeljárás: • Összevont regiszter file • Szeparált rename regiszter file asszociatív eléréssel • ROB • DRIS 90. Milyen átnevezési eljárást használ

az R10000 és a PowerPC család? (OK) R10000: merged register file PowerPC: separated register file 91. Átnevező regiszterek megvalósítási alternatívái (OK) Lásd 68. kérdés! A szekvenciális konzisztencia biztosítása 32/39 Számítógép architektúrák vizsgakérdések 1998. II félév 92. Milyen szempontokra terjed ki a szuperskalár processzorok utasítás végrehajtásának szekvenciális konzisztenciája? (OK) Sequential consistency of instruction execution Consistency of the sequence of instruction completions Consistency of the sequence of memory accesses Processor consistency Memory consistency Weak processor consistency Strong processor consistency Weak memory consistency Instructions may complete out-of-order, only if no dependences are injured Instructions complete strictly in program order Memory accesses due to load and store instructions may be out-of-order, only if no dependences are injured Memory is accessed due to load and store

instructions strictly in program order Instruction reordering is allowed No instruction reordering is allowed Load/store reordering is allowed No load/store reordering is allowed Detection and resolution of dependences ensures weak processor consistency ROB ensures strong processor consistency Detection and resolution of memory data dependences ensure weak memory consistency The ROB may be used to ensure strong memory consistency 88110 (1991) PPC 602-620 Ultrasparc (1995) PM1 (1995) PA 8000 (1996) R 10000 (1996) ES/9000 (1992p) PPC 601 (1993) Power1 Power2 88110 PPC 601 α -line R8000 (1990) (1993) (1991) (1993) (1994) ES/9000 (1992p) PPC 602-620 P6 (1995) Ultrasparc (1995) PM1 (1995) Am 29000 sup. (1995) K5 (1995) PA 8000 (1996) R 10000 (1996) Trend Strong memory consistency Trend, performance 2 szempont: • Az utasítások (processzor konzisztencia) • Az adatok tárba kerülésének szekvenciája (memória szekvencia) 93. A szuperskalár processzorok

konzisztenciájának lehetséges alternatívái, trendje (OK) Lehetséges alternatívák: • Erős (utasítás feldolgozási sorrend megegyezik a programbeli sorrenddel), átrendezés nem engedett meg, ROB-al oldják meg • Gyenge: ha nincs az utasítások közti adatfüggőség és logikai hiba, akkor az átrendezés megengedett A trend az erős felé halad, a gyenge megvalósítása komplexebb és kevésbé hatásos 94. Milyen eljárással biztosítható az erős processzor konzisztencia? (OK) ROB-felhasználásával biztosítható. Utasítás kiírás feltétele: legyen végrehajtva az utasítás és minden őt megelőző is 33/39 Számítógép architektúrák vizsgakérdések 1998. II félév 95. Szuperskalár processzorok memória konzisztenciájának lehetséges alternatívái, trendje? (OK) Erős: szigorúan csak program sorrendben hajódnak végre a memóriát kezelő load/store utasítások Gyenge: adatfüggetlenség esetén a memória kezelő load/store

utasítások végrehajtási sorrendje felcserélhető A trend a gyenge felé hat. 96. Az utasítás végrehajtás konzisztencia modelljei, melyik modell került előtérbe a korszerű szuperskalár processzorokban? (OK) Weak-processor-weak memory: Weak-processor-strong memory: Strong-processor-weak memory: Strong-processor-strong memory: Szuperskalár processzorok megvalósítása 97. Szuperskalár CISC processzorok megvalósításának elve szuperskalár RISC maggal (OK) Icache I-buffer CISC-part Decoder/ CISC/RISC converter Superscalar RISC-core for execution CISC/RISC conversion RISC-part Data cache Egy CISC utasításhoz tartozó RISC-eket egyszerre engedi ki. 34/39 Számítógép architektúrák vizsgakérdések 1998. II félév 98. CISC utasítások konvertálása RISC utasításokká a Pentium Pro-ban (OK) I-buffer Simple decoder 1 uop Simple decoder 1 uop General decoder up to 4 uops uop-sequencer 4 dekódert használ: • 2 egyszerű: csak ha 1 CISC

utasításból 1 RISC utasítást tud előállítani • 1 komplex: 1 CISC-ből max. 4 RISC-t • 1 db uSequencer: 1 CISC-ből 4-esével adja ki a RISC utasításokat, amíg végre nem hajtódik 99. Szuperskalár CISC processzorok megvalósításának fontosabb elemei RISC maggal (OK) • I-buffer • Decoder/CISC-RISC converter • SuperScalar RISC core for execution 100. Mely szempontok befolyásolják alapvetően a szuperskalár processzorok mikroarchitektúrájának felépítését? (OK) Szempontok: • Shelving • Renaming • Speculative branch prediction • Reorder buffer 101. Adjon áttekintést a szuperskalár processzorok mikroarchitektúrájának alternatíváiról (rajz alapján)! Lásd 7.67 ábra! 35/39 Számítógép architektúrák vizsgakérdések 1998. II félév A PowerPC 620 felépítése, működése (rajz alapján)! (OK) 102. Icache 4 instr./cycle (4x39 bits) Fetch predecoded instructions I-buffer 8 4 instr./cycle Decode/issue

Decode / Issue 8 FX reg. numbers Update rename reg. Operand fetch FXrename registers 4 32 4 instr./cycle Update rename reg. FXarch. reg file FParch. reg file 8 32 FP-operands 1 IU2RS IU1RS BPURS 4 Update FP-RSs FP-results FX-Results Shelve Dispatch 2 FPrename registers 8 FP-instructions FX-instructions FX-Operands Update FX-RSs 2 IU3RS 2 2 L/SRS FPU RS 3 2 Instructions, operands BPU SIU1 SIU2 MIU L/SU FPU Execute FX-results FP-results Instructions issued Result status ROB 1 In-order dispatch for the BPU and FPU, Out-of-order dispatch for the others 16 Felépítés: • Egyedi várakozó állomás • Kibocsátáshoz kötött operandus lehívás • Önálló átnevező file-ok • ROB • 6 EUs: aránytalan, csak 1 FP • 2-4 RS, max. 4 feltételes elágazás ágyazható egymásba Működés: • az utasítás kiküldés 4-esével • használ elődekódolást • az állomásokba csak 1 utasítás írható be ciklusonként

• asszociatív renaming-et használ • kiküldés sorrendben és sorrenden kívül 36/39 BPU : SIU : MIU : L/S : FPU : RS : Branch Processing Unit Single-cycle Integer Unit Multi-cycle Integer Unit Load/Store Unit Floating Point Unit Reservation-Station Számítógép architektúrák vizsgakérdések 1998. II félév Az R10000 felépítése, működése (rajz alapján)! (OK) 103. Fetch predecoded instructions Icache 4 predecoded instr./cycle Decode/issue Decode / Issue 4 instr./cycle with 12 reg. numbers 4 instr./cycle with 16 reg. numbers FXMapping Table 12 read / 4 write FPMapping Table 16 read / 4 write 4 instr./cycle with 16 renamed reg. numbers 4 instr./cycle with 12 renamed reg. numbers Shelve FXRS 1 Address RS FPRS Dispatch 64 FX-Register File and rename regs. 7 read / 3 write 64 FP-Register File and rename regs. 5 read / 3 write FX-operands FP-operands 2 IU1 2 2 IU2 AU 3 Execute 3 3 3 FP- FP- FP- FP- Add Mul Div Sqrt TLB

Write back Result Result Decode Decode Result status Result status ROB 1 32 In-order dispatch for the BPU and FPU, Out-of-order dispatch for the others BPU : SIU : MIU : L/S : FPU : RS : Branch Processing Unit Single-cycle Integer Unit Multi-cycle Integer Unit Load/Store Unit Floating Point Unit Reservation-Station Felépítés: • Utasítás várakoztatás: 3 csoportos RS, egyenként 16 hellyel • Átnevezésre összevont regiszter file-t használ • 7 db EUs, ebből 4 FP, három FX • elágazás kezelés nem önálló • kiküldéshez kötött operandus lehívás Működés: • 4 utasítást küld ki, nevez át • 4 utasítás beírható bármely kombinációban, bármely RS-be 37/39 Számítógép architektúrák vizsgakérdések 104. 1998. II félév A Pentium Pro felépítése, működése (rajz alapján)! (OK) Icache 128 I-buffer Fetch Decode, convert to uops D1 D3 D2 MIS 1 uop/cycle 4 uops/cycle Issue Reg. Mapping Table Map reg.

numbers Reg. numbers 3 uops/cycle 3 uops/cycle Fetch operands RRF 32 Operands Shelve RS Port 0 Dispatch Port 1 Port 2 Ports 3, 4 AU AU 20 FMUL FDIV FADD Execute JEU IU ISHF IDIV IU Feedback results for updating Store Addr. Store Data Load Addr. Memory Reorder Buffer Store D1 - D2 D3 MIS AU : : : : Decoders Generalised decoder Microinstruction Sequencer Address Generation Unit IU JEU : Integer Unit : Jump Execution Unit (branch target address generation) • CISC-RISC konverzió • Mapping table átnevezés • Központi RS • ROB a rename buffer helyett • Kibocsátáshoz kötött operandus lehívás Load IDIV ISHF FADD FDIV : : : : FMUL : ROB 32 Integer Divide Unit Integer Shift Unit FP-Adder FP-Divider FP-Multiplier 38/39 Számítógép architektúrák vizsgakérdések • A várakozó helyek száma 20 • 10 EUs, 5 portra elosztva • • lassú műveleteket végző egységek a 0. porton • 1-4. port a gyors utasításoknak

1998. II félév 2 db címszámító egység + címszámítást támogató egységek 39/39