Information Technology Reference
In-Depth Information
Sprung- durch Wertvorhersage, diese sind jedoch sehr aufwendig zu realisieren.
Wesentlich einfacher ist es, wenn die Vorhersage von einer darauf spezialisierten
Einheit vorgenommen wird.
tatsächliche Werte
PHR
PC
Opcode
Wertvorhersagetabelle
Adresse
(Pfad)
Operanden-
differenz
Vorhersage-
zustand
Hit
Succ
Adr/Pfad
Differenz
Zustand
HA
LA
LD
HD
0
Sprungvorhersage
Vergleicher
Bild 2.54. Sprungvorhersage durch Wertvorhersage. Statt der einzelnen Operanden wird deren Dif-
ferenz vorhergesagt
Am technisch einfachsten ist die Vorhersage eines Schleifenendes, wenn man für
den Schleifensprung einen separaten Befehl vorsieht, der z.B. automatisch den
Inhalt eines ausgezeichneten Zählregisters dekrementiert und verzweigt, falls der
Inhalt des Zählregisters ungleich Null ist. Damit lässt sich nämlich zum Zeitpunkt
der Decodierung durch den Vergleich des Zählregisters und der Konstanten Eins
bereits vorherbestimmen, ob der Schleifenbefehl verzweigen oder nicht verzweigen
wird. Ein ausgezeichnetes Zählregister ist z.B. in den Prozessoren mit PowerPC-
Architektur von IBM und Motorola realisiert [67, 128]. Es findet jedoch keine Ver-
wendung für die Vorhersage von Schleifensprüngen.
Eine Variante desselben Verfahrens ist im Nemesis C der TU Berlin umgesetzt [114,
198]. Der Prozessor verfügt über einen Schleifenbefehl loop, bei dessen Ausführung
der Inhalt eines beliebigen Register dekrementiert wird und der zum Sprungziel ver-
zweigt, solange das verwendete Register den Wert Null noch nicht erreicht hat. Die
prinzipielle Funktionsweise der hier realisierten Einheit zur Vorhersage von Schlei-
fensprüngen ist in Bild 2.55 dargestellt. Bei Ausführung eines Schleifenbefehls wird
der tatsächliche Inhalt des noch nicht dekrementierten Registers zuerst verwendet,
um den zugehörigen Eintrag der sog. Schleifenzählvorhersagetabelle ( loop count
prediction table ) mit den um zwei verminderten Zählwert zu initialisieren (a) 1 . Da
der aktuelle Schleifenbefehl bei seiner Ausführung den Registerinhalt um Eins ver-
mindert, befindet sich anschließend in der Schleifenzählvorhersagetabelle der für
den nächsten Schleifendurchlauf erwartete Zählwert.
Das Ende einer Schleife lässt sich durch Vergleich des gespeicherten Zählwerts mit
Null vorhersagen (b). Mit dem ermittelten Vergleichsergebnis wird über das XOR-
Gatter (c) das von einem herkömmlichen Verfahren vorhergesagte Sprungverhalten
unverändert - nämlich wenn das Schleifenende noch nicht erreicht ist - oder inver-
1. Tatsächlich wird der Wert Zwei nur dann verwendet, wenn nicht weitere Schleifenbefehle in
Ausführung befindlich sind. Es wird also der Versatz zwischen Vorhersage und Ausführung des
Schleifenbefehls berücksichtigt.
 
Search WWH ::




Custom Search