- Superskalare Architektur
-
Unter Superskalarität versteht man die Eigenschaft eines Prozessors, mehrere Befehle aus einem Befehlsstrom gleichzeitig mit mehreren parallel arbeitenden Funktionseinheiten zu verarbeiten. Es handelt sich dabei um eine Parallelität auf Befehlsebene, bei der die feinkörnige Nebenläufigkeit zwischen den einzelnen Befehlen ausgenutzt wird. Da Superskalartechnik nicht den Befehlssatz der Architektur verändert, spricht man auch von einer Mikroarchitektur.
Im Englischen wird ein superskalarer Prozessor auch als multiple-issue processor bezeichnet.
Technisch gesehen ist Superskalarität eine Erweiterung des CPU-Pipelining und kommt inzwischen neben High-End-Prozessoren auch in Standard-Prozessoren wie den Intel Pentium M oder den Intel Core zum Einsatz.
Es werden drei verschiedene Arten von Superskalarität unterschieden[1]:
- Superskalare Prozessoren mit statischem Scheduling: Die Anzahl der pro CPU-Zyklus parallel ausführbaren Befehle ist nicht vorgegeben, sondern wird durch die CPU dynamisch bestimmt. Da es sich um statisches Scheduling handelt, wird die Reihenfolge der Befehle vom Compiler vorgegeben.
- Superskalare Prozessoren mit dynamischen Scheduling: Die CPU bestimmt sowohl, welche Befehle parallel ausgeführt werden, als auch die Reihenfolge in der dies geschieht (Out-of-order_execution)
- Very Long Instruction Word (VLIW) Prozessoren: Diese Architekturen benutzen deutlich längere Befehle, in denen die parallel auszuführenden Befehle vorgegeben werden. Bei der IA-64-Architektur wird dies auch EPIC genannt.
Mit Hilfe superskalarer Prozessoren kann die Anzahl der pro Takteinheit ausgeführten Befehle (Instructions per Cycle, IPC) erhöht werden. Grund dafür ist, dass das Laden von Befehlen und Operanden üblicherweise deutlich weniger Takteinheiten in Anspruch nimmt als die Ausführung der Befehle. Letzteres hängt zudem von der Art der Befehle (Addition, Multiplikation, Division, etc.) ab.Der Begriff superskalar ist eine Modifikation des Begriffs skalar. Skalare Architekturen sind fähig, einen Befehl pro Taktzyklus auszuführen.
Das Grundprinzip des superskalaren Ansatzes ist bereits im Jahr 1964 bei der Firma Control Data Corporation (CDC) aufgekommen, die den ersten Supercomputer (6600) entwickelte. Die Rechnerarchitektur des CDC 6600 beinhaltete bereits damals mehrere parallel arbeitende Funktionseinheiten für unterschiedliche mathematische Operationen.
Einzelnachweise
- ↑ John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach., 4th Edition, Morgan Kaufmann Publishers, ISBN 978-0-12-370490-0 (engl.), S. 114
Weblinks
Wikimedia Foundation.