Information Technology Reference
In-Depth Information
Verfeinernde Sprungvorhersage (overriding branch prediction). Hierbei wird
von einem einfachen, schnell arbeitenden Sprungvorhersageverfahren eine Sprung-
entscheidung zunächst vorläufig - möglichst in der ersten Fließbandstufe - vorher-
gesagt und mit Hilfe eines zweiten, in Fließbandtechnik aufgebauten komplexen
Sprungvorhersageverfahrens in einer nachfolgenden - möglichst der zweiten Fließ-
bandstufe - die Sprungvorhersage verfeinert (in jedem Fall sollte die Verfeinerung
vor der tatsächlichen Ausführung des Sprungbefehls erfolgen). Stellt sich heraus,
dass die beiden Sprungvorhersageverfahren unterschiedliche Sprungentscheidungen
vorhergesagt haben, wird zu Gunsten des präziseren Verfahrens entschieden, wobei
man die auf den Sprungbefehl im Fließband folgenden Befehle annulliert und die
Befehlsverarbeitung neu entsprechend der revidierten Sprungentscheidung aufsetzt.
Hierbei muss in Kauf genommen werden, dass bei korrekter Vorhersage des schnel-
len und falscher Vorhersage des präziseren Sprungvorhersageverfahrens die im
Fließband auf den Sprungbefehl folgenden Befehle erneut zu annullieren sind,
sobald der Sprungbefehl ausgeführt wird. Dies ist jedoch selten der Fall, so dass
i.Allg. keine oder nur wenige Befehle neu in das Fließband geladen werden müssen,
abhängig davon, ob die Vorhersage durch das schnellere oder das präzisere Sprung-
vorhersageverfahren erfolgt.
Nach Ausführung des Sprungbefehls wird die tatsächliche Sprungentscheidung an
die beiden Sprungvorhersageeinheiten gemeldet, deren Zustände entsprechend aktu-
alisiert werden. Da bei einer korrekten Vorhersage des schneller arbeitenden
Sprungvorhersageverfahrens eine Verfeinerung nicht erforderlich ist, lässt sich der
entsprechende Eintrag in der präziser arbeitenden Sprungvorhersageeinheit löschen
[33]. Die eingesparten Ressourcen sind dann zur Vorhersage anderer Sprungbefehle
nutzbar. Nachteilig ist jedoch, dass bei komplexen Sprungfolgen Einträge entfernt
werden können, die in Zukunft noch relevant sind.
Die verfeinernde Sprungvorhersage findet z.B. im PowerPC 604 von Motorola
[130] und im Alpha 21264 von Compaq [28] Einsatz. Im PowerPC 604 wird zuerst
ein sog. Sprungzielcache (branch target cache) ausgelesen, indem die Zieladressen
von Sprungbefehlen, die verzweigen, eingetragen sind (siehe Abschnitt 2.2.5).
Wenn zu einem Sprungbefehl ein Eintrag existiert, sagt man ihn als verzweigend,
sonst als nichtverzweigend vorher. Diese vorläufige Sprungvorhersage wird etwas
später durch eine dynamisch arbeitende Sprungvorhersageeinheit durch Gewichtung
entsprechend Bild 2.31 verfeinert. Beim Alpha 21264 führt man in der ersten Fließ-
bandstufe eine sog. Cache-Zeilen-Vorhersage ( line predictor ) durch, mit der die
jeweils nächste zu bearbeitende Cache-Zeile ausgewählt wird. In der zweiten Fließ-
bandstufe folgt dann eine präzise kombinierte adaptive Sprungvorhersage ( bi-mode )
[85].
Mehrfach-Sprungvorhersage (multiple branch prediction)
Bei der sequentiellen Verarbeitung von Befehlen in Fließbandtechnik reicht die Vor-
hersage einer einzelnen Sprungentscheidung pro Takt aus, um Kontrollflusskonf-
likte zu vermeiden. Dies gilt jedoch nicht unbedingt für parallel arbeitende Prozes-
Search WWH ::




Custom Search