Intel 64
Intel 64 ist die x64-Implementierung der IA-32-x86-Architektur von Intel. Sie ermöglicht, direkt mehr als 4 GiB Arbeitsspeicher zu adressieren. Die Befehlssatzerweiterung ist weitgehend zu AMD64 von AMD kompatibel und basiert grundlegend auf dieser.
Frühere Bezeichnungen[1] waren „Extended Memory 64 Technology“, abgekürzt EM64T, und IA-32e.
Geschichte
Aufgrund des Markterfolges der AMD64-Prozessoren und der immer größer werdenden Menge von AMD64-Software entschied sich Intel, das schon seit längerem unter den Codenamen Yamhill und Clackamas Technology entwickelte Intel 64 (frühere Bezeichnungen waren IA32e oder EM64T) endgültig in die NetBurst-Architektur zu integrieren. CPUs mit dieser Mikroarchitektur, Xeon-Prozessoren „Nocona“ ab Juni 2004, wurden damit in die Lage versetzt, die als AMD64 bekannten erweiterten x86-Befehle auszuführen, was die ursprüngliche 32-Bit-Architektur „Intel Architecture, 32 Bit“, kurz IA-32, zu einer 64-Bit-x86-Architektur (kurz x86-64 oder x64) machte.
Intel hatte sich lange Zeit gegen AMD64 ausgesprochen, da man die Stellung seiner eigenen 64-Bit-Itanium-Architektur „IA-64“ nicht gefährden wollte. Ging es nach Intel, so wäre die zur x86-Architektur inkompatible Itanium-Architektur als die exklusive 64-Bit-Architektur auf dem Markt eingeführt worden. Der Marketingname des Befehlssatzes wurde passend dazu als „Intel Architecture 64 (Bit)“[2] bezeichnet. Da AMD zwischenzeitlich viele namhafte OEM-Hersteller ins AMD64-Boot holen konnte und außerdem zu dieser Zeit der massive Umstieg auf 64-Bit in Desktop- und Workstation-Rechnern in vollem Gange war, gingen fast alle Beobachter davon aus, dass AMD64 in Zukunft die bedeutendste 64-Bit-Architektur werden würde. So musste dann auch Intel dem Druck des Marktes nachgeben, da unter anderem Microsoft nicht zwei 64-Bit-Versionen seines Betriebssystems Windows für Client-Systeme pflegen wollte. Bereits ausgelieferte IA-64-Versionen von Windows-Client-Systemen wurden nach dem Umschwenk auf Intel 64 nicht mehr weiterentwickelt. Seit April 2010 wurde auch die Neuentwicklung der Server-Software für die IA-64-Architektur eingestellt, was auf eine sinkende Nachfrage zurückzuführen ist.[3]
Auch die Linie der Mobilprozessoren wurden mit den 2006 eingeführten Core-2-Prozessoren um Intel 64 erweitert. Sie stellen die Abkehr von der NetBurst-Architektur dar und kamen auch in Desktop- und Server-Maschinen zum Einsatz.
Unterschiede zu AMD64
Einige Maschinenbefehle verhalten sich bei Intel 64 anders als bei AMD64 oder sind überhaupt nicht vorhanden. Die Details der Unterschiede zu AMD64 sind jedoch hauptsächlich für Entwickler von Compilern und Betriebssystemen relevant.
- Den ersten Versionen der EM64T-Implementierung fehlten die Maschinenbefehle
LAHF
undSAHF
.[4] Relevant wurde dieser Umstand erst mit späteren Betriebssystemen wie etwa Windows ab Version 8.1, da diese nunmehr diese 64-Bit-Maschinenbefehle voraussetzen. (Die 32-Bit-Version von Windows läuft jedoch weiterhin, mit den sich daraus ergebenden Einschränkungen.) - Ein weiterer Unterschied zwischen AMD64- und Intel-64-CPUs ist die bei Intel 64 optionale IOMMU-Einheit. Während bei AMD64-Prozessoren die IOMMU-Einheit, die AMD-Vi genannt wird, immer vorhanden ist, fehlt sie bei einigen Prozessor-Modellen von Intel, wo sie VT-d heißt. Dies führt dazu, dass keine direkten Speicherzugriffe (DMA) von Geräten, die keine 64-Bit-Adressierung unterstützen (vor allem 32-Bit-PCI-Geräte) auf Speicherbereiche oberhalb von 4 GiB möglich sind. Stattdessen muss der Kernel diese Fähigkeit in Software emulieren und die Daten zunächst in Puffer unterhalb der 4-GiB-Grenze schreiben. Dies macht beispielsweise Linux mit der Funktion software bounce buffering (
SWIOTBL
, manuell per Kernel-Parameteriommu=soft
[5]).
CPUs mit Intel 64
- Intel Pentium 4 (ab F-Modelle mit Prescott-Kern)
- Intel Pentium 4 Extreme Edition (ab Prescott-2M-Kern)
- Intel Pentium D
- Intel Pentium Extreme Edition
- Intel Celeron (ab Conroe-L Kern)
- Intel Celeron D
- Intel Celeron M (ab Merom-Kern)
- Intel Core 2 Duo, Core 2 Duo Extreme, Core 2 Quad, Core 2 Quad Extreme
- Intel-Core-i-Serie
- Intel Pentium Dual-Core (nicht Yonah-Kern (Sockel M))
- Intel Xeon (ab Nocona-Kern)
- Intel Atom (außer Z500- und N200-Serie)
Einzelnachweise
- Christof Windeck: EM64T heißt jetzt Intel 64. In: Heise online. 28. September 2006. Abgerufen am 6. Januar 2018.
- Lin Chao: Intel Technology Journal Q4, 1999 – Preface. (PDF; 1,4 MB) In: Intel Technology Journal. Intel, 1999, S. 1, abgerufen am 21. Januar 2024 (englisch): „With the close of the year 1999, it is appropriate that we look forward to Intel's next generation architecture--the Intel Architecture (IA)-64. The IA-64 represents a significant shift for Intel architecture: it moves from 32-bits to 64-bits. Targeted for production in mid-2000, the Itanium™ processor will be the first IA-64 processor.“
- Christof Windeck: Microsoft programmiert keine neue Itanium-Software mehr. In: Heise online. 6. April 2010. Abgerufen am 6. Januar 2018.
- Bestofmedia Team: Upgrading And Repairing PCs 21st Edition: Processor Specifications. IA-32e 64-Bit Extension Mode (x64, AMD64, x86-64, EM64T). Tom's Hardware, 14. Oktober 2013, S. 5, abgerufen am 6. Januar 2018 (englisch): „Note: Early versions of EM64T-equipped processors from Intel lacked support for the LAHF and SAHF instructions used in the AMD64 instruction set. However, Pentium 4 and Xeon DP processors using core steppings G1 and higher completely support these instructions;“
- IOMMU SWIOTBL. In: Gentoo Linux Wiki. Abgerufen am 28. Februar 2018 (englisch).