Superskalarität

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Superskalar)
Wechseln zu: Navigation, Suche
Prozessorboard eines CRAY T3e parallel computers mit vier superskalaren Alpha-Prozessoren

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 Nebenläufigkeit (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, wird auch von einer Mikroarchitektur gesprochen.

Technisch gesehen ist Superskalarität eine Erweiterung des CPU-Pipelining und kommt in High-End-Prozessoren, seit dem Intel Pentium auch in Standard-Prozessoren der Personal-Computer-Technik, zum Einsatz. Im Bereich der Mikrocontroller ist Superskalarität nicht sehr verbreitet. ARM adressiert diesen Mangel 2014 mit den Cortex M7 Microcontrollern[1].

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.

Es werden drei verschiedene Arten von Superskalarität unterschieden:[2]

  • 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)
  • VLIW-Prozessoren (Very Long Instruction Word): 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. Skalarprozessoren sind fähig, einen Befehl pro Taktzyklus auszuführen.

Einzelnachweise[Bearbeiten]

  1. Cortex-M7 Processor http://arm.com/products/processors/cortex-m/cortex-m7-processor.php
  2. John Hennessy, David Patterson: Computer Architecture. A Quantitative Approach. 4th Edition, Morgan Kaufmann Publishers, ISBN 978-0-12-370490-0, S. 114.