Very Long Instruction Word (VLIW) ist ein Prozessor-Design, bei dem ein einzelnes maschinensprachliches Befehlswort mehrere unabhängige Operationen enthält, die der Prozessor gleichzeitig ausführt. Die Parallelität wird vom Compiler geplant – nicht von der Hardware.
Die Idee
Ein VLIW-Befehl ist 128 oder 256 Bit breit und steckt mehrere Operationen nebeneinander, etwa so:
| ALU-Op 1 | ALU-Op 2 | FP-Op | Load | Branch |
Jeder Slot gehört zu einer eigenen Funktionseinheit. Damit in jedem Takt alle Slots gefüllt sind, muss der Compiler die Datenabhängigkeiten exakt analysieren und unabhängige Operationen zusammenlegen – Instruction Scheduling und Codegenerierung leisten das (explizite Parallelität).
Geschichte und Beispiele
- 1980er-Forschung: Yale-Entwürfe, Multiflow Trace und Cydrome
- Transmeta Crusoe (um 2000): übersetzt x86-Befehle zur Laufzeit in VLIW-Mikrooperationen
- Intel/HP IA-64 „Itanium“ (2001): EPIC-Ansatz mit Vorhersage und spekulativem Laden – kommerziell nicht durchgesetzt, aber die Techniken flossen in spätere Entwürfe ein
- DSPs wie der TI TMS320C6x und eingebettete Medienprozessoren; frühere AMD-GPU-Shader nutzten ebenfalls VLIW
Vor- und Nachteile
Vorteile: Die Hardware bleibt einfach – kein Superskalar-Scheduling, kein Out-of-Order und kein Register-Renaming nötig. Das spart Transistoren und Strom und liefert deterministische Takte.
Nachteile: Der Compiler muss Cache-Latenzen und Sprungverhalten vorhersagen. Bei Speicherzugriffen und Verzweigungen bleiben Slots oft leer; fehlende binäre Kompatibilität, wenn sich die Breite ändert; Code wird größer durch NOP-Füllung. Deshalb hat sich VLIW vor allem in DSPs und eingebetteten Systemen gehalten, wo die Programme bekannt und planbar sind.
Abgrenzung
Superskalare Prozessoren entscheiden zur Laufzeit (dynamisch), welche Befehle parallel laufen; RISC-Prozessoren führen einfache Befehle einzeln aus; VLIW legt die Parallelität vorab im Compiler fest (statisch). Das Pipelining bleibt in allen Fällen die Grundlage, um mehrere Operationen pro Takt zu starten. Auch FPU-Operationen lassen sich so parallel planen. In der Debatte um CISC und RISC war VLIW der dritte Weg: nicht komplexe Einzelbefehle, sondern breite Befehlswörter aus vielen einfachen Operationen.