Intel 64
# 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 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)“ 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.
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 und SAHF. 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-Parameter iommu=soft).

## 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)