Information Technology Reference
In-Depth Information
Zusammenfassen der Zieladressen aller direkten und indirekten Sprungbefehle oder
ausschließlich der indirekten Sprungbefehle bilden. Kollisionen in der Pfadhistori-
entabelle sind vermeidbar, indem die Pfadhistorie mit dem Inhalt des Befehlszählers
verknüpft wird, ähnlich wie dies zur globalen adaptiven Sprungvorhersage in Bild
2.36 dargestellt ist. Auch ist es möglich, statt der Pfadhistorie die Sprungentschei-
dungshistorie bedingter Sprungbefehle zu verwenden. Dies ist deshalb gerechtfer-
tigt, weil die dynamische Auswahl einer Zieladresse oft durch Ausführung bedingter
Sprungbefehle erfolgt.
PHR
c
Sprungziel
Shift (n)
adr 1 - adr 2 - adr 3
adr 1 -adr 2 -adr 3 -adr 1
a
Pfadhistorientabelle
Pfadhistorie
Sprungziel
Sprungzielvorhersage
adr 1 - adr 2 - adr 3
adr 3
adr 1
adr 1 -adr 2 -adr 3 - adr 3
b
d
adr 2 - adr 3 - adr 1
adr 2
Bild 2.44. Prinzipielle Funktionsweise einer Einheit zur Vorhersage indirekter Sprungziele anhand
der globalen Pfadhistorie im Register PHR (path history register)
Ein entsprechender Ansatz wurde in [22] erfolgreich getestet. Bei einem an der TU
Berlin entwickelten weiteren Ansatz, der im Nemesis C realisiert ist, werden sowohl
die Pfadhistorie als auch die Sprungentscheidungshistorie für die Sprungzielvorher-
sage verwendet, und zwar, indem man sie durch Exclusives-Oder miteinander ver-
knüpft [114, 198]. Ein kommerzieller Prozessor mit einer Einheit zur Vorhersage
indirekt codierter Sprungziele ist schließlich der Pentium M (Banias) von Intel als
Komponente der sog. Centrino Mobiltechnologie [68]. Die restriktive Informations-
politik der Firma erlaubt es jedoch nicht, das Verfahren genau zu klassifizieren.
Mehrfach-Sprungzielcache
Die Vorhersage eines Sprungziels mit Hilfe eines einfachen Sprungzielcaches reicht
aus, wenn die Befehle sequentiell, ggf. auch in Fließbandtechnik ausgeführt werden.
Bei paralleler Arbeitsweise, wie z.B. in superskalaren Prozessoren (Abschnitt 3.2),
kann es jedoch erforderlich sein, die Befehle des auszuführenden Programmpfads
über Sprungbefehle hinweg in das Fließband einzuspeisen, was eine Vorhersage von
mehr als einem Sprungziel erforderlich macht. Statt der Befehlsadresse eines
bestimmten Sprungbefehls eine einzelne Zieladresse zuzuordnen, wird die Startad-
resse des nächsten zu verarbeitenden sog. Basisblocks mit einer Menge von Startad-
ressen nachfolgender Basisblöcke assoziiert, von denen die relevanten mit Hilfe
einer Mehrfach-Sprungvorhersage ausgewählt werden (ein Basisblock ist eine
Befehlsfolge, die eine Startadresse besitzt und mit einem Sprungbefehl endet 1 ).
Angenommen, die in Bild 2.45a durch stark ausgezeichnete Linien hervorgehoben
dargestellten Basisblöcke sollen parallel ausgeführt werden, dann lassen sich die
Search WWH ::




Custom Search