Grundlagen zu Intels Itanium (Teil I)

Register-Features

Die IA-64 definiert 128 Allzweckregister mit einer Breite von 64 Bit, 128 Floatingpoint-Register und 64 so genannte Predicate-Register (dazu später mehr). Außerdem besitzt die IA-64 noch eine Anzahl weiterer Spezialregister wie 128 Applikationsregister für den Kernel und die Stack Engine, acht Branch-Register und verschiedene ID- sowie Performance-Monitor-Register.

Die ersten 32 Allzweckregister werden statisch, die restlichen 96 Register hingegen dynamisch verwaltet. Das erste der statischen Register r0 ist fest auf den häufig benötigten Wert 0 gelegt. Die übrigen 127 Register können als Operand oder als Zielregister bei der Abarbeitung von Instruktionen dienen.

Jedes Allzweckregister kann auch als ein Bündel von acht 8-Bit-, vier 16-Bit- oder zwei 32-Bit-Registern aufgefasst werden, die sich mit einem einzelnen Befehl bearbeiten lassen. Ein solches Vorgehen bezeichnet man als SIMD (Single Instruction Multiple Data), es entspricht den MMX-Befehlen der Pentium-Prozessoren. SIMD-Befehle eignen sich gut für Multimedia-Anwendungen oder auch für sonstige 8-Bit-Aufgaben wie String-Verarbeitung. Als nettes Feature kann die IA-64 Registerinhalte beim Abspeichern ohne zusätzlichen Rechenschritt inkrementieren. Dies korrespondiert mit dem Postinkrement-Operator der Programmiersprache C und wird in der Programmierung vielfach verwendet.