Information Technology Reference
In-Depth Information
Schlägt die Waage links aus, sagt man den Sprungbefehl als verzweigend, sonst als nichtverzwei-
gend vorher. Technisch lässt sich eine solche Waage als Sättigungszähler realisieren, der im Gegen-
satz zu einem herkömmlichen Zähler nicht überläuft, wenn der maximale oder minimale Zähler-
stand erreicht ist. Er wird bei diesen Zählerständen also nicht weiter inkrementiert bzw. dekremen-
tiert.
Obgleich sowohl die dynamische Sprungvorhersage mit zweistufiger Historie als
auch die dynamische Sprungvorhersage durch Gewichtung das Verhalten von
Sprungbefehlen mit einer Wahrscheinlichkeit von über 90% vorhersagen [97] (nach
[102] mit über 85%), gibt es Sprungfolgen, die grundsätzlich falsch prognostiziert
werden. Zum Beispiel wird t-n-t-n-t mit dem in Bild 2.31 dargestellten Verfahren zu
100% falsch vorhergesagt, falls die Vorhersage im Zustand WT beginnt. Deshalb
verwendet man als Startzustand der Vorhersage oft den Zustand ST (was günstiger
ist, als SN zu wählen, weil die Wahrscheinlichkeit für einen verzweigenden Sprung-
befehl größer ist als die für einen nichtverzweigenden Sprungbefehl). Bei einer
Sprungfolge t-n-t-n-t usw. würde so lediglich jeder zweite Sprungbefehl falsch vor-
hergesagt werden. Die Sprungfolge n-n -t-n-t-n-t usw. führt jedoch wieder zu einer
100%igen Fehlvorhersage. Trotzdem ist ein entsprechender Initialzustand günstiger,
da die Sprungfolge t-n -t-n-t-n-t usw. weit häufiger auftritt als die Sprungfolge n-n -t-
n-t-n-t usw.
verzweigt (t)
verzweigt nicht (n)
n
n
n
ST
wird
verzweigen
WT
wird
verzweigen
WN
wird nicht
verzweigen
SN
wird nicht
verzweigen
t
t
t
Bild 2.31. Dynamische Sprungvorhersage durch Gewichtung
Modifizierte dynamische Sprungvorhersage durch Gewichtung. Natürlich
besteht die Möglichkeit, die mit dem Startzustand bei dynamischer Sprungvorher-
sage durch Gewichtung verbundenen Probleme durch eine Modifikation des Verfah-
rens zu lösen. In Bild 2.32 ist ein entsprechend abgewandelter Graph dargestellt.
Unabhängig vom Startzustand wird eine alternierende Sprungfolge immer zu 50%
korrekt vorhergesagt, selbst dann, wenn man als Startzustand LT ( likely taken ) oder
LN ( likely not taken ) verwendet, und zwar deshalb, weil jeder Übergang aus den
„schwachen“ Zuständen LT bzw. LN in einen „starken“ Zustand ST oder SN führt.
Zum Vergleich: In Bild 2.31 wird durch eine Fehlvorhersage der jeweils komple-
mentäre „schwache“ Zustand WN oder WT aktiviert. Das modifizierte Verfahren ist
z.B. im ARM-Kompatiblen XScale von Intel [83] oder im UltraSPARC IIi von Sun
[171] realisiert. Als Startzustand wird von Letzterem einer der beiden Zustände LT
oder LN verwendet, abhängig davon, ob der Sprungbefehl bei seiner ersten Ausfüh-
rung verzweigt ist (in diesem Fall wird der Zustand LT verwendet) oder nicht ver-
zweigt ist (in diesem Fall wird der Zustand LN verwendet).
Search WWH ::




Custom Search