Information Technology Reference
In-Depth Information
aus Bild 2.35 ableitbar. Im Wesentlichen muss nur die Sprungmustertabelle durch
einen Speicher ersetzt und dabei beachtet werden, dass zwischen Sprungvorhersage
und tatsächlicher Sprungentscheidung ein von der Fließbandstruktur des Prozessors
abhängiger Zeitversatz auftritt, weshalb man den Speicher mit getrennten Ports für
Lese- und Schreiboperationen realisieren muss.
Beispiel 2.6. Globale Pfade . Das die globale adaptive Sprungvorhersage in den unterschiedli-
chen Varianten die Sprungentscheidungen eines bestimmten Sprungbefehls abhängig von den
Sprungentscheidungen anderer Sprungbefehle vorhersagen kann, liegt daran, dass in einem Pro-
gramm normalerweise einem stetigen Pfad (trace), mit den immer selben Verzweigungen und
Nichtverzweigungen gefolgt wird. Mit anderen Worten: Das Sprungverhalten eines bedingten
Sprungbefehls ist vielfach abhängig von den Sprungentscheidungen vorangehender Sprungbefehle.
Angenommen, es wird die in Bild 2.37 dargestellte Folge von Sprungbefehlen, in einer Schleife
ausgeführt, wobei die normalerweise vorhandenen Verknüpfungsbefehle sowie die jeweils in den
Sprungbefehlen auszuwertenden Bedingungen der Einfachheit halber nicht dargestellt sind, dann
wird i.Allg. nur der Sprungbefehl in Zeile 3 tatsächlich verzweigen, so dass sich das globale
Sprungmuster n-n-t wiederholt. Mit einer fünf Sprungentscheidungen berücksichtigenden globalen
adaptiven Sprungvorhersage ließe sich nach kurzer Vorlaufzeit das Verhalten des ersten Sprungbe-
fehls über das Sprungmuster n-t-n-n-t mit n, das des zweiten Sprungbefehls über das Sprungmuster
t-n-n-t-n ebenfalls mit n und das des dritten Sprungbefehls über das Sprungmuster n-n-t-n-n mit t
korrekt vorhersagen.
loop:
b cc 1
stop1
// Abbruch der Schleife
b cc 2
stop2
// Abbruch der Schleife
b cc 3
loop
// Sprung zum Schleifenanfang
Bild 2.37. Schleife mit drei Sprungbefehlen. Nur der letzte bedingte Sprungbefehl wird bei wieder-
holter Schleifenausführung als verzweigend ausgeführt
Adaptive Sprungvorhersage mit neuronalen Netzen (perseptron predictor).
Zum Abschluss soll noch ein Verfahren beschrieben werden, bei dem die Vorher-
sage eines Sprungbefehls mit Hilfe eines aus einem sog. Perceptron gebildeten neu-
ronalen Netzes erfolgt. Die prinzipielle Funktionsweise ist in Bild 2.38 dargestellt.
Zunächst wird die im Register BHR befindliche Historie der letzten n Sprungent-
scheidungen in einen Eingangsvektor für das Perceptron gewandelt, und zwar der-
art, dass Verzweigungen durch +1 und Nichtverzweigungen durch -1 ersetzt wer-
den. Das im Bild als grau unterlegter Kasten dargestellte Perceptron generiert
anschließend das Vorhersageergebnis, indem die Elemente des Eingangsvektors
zunächst mit den zum Sprungbefehl in der Perceptrontabelle gespeicherten Gewich-
ten (w 1 bis w n ) multipliziert und die Ergebnisse akkumuliert werden. Als Vorgabe-
wert wird dabei außerdem der Wert +1 mit dem Gewicht w 0 berücksichtigt.
Für die eigentliche Vorhersage ist das Ergebnis mit Null zu vergleichen. Ist es posi-
tiv, also größer oder gleich Null, wird der Sprungbefehl als verzweigend, sonst als
nichtverzweigend vorhergesagt. Nach Ausführung des Sprungbefehls ist das Per-
ceptron noch entsprechend der Sprungentscheidung in dem als „Learn“ bezeichne-
ten Schaltnetz zu trainieren: Bei einer korrekten Sprungvorhersage werden die
Gewichte w 0 bis w n verstärkt, bei einer falschen Sprungvorhersage abgeschwächt.
Das Verfahren kann sowohl auf einer globalen Historie, wie in Bild 2.38 dargestellt,
als auch auf einer lokal zum jeweiligen Sprungbefehl gespeicherten Historie ange-
Search WWH ::




Custom Search