kategória | ||||||||||
| ||||||||||
| ||
|
||||||||||
Regiszter átnevezés III. (tervezési tere, a regiszter átnevezés kiterjedése (scope), átnevezö regiszterek megvalósítási alternatívái)
Tervezési tere:
A regiszter átnevezés kiterjedése (scope):
A szuperskalár process 848i83i zorok megjelenésekor még nem alkalmazták a regiszterátnevezést. Elterjedésükkor néhány processzorban nevezették a részleges átnevezést. Ilyenkor a folyamat csak egy vagy néhány utasítás típusra korlátozódik. Ilyen volt pl. a Power1 (FP behívó) vagy a Power2 (összes FP). Késöbb elterjedt a teljes átnevezés, melynek során valamennyi utasításnál alkalmazzák az átnevezést, mely egy adatregiszter tartalmát módosítja. A trend a teljes átnevezés felé mutat.
Átnevezések nyilvántartási módjai:
Asszociatív átnevezö tábla (rename buffer) -- Nyilvántartás átnevezö pufferekben
Ez esetben a pufferek három információt tárolnak: a célregiszterek azonosítóját, értékét és bizonyos állapotinformációkat. Amikor egy utasítás célregiszteréhez átnevezö puffert kell allokálni, a processzor keres egy szabad bejegyzést, lefoglalja és a célregiszter azonosító mezöbe beírja az architektúrális regiszter sorszámát. Az eredmény a puffer indexe lesz. A mechanizmus sajátossága, hogy egy regiszterhez több puffert is lehet rendelni. Ez akkor fordulhat elö, ha egy utasítás célregisztere megegyezik egy már átnevezett regiszterrel.
Indexelt átnevezö tábla (mapping table) -- Nyilvántartás leképzö táblában
Ebben az esetben az aktuális leképzéseket a processzor egy táblában tartja nyilván, mely az architektúrális regiszter azonosítójával címezhetö, és számon tartja az egyes architektúrális regiszterekhez hozzárendelt átnevezö pufferek indexét. Az átnevezés során a processzor létrehoz ebben a táblában egy bejegyzést. Ekkor a célregiszterhez hozzárendel egy átnevezö puffert és a célregiszter számának megfelelö táblasorba beírja ennek indexét
Átnevezö regiszterek megvalósítási alternatívái:
Összevont architektúrális és átnevezö regisztertár: (Power 1,2, R10000, P4)
Ebben az esetben a processzor egy közös regisztertárat tartalmaz, melyek elemei dinamikusan vagy architektúrális regiszterek vagy átnevezö pufferek.
Összevont átnevezö regiszterek állapot-átmenet diagramja:
Külön átnevezö regisztertár: (PowerPc 603,604,620)
Csak az átnevezésre szolgál. FX-re és FP-re külön RRF és ARF van.
Önálló átnevezö regiszterek állapot-átmenet diagramja:
Átnevezö pufferek megvalósítása ROB-ban: (AMD K5,K6, PPro,PII,PIII)
Párhuzamos végrehajtás esetén mindenképpen szükséges, hogy a processzor az állapotteret a soros konzisztenciának megfelelöen módosítsa. Ennek megvalósítására egy átrendezö buffert alkalmaznak. Ennek a buffernek minden eleme egy utasítás. Ezt hívjuk ROB-nak. A regiszterátnevezést meg lehet valósítani ebben a ROB-ban is. Ilyenkor az utasítás mellé elmentjük annak célregiszterének tartalmát is, így amikor a ROB-ból a soros konzisztencia szerint kikerül az utasítás, meg lesz a processzornak az az információ is, hogy mivel módosítsa a regisztertár tartalmát.
Átnevezö pufferek megvalósítása DRIS-ben: (csak elvi megoldás):
A kombinált várakoztató pufferben valósítják meg az átnevezö puffereket. Ilyenkor a várakoztató állomás tartalmazza a regiszterátnevezéshez szükséges többlet információkat.
Átnevezési ráta:
A ciklusonként átnevezhetö utasítások maximális számát jelenti. Mivel kibocsátáskor a kibocsátási korlátok elkerülése érdekében a processzornak minden ciklusban képesnek kell lennie minden kibocsátott utasítás átnevezésére, az átnevezési rátának meg kell egyeznie a kibocsátási rátával.
Találat: 553