Very Long Instruction Word
aus Wikipedia, der freien Enzyklopädie
VLIW bezeichnet eine Eigenschaft einer Instruction Set Architecture (ISA) einer Familie von Mikroprozessoren. Ziel ist die Beschleunigung der Abarbeitung von sequentiellem Programmcode durch Ausnutzung von Parallelität auf Instruktionsebene. 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 |
[Bearbeiten] 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.
[Bearbeiten] 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.
[Bearbeiten] Vorteile
- Mehr Platz für die Funktioneinheiten
- Einfacher Kontrollpfad
[Bearbeiten] Nachteile
- Optimale Ausnutzung lässt sich nur von Hand erreichen (Assembler schreiben)
- Gute Ausnutzung durch Compiler-Techniken wie Software-Pipelining
- Code lässt sich nicht unbedingt ohne größere Änderung auf andere Prozessoren portieren
[Bearbeiten] Beispiele
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.