CPU-Grundlagen: VLIW-Architekturen & Intels Itanium
Itanium Befehlsformat
Die Itanium-Architektur speichert die (einfachen) Instruktionen in 41 Bits. Zur Kodierung teilt sie alle Befehle in Klassen ein, für deren Ausführung verschiedene Hardware-Einheiten bereitstehen. Dabei gelten folgende Zusammenhänge:
Instruction Type | Description | Execution Unit Type |
---|---|---|
| ||
A | Integer ALU | I- or M-Unit |
I | Non-ALU Integer | I-Unit |
M | Memory | M-Unit |
F | Floating Point | F-Unit |
B | Branch | B-Unit |
L + X | Extended | I-Unit |
Die Kodierung erfolgt für die einzelnen Instruktionstypen unterschiedlich, da Intel zum Teil sich widersprechende Eigenschaften realisieren musste. Allerdings hat man versucht, die Kodierung möglichst einheitlich zu gestalten, was dem RISC-Prinzip entspricht: Jede Instruktion passt komplett mit allen Daten in einen Instruktions-Slot mit 41 Bit Länge.
Das obenstehende Bild zeigt jedoch eine Ausnahme: Die Kodierung von 64-Bit-Immediate-Daten. Hier existiert die gleiche Problematik wie bei RISC-Architekturen, da die Kodierung der Daten nicht in das Befehlsgrundformat passt. Die Lösung bei der IA heißt Extended Format (X) und bedeutet, dass der Compiler die 64-Bit-Konstante auf zwei Instruktionen verteilt. Das Kodierungsformat "0110" am Anfang sowie das Bit 20 (extension bit) auf 1 zeigen dem Prozessor die Aufteilung an.