- VelociTi
-
Teilweise von einigen Autoren auch fälschlicherweise als Very Large Instruction Word bezeichnet. VLIW bezeichnet eine Eigenschaft einer Befehlssatzarchitektur (engl. Instruction Set Architecture, kurz: ISA) einer Familie von Mikroprozessoren. Ziel ist die Beschleunigung der Abarbeitung von sequentiellem Programmcode durch Ausnutzung von Parallelität auf Befehlsebene. Im Gegensatz zu superskalaren Prozessoren werden bei VLIW die Befehle nicht dynamisch zur Laufzeit vom Prozessor den einzelnen Funktionseinheiten zugewiesen, sondern der Compiler gruppiert parallel ausführbare Befehle. VLIW schließt die Verwendung einer Pipeline-Architektur nicht aus.
Inhaltsverzeichnis
Realisierung
Der Compiler überprüft während der Übersetzungszeit eines Programmes, welche Instruktionen parallel ausgeführt werden können. Diese parallelisierbaren Instruktionen werden in Gruppen zusammengefasst und ins Befehlsformat eingetragen. Dabei richtet sich die Gruppengröße nach der Anzahl der zu Verfügung stehenden parallel arbeitenden Ausführungseinheiten. Dies ist wiederum architekturabhängig. Die Instruktionen eines Befehls, der auch Leerinstruktionen zum Auffüllen enthalten kann, werden durch die Ausführungseinheiten zur Laufzeit des Programms parallel verarbeitet.
Eigenschaften
Wie der Name bereits sagt, ist ein Hauptmerkmal für VLIW das breite Befehlsformat, welches mehrere Instruktionen auf einmal enthält. Im Gegensatz zur Superskalartechnik übernimmt der Compiler die Aufgabe der Umordnung und Markierung der parallel ausführbaren Befehle, mit dem Ziel, die verfügbare Parallelität von Befehlsfolgen optimal zu nutzen. Zusätzliche Hardwarelogik, wie beispielsweise bei der Superskalartechnik, ist nicht notwendig; dadurch ist auf der CPU mehr Platz für weitere Funktionseinheiten vorhanden.
Die Parallelität auf Befehlsebene, die VLIW bietet, kann nicht immer voll ausgenutzt werden, wenn z.B. in einem Takt auf Grund von Datenabhängigkeiten nur ein Befehl ausgeführt werden kann. In diesen Fällen wird die Breite des Befehlswortes nicht ausgenutzt. Manche Hersteller versuchen, dieses Overhead-Problem durch eigene VLIW-Erweiterungen zu lösen. Texas Instruments entwickelte beispielsweise die VelociTI-Technik, bei der mehrere Befehle aufeinander folgender Takte in ein Befehlswort gepackt werden können. Bits an den Grenzen der einzelnen Befehle zeigen an, ob der folgende Befehl noch im gleichen oder erst im nächsten Takt ausgeführt werden soll. Ein ähnliches Konzept verwendet Intel in seiner IA-64 Architektur.
Vorteile
- Mehr Platz für die Funktionseinheiten
- Einfacher Kontrollpfad
- Gute Ausnutzung durch Compiler-Techniken wie Software-Pipelining
Nachteile
- Code lässt sich nicht unbedingt ohne größere Änderung auf andere Prozessoren portieren
Beispiele
Die VLIW- Architektur wurde erstmals 1978 im russischen Superskalarrechner "ELBRUS-1" realisiert[1]. Gemäß internationaler Ankündigung des russischen Elbrus 2000-Mikroprozessor im Jahre 1999 wurde diese Architektur erstmals auf Mikroprozessoren übertragen.
Die VLIW-Architektur wird in den CPUs von Transmeta benutzt, im Crusoe und im Efficeon.
Eine moderne, abgeänderte Implementation der VLIW-Architektur ist Intels Itanium-CPU, welche in diesem Fall EPIC genannt wird.
Wikimedia Foundation.