9. Tétel: Második generációs (széles) szuperskalár processzorok Flashcards
Szuperskalár processzorok
Feltétel: o Dinamikus utasítás ütemezés. o Regiszter átnevezés révén kiküszöböli az álfüggőségeket -> ez által a kibocsátási szűk keresztmetszetet. d) Feltétel o Elágazások becslése dinamikusan történik. o Dinamikus előrejelzés (spekulatív becslés) 90 – 95% pontossággal. e) Feltétel o Kifinomult és kibővített gyorsító tár alrendszer. f) Sorrenden kívüli betöltés. Teljesítmény: - RISC kb. 4 utasítás/ciklus - CISC kb. 3 utasítás /ciklus
Dinamikus becslés
Az egyes elágazások történetét a CPU történetbitek formájában írják le.
Fajtái:
• 1 bites: 1 mélységben vizsgálja az utasításokat: 1 bit azt jelzi, hogy az adott elágazás a legutolsó
végrehajtáskor bekövetkezett-e vagy sem.
• 2 bites
• 3 bites
2 bites dinamikus becslés
4 állapotú véges automata. A CPU 4 állapotot tart nyilván az elágazásokhoz. (Minden elágazáshoz külön!) Fajtái: • 00 határozott soros folytatás • 01 gyenge soros folytatás • 10 gyenge elágazás • 11 határozott elágazás A kezdő állapot 11
Dinamikus ütemezés
- Más néven várakoztatás vagy pufferelt utasítás kibocsátás - Várakoztató állomás Lényege: • pufferelt utasítás kibocsátás • sorrenden kívüli utasítás ütemezés Elve (RISC) kép32 - F, D Issue – kibocsátás nominális rátával működhet mivel nincs függőség vizsgálat! - Az adatok/utasítások kiküldése a VE-ek felé sorrenden kívül történik. 3 út/ciklus tudja feltölteni a várakoztató állomásokat - Az utasításablak magába foglalja a teljes várakoztató állomást. Ez az egész ellenőrzésre kerül végrehajthatóság szempontjából. - 4 utasítás / ciklus RISC - 3 utasítás / ciklus CISC kép33
Regiszter átnevezés „piszkozat regiszter”
Cél: ál-adatfüggőségek kiküszöbölés WAR WAW
A CPU minden célregiszterhez allokál egy átnevezési regisztert.
-> Megnövekszik a független utasítások száma. Mert nem az architektúrális regiszterben tárol.
Átnevezési logika (+ HW ) átnevezi a forrás regisztereket is.
Kell egy átnevezési logika, ezt egy plusz hardver beépítésével tudták megoldani a mérnökök. Ez átnevezi
a forrásregisztereket is annak érdekében, hogy biztosítsa az operandusnak a megfelelő helyről való
beolvasást. Hogyha megszűnik a függőség, akkor az eredményeket visszaírja az architektúrális regiszter
megfelelő helyére. A piszkozat regiszterben végzi el a műveleteket => nem veszélyezteti a regiszter
tartalmakat a hibás becslés.
A II. Generációs szuperskalár RISC CPU végrehajtási modellje
- Tipikusan 4 utasítás széles kép34 Állapot bitek: 0: Operandus nem áll rendelkezésre. 1: Az operandus rendelkezésre áll, és kiküldhető.
CISC CPU
Nóvum (újdonság) : CISC utasításokat átkonvertálják RISC szerű utasításokká.
Átlagosan egy CISC utasítás megközelítőleg átlagosan 1,2-1,5 RISC utasításnak felel meg.
II. generáció összefoglalás:
• VEZÉRLÉS FÜGGŐSÉGEK
o Dinamikus utasítás kezeléssel és
o Spekulatív elágazás kezeléssel Kezelve
o Sorenden kívül kiküldéssel
• Erősforrás függőségek végrehajtó egységek többszörözésével KEZELVE
• Áladat függőségek regiszter átnevezéssel MEGOLDVA
• Való adat függőségek (RAW) – Blokkol, részben kicsit kezeljük a spekulatív elágazás kezeléssel
Mikor történik a végrehajtás?
- Amikor a bemenő operandusai rendelkezésre állnak!
- Adatvezérelt végrehajtás (STRÉBER modell)
Esettanulmány
Pentium Pro 1995 – 133MHz (CISC processzor -> CISC megette a RISCeket)
FX futószalag 14 fokozatú (RISC futószalag, de CISC processzor) Központi
várakoztató állomás: 20 bejegyzés.
A szigorúan soros konzisztenciát a ROB biztosította. A
ROB végezte a regiszter átnevezést is.
1) Lehívás
128 bites blokkokban -> utasítás cache
Először ezeket az utasítás részleteket utasítás határra kell illeszteni.
2) Dekódolás, átalakítás
- Ciklusonként maximum 3 utasítás dekódolása RISC-szerű műveletekké
- D1: legfeljebb 4 RISC utasítássá alakítja át a CISC utasításokat
- D2, D3: egyszerű dekódolók -> egy CISC utasítást egy RISC utasítássá tud átalakítani (pl.:+, -)
- MIS dekódoló: 4-nél több RISC-szerű utasítássá dekódol
Minden létrehozott RISC utasítás azonos hosszúságú, azonos formátumú és 128 bites A
RISC szerű utasítások egy várakoztató sorba kerülnek, ami hat bejegyzéses.
Sebesség
Max. 6 RISC utasítás/ciklus
Ha az átnevezési regiszter azonosítóhoz: még nem állt elő az eredmény (a forrás operandus), akkor a CPU a regiszterazonosítót írja be a várakoztató állomásban levő utasítás operandus mezőjébe, és az állapot bitjét 0-ra állítja.
kép35
3 operandusos RISC utasítás. r3 az állapotbit értékét 1-re állítja.
kép36
A CPU csak az állapotbiteket vizsgálja.
Kiküldés: sorrenden kívüli kiküldés, több független utasítás esetén az idősebbet részesíti előnyben.
Visszaírás két helyre történhet:
• ROB
• várakoztató állomásba
ROB frissítése 2 célt szolgál:
• a következő utasítás felhasználhassa az eredményt
• a szigorúan szekvenciális konzisztencia megőrzése A
regiszterek átnevezési sorrendben vannak
kép37
Kiíratási szabályok:
• Csak akkor írható ki, ha minden őt megelőző
utasítás már kiírásra került.
• CISC utasításhoz RISC utasítás csak egyszerre
írhatóak ki. (ez a RISC-CISC konverzió)
• Spekulatív állapotban lévő utasítások nem
írhatók ki. Kiírás után a ROB regisztereket
felszabadítja.
kép38
Kiíratás várakoztató állomásba:
kép39
ha az állapotbit:
• 0, = regiszterazonosító
• 1, = operandus