Information Technology Reference
In-Depth Information
der Zustand T gespeichert und der Sprungbefehl als verzweigend vorhergesagt (die
Vorhersage ist in den Zuständen jeweils unterhalb des Querstrichs angegeben). Stellt
sich heraus, dass der Sprungbefehl tatsächlich verzweigt ist, wird der Zustand T
nicht verlassen. Falls der Sprungbefehl jedoch tatsächlich nicht verzweigt ist, wird
über die obere Kante in den Zustand N gewechselt und der Sprungbefehl in nächster
Zukunft als nichtverzweigend vorhergesagt.
n
verzweigt (t)
verzweigt nicht (n)
T
wird
verzweigen
N
wird nicht
verzweigen
t
Bild 2.29. Dynamische Sprungvorhersage mit einstufiger Historie. Die Zustände sind jeweils mit
einem Zustandsnamen (T und N) und der nächsten Vorhersage beschriftet (wobei Zustände, in
denen eine Verzweigung vorhergesagt wird, grau unterlegt sind). Die Kanten werden abhängig vom
tatsächlichen Sprungverhalten durchlaufen
Das Verfahren ist in modernen Prozessoren nicht mehr im Einsatz, wurde aber in
älteren Prozessoren, wie dem Alpha 21064 von DEC oder dem PowerPC 604 von
Motorola (der gleichzeitig jedoch noch andere Techniken zur Sprungvorhersage ver-
wendet) realisiert [31, 130]. Beim Alpha 21064 wird die Information, ob ein
Sprungbefehl verzweigt oder nicht verzweigt ist, in einem einzelnen Bit zusammen
mit den Befehlen im Befehlscache des Prozessors gehalten. Einen separaten Sprung-
vorhersagecache gibt es hier also nicht. Beim PowerPC 604 werden nur Sprungbe-
fehle protokolliert, die verzweigt sind. Ein Sprungbefehl wird also nur als verzwei-
gend vorhergesagt, wenn er in dem dafür vorgesehenen Cache gespeichert ist.
Dynamische Sprungvorhersage mit zweistufiger Historie. Die vorangehend
beschriebene dynamische Sprungvorhersage mit einstufiger Historie ermöglicht es,
ausschließlich Verzweigungsfolgen zuverlässig vorherzusagen, in denen das
Sprungverhalten sich nicht ändert, der jeweilige Sprungbefehl also entweder immer
verzweigt oder immer nicht verzweigt. Jeder Wechsel des Sprungverhaltens führt
hingegen zu einer Fehlvorhersage, weshalb alternierende Sprungentscheidungsfol-
gen, d.h. Sprungfolgen der Form t-n-t-n usw. zu 100% falsch vorhergesagt werden.
Um die Zuverlässigkeit der Vorhersage bei diesen häufig auftretenden Verzwei-
gungsfolgen zu verbessern, lässt sich das Verfahren in der Weise abwandeln, dass es
auf eine Änderung der tatsächlichen Sprungentscheidung nicht sofort mit einer
Änderung der Vorhersage reagiert.
Erreicht wird dies z.B., indem nicht nur die letzte, sondern die letzten beiden Sprun-
gentscheidungen bei der Vorhersage berücksichtigt werden. Der entsprechende
Graph ist in Bild 2.30 dargestellt. Jeder der vier Zustände repräsentiert eine mögli-
che Vergangenheit des betrachteten Sprungbefehls. Im Zustand TT ist der Sprungbe-
fehl tatsächlich zweimal aufeinander folgend verzweigt und wird demzufolge als
verzweigend prognostiziert. Entsprechend wird im Zustand NN der Sprungbefehl
als nichtverzweigend vorhersagen. In den Zuständen TN bzw. NT wurde schließlich
genauso häufig verzweigt, wie nicht verzweigt, weshalb man zur Vorhersage hier
den statisch wahrscheinlicheren Fall „wird verzweigen“ verwendet.
Search WWH ::




Custom Search