Information Technology Reference
In-Depth Information
durchgeführt wurde. Außerdem muss die durch den Vorgriff gewonnene Zeitspanne
ausreichen, um das Datum vollständig zu laden, was vor allem bei Zugriffen auf den
Hauptspeicher meist nicht der Fall sein wird.
Damit auch im Hauptspeicher befindliche Daten rechtzeitig vorliegen, kann das
angedeutete Verfahren modifiziert werden. Normalerweise lässt sich der Zugriff auf
die vorhergesagte Adresse erst beim Holen des Ladebefehls aus dem Befehlsspei-
cher beginnen, da die Befehlsadresse Grundlage der Wertvorhersage ist. Von Chen
und Baer wurde in [24] jedoch vorgeschlagen, für die Vorhersage der Zugriffsa-
dresse nicht den Inhalt des Befehlszählers, sondern den eines vorauseilenden Befeh-
leszählers LA-PC ( look ahead program counter ) zu verwenden.
Dieser muss in derselben Weise modifiziert werden wie der eigentliche Befehlszäh-
ler, wobei eine Verzweigung durch Sprungvorhersage erkannt und die hierbei benö-
tigte Zieladresse aus einem Sprungzielcache ermittelt wird. Zu berücksichtigen ist,
dass man im Falle einer falsch vorhergesagten Sprungentscheidung den Inhalt des
vorauseilenden Befehlszählers korrigieren muss, z.B., indem die Summe aus dem
Inhalt des Befehlszählers und einem Offset verwendet wird. Es sei angemerkt, dass
das Verfahren nur anwendbar ist, wenn die Befehle des Programmiermodells eine
einheitliche Breite aufweisen, damit bei nichtverzweigenden Befehlen der vorausei-
lende Befehlszähler korrekt inkrementiert werden kann.
Eine andere Möglichkeit Verzögerungszeiten bei Zugriffen auf den Hauptspeicher
zu vermeiden, ist in [52] beschrieben. Statt einer einzelnen Zugriffsadresse werden
zu jedem Ladebefehl die nächsten beiden Zugriffsadressen vorhergesagt, und zwar
durch eine differentielle Wertvorhersage, bei der die Schrittweite einmal einfach und
einmal doppelt auf den in der Wertvorhersagetabelle gespeicherten letzten Wert
addiert wird. Die sich auf den nächsten tatsächlichen Zugriff beziehende Adresse
verwendet man wie gewohnt, z.B. um die Latenzzeit des ggf. notwendigen Haupt-
speicherzugriffs zu verkürzen. Die sich auf den übernächsten Zugriff beziehende
Adresse wird genutzt, um das entsprechende Datum im Vorgriff zu laden und es
anschließend in der Wertvorhersagetabelle zwischenzuspeichern.
Falls der Ladebefehl erneut zur Ausführung gelangt, erkennt die Wertvorhersageein-
heit die Verfügbarkeit eines bereits gelesenen Datums, dass sich direkt zur Ergebnis-
vorhersage verwenden lässt. Auch hierbei reicht es nicht aus zur Verifikation der
Vorhersage, die mit dem vorhergesagten Ergebnis ebenfalls verfügbare Zugriffsa-
dresse mit der tatsächlichen zu vergleichen, da zwischen dem Laden des Datums
und dessen Verwendung ein Speicherebefehl den Inhalt der entsprechenden Spei-
cherzelle modifiziert haben kann. Im einfachsten Fall muss der Zugriff daher ein
zweites Mal ausgeführt und das gelesene mit dem vorhergesagten Datum verglichen
werden, wobei datenabhängige Befehle sich noch vor Ende des zweiten Zugriffs
starten lassen.
Zur Vorhersage von Adressen sind alle im vorangehenden Abschnitt ab Seite 128
beschriebenen Verfahren geeignet, wobei auch hier die konstante und differentielle
Wertvorhersage seltener korrekte Vorhersagen liefert als die kontextbasierte Wert-
vorhersage. So können z.B. Adressfolgen, wie sie beim Durchwandern dynamisch
Search WWH ::




Custom Search