Information Technology Reference
In-Depth Information
Falls sich die Operanden ausschließlich in Registern befinden, können die ergebnis-
erzeugenden Befehle dadurch ermittelt werden, dass zu jedem Register die Adresse
des Befehls, mit dem die aktuell letzte Schreiboperation darauf ausgeführt wurde, in
einer sog. Abhängigkeitstabelle ( input information table ) gespeichert wird. Sobald
die Vorhersagewerte für die Operanden verfügbar sind, kann der Vergleich entspre-
chend des Operationscodes (b) ausgeführt und das Ergebnis zur Vorhersage der
Sprungentscheidung verwendet werden (c). Die hier angedeutete Technik ist in [51]
detailliert beschrieben.
Opcode
Rn
Sprungziel
Rm
Befehlscode
Abhängigkeitstabelle
Index
Befehlsadresse
b
Rm
Adresse m
Rn
Adresse n
a
tatsächliche Werte
Wertvorhersageeinheit
(value predictor)
c
Hit
Vergleicher
Sprungvorhersage
Bild 2.53. Sprungvorhersage durch Wertvorhersage. Die in einem bedingten Sprungbefehle codier-
ten Operanden lassen sich anhand der Adressen der ergebniserzeugenden Befehle vorhersagen
Ein Nachteil dieses Verfahrens ist der hohe Realisierungsaufwand. Zum Beispiel
muss die Wertvorhersageeinheit sämtliche Ergebnisse prognostizieren können, da
die Operanden eines bedingten Sprungbefehls potentiell von jedem Befehl erzeugt
werden können. Insbesondere ist es nicht möglich, die Vorhersage auf solche Werte
zu beschränken, die im Zusammenhang mit Sprungbefehlen stehen und sich nicht
von einer herkömmlichen Sprungvorhersageeinheit besser bestimmen lassen.
Eine bezüglich des Realisierungsaufwands optimierte Einheit zur Sprung- durch
Wertvorhersage ist in Bild 2.54 dargestellt. Statt einzelner Operanden wird deren
Differenz vorhergesagt, was deshalb sinnvoll ist, weil der arithmetische Vergleich
zweier Operanden a und b auch durch den Vergleich der Differenz a - b und Null
ersetzt werden kann [56]. Da sich die Differenzen mit den Adressen der Sprungbe-
fehle assoziieren lassen, ist eine Abhängigkeitstabelle wie in Bild 2.53 nicht erfor-
derlich. Auch entfällt die Notwendigkeit, die Ergebnisse aller Befehle in der Wert-
vorhersagetabelle zu protokollieren, so dass nur die Differenzen zu bedingten
Sprungbefehlen in der Wertvorhersagetabelle, deren Sprungentscheidung nicht auf
herkömmliche Weise vorhergesagt werden können, zu speichern sind.
Vorhersage des Schleifenendes (loop termination prediction). Die herkömmli-
chen Verfahren zur Sprungvorhersage sind i.Allg. nicht in der Lage, ein Schleifen-
ende korrekt vorherzusagen, da es hierzu notwendig ist, eine Historie zu berücksich-
tigen, die sämtliche Iterationen der entsprechenden Schleife überdeckt. Zwar gelingt
die Vorhersage eines Schleifensprungs mit den zuvor beschriebenen Verfahren zur
Search WWH ::




Custom Search