kategória | ||||||||||
| ||||||||||
| ||
|
||||||||||
Utasításlehívás (föbb feladatok, a címképzés általános sémája, az ugrási cím meghatározása, a BTIC és a BTAC eljárás elve, példák)
Föbb feladatok:
Elödekódolás azaz elágazás becslés
Elágazási címszámítása
Feladata a következö utasítás címének átadása az utasítás cache-nek (I$). Ez skalár processzoroknál, amelyek nem tartalmaznak elágazásbecslést a PC-vel történik, IPC (Initial PC) vagy BTA (Branch Target Address) segítségével. Mivel csak egy utasítást hív le, ez nem jelent gondot. A szuperskalár processzorok 4 utasítás/ciklus lehívását végzik, ha nem lenne elágazásbecslés, akkor az jelentös teljesítménycsökkenéshez vezetne. A szuperskalárok IFA-t (Instruction Fetch Address) használnak, IIFA (Initial IFA) vagy BTA segítségével a címmeghatározáshoz. A BTA-t elágazásbecsléssel (branch prediction) határozzák meg.
A címképzés általános sémája
Szuperskalár elágazásbecsléssel:
Az ugrásí cím meghatározása:
Az elágazási ág elérésének módszerei
Kiszámítási lehívási módszer BTAC BTIC
Kiszámítási lehívási módszer elve:
Elágazás észlelésekor a processzor elöbb kiszámítja az elágazási címet (BTA) majd a soros ágon következö utasítás címét felülírja vele. Így a kiszámított elágazási cím lesz a következö utasítás címe (IFA). A következö ciklusban a processzor behívja az utasítás gyorsítótárból az elágazási címen lévö célutasítást (BTI). Pl. 486, Power1, PowerPC 601
Elágazási címpuffer BTAC:
BA |
BTA |
||
BA 1000 |
9879 |
||
|
|
||
|
|
A BTAC a legutoljára végrehajtott elágazási utasítások címeit (BTA) és a vonatkozó elágazási címeket (BA) tartalmazza. Ha az aktuális utasítás behívási cím (IFA) egy elágazási utasítás címe (BA) és ehhez bejegyzés található a BTAC-ben akkor a proc. miközben az utasítás gyorsító tárból beolvassa az elágazási utasítást a BTAC-böl egyidejüleg az elágazási címet is kiolvassa. A következö ciklusban a proc. ezt a címet használja az elágazási célutasítás eléréséhez. Pl. Pentium, PA8000, PowerPC 604, 620
Célutasítás puffer BTIC:
BA |
BTI1 |
BTI2 |
BTI3 |
BTI4 |
||
címx |
ut1 |
ut2 |
ut3 |
ut4 |
||
|
|
|
|
|
||
|
|
|
|
|
A BTIC módszer elve abban az esetben ha a BTIC-ben az elágazási ág folytatásának címe (BTA+) is el van tárolva. A BTIC az utolsó teljesült elágazások címeit, a hozzájuk tartozó célutasításokat, valamint a folytatási címeket tárolja. Amikor az aktuális utasítás behívási címhez tartozik egy bejegyzés aBTIC-ben akkor a proc. A következö utasítást a BTIC-böl és nem az utasítás gyorsítóárból hívja le majd dekódolja. Egyúttal a proc. a BTIC-böl kiolvassa az elágazási ág soron következö utasításának címét (BTA+) is. A következö utasítást a proc. erröl a címröl hívja le. Pl. Hitachi Gmicro/200
A BTIC módszer elve abban az esetben ha a BTIC-ben az elágazási ág folytatási címét a proc. számítja ki. A BTIC az utolsó teljesült elágazások címeit (BA), és a hozzájuk tartozó elágazási ágak elsö két utasítását tárolja (BTI, ill. BTI+1). Ha az aktuális utasításlehívási címhez (IFA) a BTIC-ben tartozik bejegyzés akkor a processzor a következö két utasítást nem az utasítás gyorsítótárból hanem a BTIC-böl hívja le. Az elágazási ág soron következö utasítás behívási címét (BTA+) a proc. az elágazási címböl számítja ki annak inkrementálásával. Pl. Am 29000, MC88110
Találat: 385