Az elágazás-előrejelző egység ( elágazás-előrejelző egység ) egy olyan eszköz, amely a mikroprocesszorok részét képezi olyan folyamatarchitektúrával, amely előrejelzi, hogy a végrehajtható programban feltételes ugrást hajtanak végre. Az elágazás előrejelzése csökkenti a folyamat tétlenségi idejét azáltal, hogy előre betölti és végrehajtja azokat az utasításokat, amelyeket egy feltételes elágazási utasítás végrehajtása után kell végrehajtani. Az elágazás-előrejelzés kritikus szerepet játszik, mivel a legtöbb esetben (az elágazás-előrejelzés pontossága a modern processzorokban meghaladja a 90%-ot) lehetővé teszi a processzor számítási erőforrásainak optimális kihasználását [1] .
Elágazás előrejelzése nélkül a folyamatnak meg kell várnia a feltételes elágazási utasítás végrehajtását a következő lekéréshez. Az elágazás-előrejelző segítségével elkerülhető az időveszteség az elágazás kiderítésére. Az ág kiválasztása az állapotellenőrzés korábbi eredményei alapján történik. Ezután a kívánt ág betöltődik és részben végrehajtódik. Ha ezután kiderül, hogy az előrejelzés hibás volt, a hibás elágazás eredményeit a rendszer elveti, és a megfelelő ágat betölti a csővezetékbe, ami késést okoz. A késleltetés mértéke a szállítószalag hosszától függ. Az Intel Core i7 processzor esetében a folyamat mélysége 14 fokozat.
Az "ugrás-előrejelzést" meg kell különböztetni az "ugráscím előrejelzésétől" . Az ágcím-előrejelzés célja egy feltételes vagy feltétel nélküli ág címének kiválasztása az elágazási utasítás dekódolása és végrehajtása előtt.
Két fő módszer létezik az elágazás előrejelzésére:
A statikus elágazás-előrejelzési módszerek a legegyszerűbbek. Ezeknek a módszereknek a lényege, hogy különböző típusú átmenetek:
A modern processzorokban a statikus módszereket csak akkor használják, ha a dinamikus módszerek nem használhatók.
Példa a SPARC és MIPS architektúrák korai processzoraiban megvalósított triviális statikus előrejelzésre .
Ebben az esetben abból indulunk ki, hogy a feltételes ág soha nem kerül végrehajtásra.
Példa a modern processzorokban megvalósított statikus előrejelzésre.
Ebben az esetben azt a feltételezést tesszük, hogy minden visszafelé történő áttérés megtörténik, előre történő átmenet pedig nem. A módszert „biztonsági hálóként” használják.
2a ISIP tat
A navigációs előzmények táblázatot elemzi. A táblázat tartalma:
A táblázat minden átmenet után frissül. Az algoritmus megváltoztatja az elágazás választását, ha a feltétel eredménye kétszeres eltérést mutat a korábbi eredményektől. Az utasításcím legkevésbé jelentős bitjeinek használata lehetővé teszi több utasítás előrejelzését a dekódolásuk előtt.
Az első szintnél az utolsó k ág történetét hajtjuk végre, a második szinten k mutat a sablontáblázatra.
A hatókörben minden feltételes ágnak megvan a maga ágtörténete. Az átmeneti minták megosztottak vagy meghatározottak lehetnek.
A globális ág-előrejelzés nem tárol külön előzményeket minden egyes átmenethez, hanem az általános előzményeket használja. Az átmenetek bármilyen mintája befolyásolja ezt a történelmet, de a nem releváns rekordok beszennyezhetik a történelmet.
A hibrid előrejelző kiválaszthatja a legsikeresebb előrejelzők eredményeit az előzmények alapján, vagy használhatja páratlan számú prediktor többségi függvényét.
A hurok-előrejelző a hurokszámláló segítségével megszámolhatja az ugrások számát a ciklus elejéig. Ez a prediktor használható hibrid előrejelzőben.
Egy közvetett ágnak kettőnél több ága lehet. A legújabb processzorok képesek kettőnél több feltétel kiválasztására egy kétszintű adaptív előrejelző segítségével. A közvetett elágazás-előrejelzés támogatásával nem rendelkező processzorok statikus előrejelzést használhatnak, vagy felvehetik az előző értéket.
processzortechnológiák | Digitális|||||||||
---|---|---|---|---|---|---|---|---|---|
Építészet | |||||||||
Instruction Set Architecture | |||||||||
gépszó | |||||||||
Párhuzamosság |
| ||||||||
Megvalósítások | |||||||||
Alkatrészek | |||||||||
Energiagazdálkodás |