Information Technology Reference
In-Depth Information
führt wird, der das vollständige Leerlaufen des Fließbands bewirkt. Es ist klar, dass
dies den durchschnittlichen Befehlsdurchsatz negativ beeinflusst.
In modernen Prozessoren ist das In-der-Reihe-Starten von Befehlen nicht gebräuch-
lich. Dies ist insofern überraschend, weil der Realisierungsaufwand signifikant
geringer und der kritische Pfad ggf. kürzer ist als für superskalare Prozessoren, die
die Befehle außer-der-Reihe starten können. Selbst bei Zugrundelegung gleicher
Taktfrequenzen, sollten ähnliche Ausführungsgeschwindigkeiten erreichbar sein,
sofern die auszuführenden Programme statisch optimiert werden (z.B. wie dies in
Abschnitt 3.1.5 zu den VLIW-Prozessoren beschrieben wurde).
Bemerkung. Der Umfang, in dem ein superskalarer Prozessor Befehle parallel ausführen kann,
ist davon abhängig, in welchem Maße die einzelnen Fließbandstufen Parallelverarbeitung unterstüt-
zen. Das schwächste Glied der Kette ist hier maßgebend. So kann ein superskalarer Prozessor, der
zwar 10 Operationen gleichzeitig bearbeiten, aber nur zwei Ergebnisse pro Takt in den Register-
speicher schreiben kann, im Durchschnitt nicht mehr als zwei Operationen pro Takt ausführen. Nor-
malerweise sind jedoch nicht die verfügbaren Verarbeitungseinheiten und Rückschreibports des
Registerspeichers für die maximal erreichbare Parallelität verantwortlich, sondern der Befehlsdeco-
der. Es ergibt nämlich keinen Sinn, dass der Decoder eine größere Anzahl von Operationen parallel
in die Verarbeitungseinheiten entlässt, als Verarbeitungseinheiten vorhanden sind und als sich
Ergebnisse in den Registerspeicher schreiben lassen.
3.2.2 Parallelisierung durch Umordnung der Befehlsreihenfolge
Die beiden bekanntesten Verfahren zur Befehlsparallelisierung, bei denen die
Befehle in einer zum sequentiellen Programm veränderten Reihenfolge ausgeführt
werden, sind bereits in den sechziger Jahren, damals für Großrechner, konzipiert
worden. Das aus dem Jahre 1964 stammende ältere sog. Scoreboarding (etwa
Anschreiben) wurde bei Control Data von J.E. Thornton für die CDC 6600 entwi-
ckelt und auch realisiert [64]. Es wird im Folgenden beschrieben. Das bei der IBM
von R. Tomasulo entwickelte zweite Verfahren wurde drei Jahre später in der IBM
360/91 verwirklicht [186, 47]. Es verwendet sog. Reservierungsstationen (reserva-
tion stations) zur Lösung von Abhängigkeiten und wird in den meisten modernen
Prozessoren, wie dem Pentium 4 von Intel [80], dem Athlon64 von AMD [2, 3, 4, 5,
6], dem PowerPC 970 von IBM [67], dem UltraSPARC IIIi von Sun [173] u.a. ver-
wendet. Das Verfahren wird im Anschluss an das Scoreboarding beschrieben.
Parallelisierung mit Scoreboard
Falls für einen einfachen superskalaren Prozessor, der die Befehle in-der-Reihe star-
tet, nicht bereits bei der Programmierung berücksichtigt wird, welche Befehle zur
Laufzeit parallel ausgeführt werden sollen, sinkt der Befehlsdurchsatz in Bereiche,
die sich auch von rein skalar arbeitenden Prozessoren erreichen lassen. Normaler-
weise sind nämlich die aufeinander folgenden Befehle eines sequentiell formulier-
ten Programms voneinander datenabhängig und können daher nur sequentiell ausge-
führt werden. Der Befehlsdurchsatz lässt sich in einem solchen Fall jedoch verbes-
sern, indem man Befehle parallel ausführt, die nicht unmittelbar aufeinander fol-
gend codiert sind. Dies entspricht einer Optimierung des Programms zur Laufzeit,
 
Search WWH ::




Custom Search