Information Technology Reference
In-Depth Information
und den sequentiellen Strom von Befehlen zur Laufzeit zu parallelisieren. Dieses
den sog. superskalaren Prozessoren zugrunde liegende Konzept hat den Vorteil,
dass sich dabei Informationen nutzen lassen, die definitiv erst bei Ausführung eines
Programms zur Verfügung stehen. Zum Beispiel können Befehle, die vor und hinter
einem bedingten Sprung codiert sind, parallelisiert werden, ohne sich dabei bereits
bei der Übersetzung auf eine möglich Sprungrichtung festlegen zu müssen.
Von Vorteil ist außerdem, dass es möglich ist, superskalare Prozessoren kompatibel
zu ihren skalaren Vorgängern zu realisieren. So konnten Anfang der 90er Jahre die
skalaren Prozessoren der 80x86 Familie von Intel durch die deutlich leistungsfähi-
geren superskalaren Prozessoren der Pentium-Familie abgelöst werden, ohne dass
eine für Kunden normalerweise nicht durchführbare Neuübersetzung von Applikati-
onen und Betriebssystemen erforderlich gewesen ist. Ein günstiger Nebeneffekt
einer Technik zum Erreichen von Kompatibilität ist, dass sie i.Allg. auch Skalier-
barkeit gewährleistet.
Den genannten Vorteilen stehen jedoch auch wesentliche Nachteile gegenüber: (1.)
sind superskalare Prozessoren deutlich aufwendiger zu realisieren als statisch opera-
tionsparallel arbeitende Prozessoren, weshalb sie höhere Kosten sowohl in der Ent-
wicklung als auch in der Fertigung verursachen (zumindest wenn eine vergleichbare
Verarbeitungsgeschwindigkeit wie von einem konkurrierenden statisch operations-
parallel arbeitenden Prozessor erreicht werden soll). (2.) sind die zur Parallelisie-
rung benötigten Ressourcen stark begrenzt, weshalb sich nur Befehle parallelisieren
lassen, die innerhalb eines kleinen, als Befehlsfenster bezeichneten Adressbereichs
codiert sind. Relativierend sei jedoch angemerkt: Durch optimierende Übersetzung
ist es möglich die Befehle in einer Weise zu codieren, bei der das durch superskalare
Befehlsverarbeitung erreichbare Maß an Parallelität nicht hinter dem eines statisch
operationsparallel arbeitenden Prozessors zurückstehen muss. Verständlicherweise
setzt dies voraus, dass die Programme unter Berücksichtigung der maximal mögli-
chen Parallelität und nicht für einen skalaren Vorgänger übersetzt wurden.
Bemerkung. Von den in Abschnitt 3.1 beschriebenen Prozessoren werden sequentiell Befehle
verarbeitet, in denen jeweils mehrere Operationen statisch codiert sind. Das erreichbare Maß an
Parallelität ist somit gleich der maximalen Anzahl an Operationen, die sich in einem Befehl codie-
ren lassen. In superskalaren Prozessoren wird hingegen auf Befehlsebene parallelisiert. Somit ist
das erreichbare Maß an Parallelität gleich der maximalen Anzahl parallelisierbarer Befehle multip-
liziert mit der maximalen Anzahl an Operationen, die in einem Befehl codiert sind. Dies bedeutet
jedoch nicht, dass die superskalare Befehlsverarbeitung ein höheres Maß an Parallelität ermöglicht
als die statisch operationsparallele Verarbeitung. Vielmehr ist die Zuordnung der zu verarbeitenden
Einheiten unterschiedlich: Im einen Fall werden viele Operationen in einem Befehl codiert, im
anderen Fall einzelne Operationen in vielen Befehlen.
Die Verarbeitung von Befehlen durch superskalare Prozessoren lässt sich in drei
Phasen unterteilen (nicht zu verwechseln mit den Stufen eines Fließbands):
In der ersten, der sog. Decodierphase werden die Befehle parallel aus dem
Befehlsspeicher (bzw. -cache) gelesen, decodiert und die enthaltenen Operatio-
nen den einzelnen Verarbeitungseinheiten zugeordnet. Normalerweise liest man
in dieser Phase auch die zu verknüpfenden Operanden aus dem Registerspeicher.
Search WWH ::




Custom Search