Information Technology Reference
In-Depth Information
schen Ergebnissen und Operanden. Der Grad der Parallelverarbeitung hängt dabei von der Anzahl
der berücksichtigten Befehle ab. Für einen möglichst hohen Parallelitätsgrad ist es deshalb erforder-
lich, Sprungbefehle spekulativ auszuführen. Stellt sich dabei heraus, dass eine falsche Sprungvor-
hersage durchgeführt wurde, sind alle auf den Sprungbefehl folgenden Befehle zu annullieren. Die
Anzahl der zu verwerfenden Befehle kann hierbei die der existierenden Fließbandstufen weit über-
treffen (siehe Kapitel 3).
Latenzzeitverkürzung durch Caches. Diese Technik ist in Bild 2.40 dargestellt.
Um eine Sprungentscheidung vorherzusagen, wird, vom jeweiligen Verfahren
abhängig, der Befehlszähler, die globale Sprunghistorie oder beides verwendet, um
zunächst auf einen Vorhersagezustandscache zuzugreifen (a). Falls zu dem jeweili-
gen Sprungbefehl ein Eintrag existiert (durch hit angezeigt), wird entsprechend des
gespeicherten Zustands eine Vorhersage generiert und über die mit b markierte Lei-
tung ausgegeben. Stellt sich dagegen heraus, dass im Vorhersagezustandscache kein
zum Sprungbefehl passender Eintrag vorhanden ist (kein hit), wird die Vorhersage
von einem zweiten, sehr einfachen und schnell arbeitenden Verfahren durchgeführt
(c) und über einen Multiplexer ausgegeben. Dabei muss natürlich eine geringere
Vorhersagezuverlässigkeit in Kauf genommen werden.
Shift
PC
BHR
a
(Haupt)
Sprung-
vorhersage
Hilfs-
sprung-
vorhersage
Vorhersage-
zustands-
cache
Sprungentscheidung
d
b
e
c
hit
Sprungvorhersage
Bild 2.40. Latenzzeitverkürzung der Sprungvorhersage durch die Verwendung eines Cache
Sobald kurze Zeit später die tatsächliche Sprungentscheidung feststeht (d), wird sie
an die (Haupt-)Sprungvorhersageeinheit gemeldet und dort zur Modifikation des
zugehörigen Vorhersagezustands verwendet (e). Zum Abschluss ist der Vorhersage-
zustandscache nur noch zu aktualisieren, wobei ggf. ein neuer Eintrag erzeugt und
ein alter verdrängt wird (siehe Abschnitt 2.3.1).
Vorausschauende Sprungvorhersage (lookahead prediction). Im Prinzip sagt
man bei diesem Verfahren statt der aktuellen Sprungentscheidung die des darauf fol-
genden Sprungbefehls vorher (dabei wird ähnlich wie bei einer globalen adaptiven
Sprungvorhersage ausgenutzt, dass die Sprungentscheidungen aufeinander folgen-
der Sprungbefehle i.Allg. miteinander korrelieren). Selbst wenn für eine kompli-
zierte Sprungvorhersage zwei Takte benötigt werden, ist es so möglich, aufeinander
folgende Sprungbefehle verzögerungsfrei vorherzusagen, wobei hier vorausgesetzt
werden muss, dass die Sprungvorhersageeinheit in Fließbandtechnik arbeitet und
pro Takt eine Vorhersage durchführen kann. Mangels Relevanz soll die voraus-
schauende Sprungvorhersage hier nicht weiter beschrieben werden. Details sind in
[155, 200] zu finden.
Search WWH ::




Custom Search