kategória | ||||||||||
| ||||||||||
| ||
|
||||||||||
Második generációs (széles) szuperskalár processzorok áttekintése(a kibocsátási szük keresztmetszet kiküszöbölése: dimnamikus utasítás-ütemezés és regiszter-átnevezés, végrehajtási modelljük, értékelésük)
Jellemzöi:
Dinamikus utasítás-ütemezés
Regiszter-átnevezés
Dinamikus utasítás-ütemezés (részei):
Pufferelt utasítás-kibocsátás
Sorrenden kívüli utasítás-végrehajtás
Megvalósítása:
Müködés:
Kibocsátási puffereket alakítottak ki
A kibocsátás során nem történik semmiféle függöség-ellenörzés (adat, vezérlés, eröforrás-függöséget sem)
A várakoztató-állomásokban addig tartózkodnak az utasítások, amíg függetlenné nem válnak
Minden óraciklusban ellenörzésre kerül a várakoztató állomásokban levö összes utasítás függöség szempontjából, és az összes független utasítás kiküldésre kerül, mégpedig sorrenden kívül.
Az utasításablak több tucat utasítást tartalmaz → rendkívül kiszélesedett, azaz eltünt a kibocsátási szük keresztmetszet
Regiszter-átnevezés:
Lényege: minden eredmény-regiszter átnevezésre kerül. Kezeli ennek következményeit is:
o Amennyiben késöbb forrásregiszterként hivatkozunk rá, akkor az átnevezési regisztert fogja használni
o Amikor egy utasítás-feldolgozás a befejezödött, akkor átmásolja az átnevezési regiszter tartalmát az architekturális regisztertárba, és felszabadítja az átnevezés regisztert.
o Hibás elágazásbecslés esetén az átnevezési regiszterek alapján történik a visszajátszás; kezeli a kivételeket is.
A második generációs szuperskalároknál jelent meg, pl.: PowerPC 603 (1993), PentiumPro (1995), Alpha 21264 (1998)
A második generációs szuperskalár RISC gépek végrehajtási modellje
Müködése:
Az elsö rész feladata az utasításablak feltöltése
A forrás-operandusok lehívása architektúrától függöen lehet:
o kibocsátáshoz kötött vagy
o kiküldéshez kötött
A kiküldés során a független utasításokat sorrenden kívül tölti ki
A végrehajtás során az átnevezési regiszterekbe kerülnek az eredmények
Visszaíráskor az eredmények az utasítások eredeti sorrendjében másolódnak át az átnevezési regiszterekböl az architekturális regiszterekbe
Sávszélesség:
Kibocsátás ráta: 4 utasítás / ciklus
Kiküldési ráta: 5-8 utasítás / ciklus
Végrehajtási ráta: még magasabb
Oka:
Bizonyos végrehajtó egységek nem képesek minden ciklusban utasítást fogadni (a bonyolultabb utasítások miatt)
Az utasítás-mix az egyes alkalmazásoknál nem egyezik meg a végrehajtható egységek eloszlásával
CISC gépek:
A CISC processzorok belsejében RISC magot alakítottak ki
A CISC utasítások lefordítják RISC utasításokká
Egy CISC utasításból átlagosan 1,2-1,5 RISC utasítás keletkezik. Mivel a bonyolult CISC utasításokat elhagyták, ezért ezeket valahogy helyettesíteni kell. Pl.: for ciklus esetén (bonyolult utasítás): egy if, egy inkrementálás, egy goto és egy ciklus vége utasítás szükséges.
Óraciklusonként ~3 CISC utasítás kerül lehívásra, tehát 3 x (1,2-1,5), azaz ~4 db RISC utasítás kerül kibocsátásra
Adatfolyam modell:
Mivel a függöségeket kezeljük csak müveleti és a behívási függöség feloldását kell kivárni
Mihelyt a bemenö operandusok rendelkezésre állnak, a kiküldés elvben bekövetkezhet (eröforrás-függöség lehetséges), s a végrehajtó egység azonnal müködésbe lép (adat-meghajtott elv)
Találat: 412