Az előbbieknél
hatékonyabb
megoldást jelent a vezérlésátadás kezelésére a korszerű
processzorok spekulatív elágazás feldolgozása, melynél a processzor
megpróbálja megjósolni – különösen a feltételes ugróutasítások
esetében – a vezérlésátadó utasítás várható irányát,
kimenetelét. Erre alapvetően két módszer van:
-
sztatikus
esetben a fordítóprogram értékeli ki az ugrási feltételeket, és
meghatározza a legnagyobb valószínűséggel előforduló ugrási címeket,
és ennek megfelelően szervezi a
pipeline-t;
-
dinamikus
esetben a program futása közben a processzor egy táblázatban
vezeti az ugróutasítások címeit és ezek kimenetét, és ezt
felhasználva próbálja megjósolni az elágazások lehetséges
kimenetét.
A
Pentium processzorcsalád korszerűbb tagjai a dinamikus előrejelzésre két
gyors működésű cache tárolót használnak a processzorba beépítve:
-
a
BTB (Branch Target Buffer) tartalmazza a más végrehajtott ugróutasítások
statisztikái szerint számított elágazási valószínűségeket,
-
az
RSB (Return Stack Buffer) a szubrutinból való visszatérési címeket
tartalmazó gyorsítótár.
|