Intel Itanium: 64 Bit und neue Architektur für den Servermarkt (Fortsetzung)
Der Itanium verfügt über insgesamt 15 Recheneinheiten:
Vier Integer - Einheiten (I-Unit)
Vier Speicherverwaltungs - Einheiten (MM-Unit)
Drei Sprungvorhersage - Einheiten (Branch Units)
Zwei Fließkomma - Einheiten (Floating Point Units)
Zwei SSE(2) - Einheiten (SIMD/FMAC)
Diese Einheiten können vom Compiler in bestimmten vordefinierten Kombinationen angesprochen
werden, eine Tabelle der verschiedenen Kombinationen findet sich
hier
Insofern ist bereits gut sichtbar, inwiefern sich die IA64-Architektur signifikant
von der IA32-Architektur unterscheidet, weitere Unterschiede folgen jedoch noch.
Im Hauptteil des Artikels wurde das Prinzip der Out-Of-Order Execution genau erklärt.
Aufgrund der Tatsache das die Optimierung bei der IA64-Architektur bereits vor der
Ausführung durch den Compiler erfolgt, können Fälle in denen Out-Of-Order Execution
die Ausführung beschleunigt vermieden werden. Die Optimierung geht gar soweit, dass
der Compiler die Register bei Unterprozeduraufrufen standardmäßig umbenennt
(Register Renaming),
anstelle wie üblich die Daten auf dem Stack abzulegen.
Dieses Prinzip hat Intel strikt umgesetzt, und mit der IA64-Architektur zum Ersten
Mal seit der P5-Architektur wieder einen reinen In-Order Execution Kern konstruiert.
Im Klartext bedeutet dies: Bei gut auf die Architektur optimiertem Maschinencode
stellt eine In-Order Execution keinen allzu gravierenden Nachteil dar. Andererseits
erfolgt die Ausführung von nicht auf die Architektur optimiertem Maschinencode im
schlimmsten Fall erbärmlich langsam.
Und genau das ist der Grund für die geringe Ausführungsgeschwindigkeit von IA-32 Maschinencode.
Obwohl Intel in den Dokumenten und Präsentationen regelmäßig auf die überragende
IA-32-Performance des Itanium hindeutet ist mittlerweile bekannt, das dieselbige
äußerst schlecht ist, eben aufgrund obigen Fakts und der Tatsache, dass IA-32
Maschinencode in der Regel dafür ausgelegt ist, Out-Of-Order ausgeführt zu werden.
Diesen Artikel bookmarken oder senden an ...