Information Technology Reference
In-Depth Information
zu dem der größte Zählerstand gespeichert ist, wobei es nur dann zu einer Wertvor-
hersage kommt, wenn ein vorgegebener Schwellwert überschritten ist. Zählerüber-
läufe werden dabei vermieden, indem man immer dann, wenn ein Zähler den mögli-
chen Maximalwert erreicht, sämtliche Zählerinhalte halbiert. Das Verfahren lässt
sich auch benutzen, um zu entscheiden, welcher der gespeicherten Werte zu ersetzen
ist. Im einfachsten Fall wird der Eintrag überschrieben, zu dem der kleinste Zähler-
stand gespeichert ist, wobei nur solche Einträge berücksichtigt werden sollten, deren
Zählerstände einen vorgegebenen Schwellwert unterschreiten.
Bemerkung. Statt zu jedem Befehl mehrere Werte zu speichern ist es auch möglich, die Zuord-
nung der Einträge der Wertvorhersagetabelle so zu gestalten, dass zu einem Befehl unterschiedliche
Einträge existieren dürfen. Dies lässt sich z.B. erreichen, indem zur Adressierung nicht allein die
jeweilige Befehlsadresse verwendet wird, sondern zusätzlich der Pfad, der zu diesem Befehl
geführt hat (siehe Abschnitt Seite 119). Beide können, ähnlich wie in Bild 2.36b dargestellt, durch
XOR-Operation miteinander verknüpft werden. Die Funktionstüchtigkeit eines solchen Verfahrens
ist deshalb gewährleistet, weil die in einem Befehl verarbeiteten oder erzeugten Werte auch davon
abhängig sind, was zuvor geschehen ist, also welcher Pfad durchlaufen wurde. Nachteilig ist
jedoch, dass Werte, die vom Pfad unabhängig sind, mehrere Einträge der Wertvorhersagetabelle
belegen können.
Differentielle Wertvorhersage (stride prediction). Bei der differentiellen Wert-
vorhersage wird der nächste Wert durch lineare Extrapolation der beiden letzten tat-
sächlich aufgetretenen Werte ermittelt. Damit eignet sich das Verfahren z.B. für die
Vorhersage von Schleifenzählerinhalten oder Indexwerten , lässt sich aber auch für
die Vorhersage von konstanten Werten verwenden. Realisiert wird das Verfahren
i.Allg., indem statt der letzten beiden tatsächlich aufgetretenen Werte nur der letzte
tatsächlich aufgetretene Wert sowie eine Schrittweite ( stride : schreiten) gespeichert
werden. Genau wie bei der konstanten Wertvorhersage muss zusätzlich noch ein
Vorhersagezustand oder alternativ eine zweite Schrittweite (beim 2-Delta Verfahren)
zu jedem Eintrag gespeichert sein, damit entschieden werden kann, ob ein Vorhersa-
gewert zu verwenden bzw. ob ein gespeicherter Eintrag zu ersetzen oder nicht zu
ersetzen ist.
Wie sich eine Einheit zur differentiellen Wertvorhersage mit Vorhersagezustand rea-
lisieren lässt, ist in Bild 2.47 dargestellt. Die Wertvorhersagetabelle wird dabei
allein über die Befehlsadresse angesprochen. Soll für den Zugriff der zu einem
Befehl führende Pfad oder andere Statusinformationen ggf. auch kombiniert ver-
wendet werden, sind geringe Modifikationen bei der Ansteuerung der Wertvorhersa-
getabelle erforderlich [37].
Zur Funktion: Bei einer Wertvorhersage verwendet man zur Selektion eines Eintrags
in der cache-ähnlich organisierten Wertvorhersagetabelle die Adresse des Befehls,
der einen Wert als Operand verarbeitet (z.B. die Zugriffsadresse eines Ladebefehls)
bzw. als Ergebnis erzeugt (z.B. die bei einem Vergleich erzeugte Bedingung) (a).
Befindet sich kein passender Eintrag in der Tabelle, wird der notwendige Platz
reserviert und der sich ergebende Wert darin gespeichert. Vorhersageschrittweite
und Vorhersagezustand werden dabei mit Null bzw. HD initialisiert. Durch Addition
des eingetragenen Werts und der Vorhersageschrittweite (b) lässt sich ein erster Vor-
 
Search WWH ::




Custom Search