Intel Itanium: 64 Bit und neue Architektur für den Servermarkt (Fortsetzung)
Weitere Eigenschaften der IA64:
128 Integer General Registers (GR0 - GR127) von 64 Bit Breite
128 Floating Point Registers (FR0 - FR127) von 82 Bit Breite
64 Predicate Registers (PR0 - PR63) von Einem Bit Breite
8 Branch Registers (BR0 - BR7) von 64 Bit Breite
Current Frame Marker Register von 38 Bit Breite
128 Application Registers (AR0 - AR127) von 64 Bit Breite
Weitere Register: Performance Monitor Data Register, User Mask Register und Prozessor Identification Registers
10 stufige Pipeline
Fehlerkorrektur (ECC) für alle verfügbaren Caches
32 KB on-die L1-Cache, 4-fach assoziativ
96 KB on-die L2-Cache, 6-fach assoziativ
2 bis 4 MB L3-Cache, 4-fach assoziativ, läuft mit vollem Prozessortakt
Der Mikroprozessor ist trotz der stark veränderten Architektur auf Emulationsebene
vollständig kompatibel zur IA-32 - Architektur: Er kann 32 Bit Maschinencode
nach IA-32 Standard ausführen, entweder in einem reinen 32 Bit Betriebsmodus mit
installiertem 32 Bit Betriebssystem, oder im 32 Bit Kompatibilitätsmodus bei
installiertem 64 Bit Betriebssystem.
Wie auf der Grafik zu erkennen ist, prüft der Mikroprozessor beim Betriebssystemstart
ob er IA-32 Modus oder der IA-64 Modus aktiviert wird.
Zwischen den beiden Betriebsmodi gibt es laut Intel keinen Unterschied in der
Geschwindigkeit der Ausführung, leider war es mir jedoch aufgrund der nicht
Verfügbarkeit eines Itanium - Systems diese Aussage in der Praxis nachzuprüfen.
Für den Maschinenprogrammierer ist der Itanium also eine echte Herausforderung.
Nicht nur erfordert er eine optimale Anpassung des Maschinencodes, er stellt aufgrund seiner
Architektur auch noch sehr hohe Anforderungen an das Wissen und Können des Programmierers.
Die In-Order-Execution stellt sehr hohe Anforderungen an den Compiler, kleine Fehler wie sie bei
jedem Compiler üblich sind verzeiht die IA-64 nicht mehr. Jeder kleine Fehler wird gnadenlos mit
Wartezyklen seitens des Mikroprozessors bestraft. Bereits diese Tatsache zeigt, dass Intel mit der
IA-64 ausschließlich den Servermarkt im Visier haben kann.
Da Intel die Cache - Struktur beim Itanium im Gegensatz zum Pentium 4 wieder ziemlich vielen
Änderungen unterworfen hat und diese im „Intel Itanium Processor Reference Manual for Software
Optimization“ auf mehreren Seiten genau beschreibt, hier mal die übersetzte Zusammenfassung
der Cache - Struktur:
Die Speicherhierarchie umfasst:
L1 Data Cache (L1-D)
L1 Instruction Cache (L1-I)
L2 Unified Cache (L2)
L3 Unified Cache (L3)
L1-D Translocation Lookaside Buffer (L1-DTLB)
L2 Data Translocation Lookaside Buffer (L2-DTLB)
Instruction Translation Cache (ITLB)
Hauptspeicher
L1 Data & Instruction Cache:
Der L1-D besitzt eine Kapazität von 16 KB, ist 4fach assoziativ, write through.
Es sind entweder zwei Schreib-, zwei Lade- oder jeweils ein Schreib- und Ladezugriff pro Taktsignal möglich.
Die Latenz bei einem Integer-Ladezugriff beträgt zwei Takte, Floating Point Ladezugriffe beachten den L1-D
grundsätzlich nicht.
Im Falle eines „Store-to-Load forwarding“, also einem Ladezugriff auf einen soeben erst geschriebenen
Wert, können eine längere Wartezeit haben. Ein Lesezugriff auf einen innerhalb der letzten drei Taktzyklen
geschriebenen Wert umgeht den L1-D grundsätzlich und greift auf den L2 Cache zurück.
Der L1-I besitzt ebenfalls eine Kapazität von 16 KB und ist ebenso ist 4fach assoziativ.
L2 Unified Cache
Der L2-Cache ist 96 KB groß, 6-fach assoziativ, write back. Es sind entweder zwei Ladeoperationen
oder eine Schreiboperation möglich. Die Latenz eines Integer-Ladezugriffs beträgt 6 Taktzyklen,
die eines Floating Poing Ladezugriffs 9 Taktzyklen.
L3 Unified Cache
Der L3-Cache ist entweder 2 oder 4 MB groß. Die Latenz bei einem Integer Ladezugriff beträgt 21
Taktzyklen, bei einem Floating Point Ladezugriff 24 Taktzyklen
Diesen Artikel bookmarken oder senden an ...