AMD64 ist die x64-Implementierung der IA-32-x86-Architektur, die es auf x86-Prozessoren des Herstellers AMDu. a. ermöglicht, direkt mehr als 4 GiB Arbeitsspeicher zu adressieren. Die Befehlssatzerweiterung wurde ursprünglich 1999 für die K8-Generation von AMD entwickelt und ist seit 2003 mit den Opteron-Server-Prozessoren verfügbar.
Intel 64 ist die weitestgehend zu AMD64 kompatible Erweiterung für x86-Prozessoren von Intel. Der native 64-Bit Modus AMD64, in welchem 64-Bit-Register und Adressen zur Verfügung stehen, ist intern auch als long mode bekannt. Dieser folgt nach und ist sukzessiv aufbauend auf dem Real- respektive dem Protected Mode.
In den 1990er Jahren gab es bereits zahlreiche 64-Bit-Prozessoren. Der hauptsächlich bei PCs eingesetzte x86-Prozessor war bereits 1985 mit dem Intel 80386 von einer 16-Bit- auf eine 32-Bit-Architektur (damals i386-Architektur, retronym IA-32 bezeichnet) erweitert worden. Aufgrund eines Lizenzaustauschabkommens zwischen Intel und AMD konnten beide Firmen Erweiterungen von der jeweils anderen auch in den eigenen x86-Prozessoren verwenden.
Ende der 1990er Jahre wollte nun Intel ebenfalls ins Geschäft mit 64-Bit-Prozessoren einsteigen, entwickelte dazu jedoch eine neue Prozessorarchitektur, die mit x86 nichts zu tun hatte. Am 4. Oktober 1999 stellte Intel den ersten „Itanium“-Prozessor, das Ergebnis dieser gemeinsamen Arbeit mit HP, vor.[1]
Um zu unterstreichen, dass die Itanium-Architektur die Nachfolge der IA-32-x86-Architektur antreten sollte, nannte Intel diese „IA-64“ – „Intel Architecture 64-Bit.“ IA-32 bezeichnete als „Intel Architecture 32-Bit“ bereits die x86-Architektur des i386, also 32-Bit-x86.
AMD konterte mit einem Gegenentwurf, der auf die bestehende 32-Bit-x86-Architektur IA-32 aufbaute und diese um einen 64-Bit-Modus erweitern sollte: Am 5. Oktober 1999, einen Tag nach der Itanium-Vorstellung, verkündete AMD, an einer Befehlssatzerweiterung unter dem Titel x86-64 zu arbeiten.[2] Im Gegensatz zu Intels 64-Bit-Architektur Itanium/IA-64 baute AMDs Entwurf auf den herkömmlichen 32-Bit-Prozessoren mit IA-32-Befehlssatz auf, deren Register im 64-Bit-Modus verbreitert wurden. x86-64 ist dadurch uneingeschränkt zur bisherigen 32-Bit- und sogar zur 16-Bit-Architektur abwärtskompatibel. Als größter Vorteil erwies sich im 64-Bit-Modus jedoch die Verdoppelung der verfügbaren Register, sodass mit x86-64 nicht nur ein größerer Speicherbereich adressierbar ist, sondern in manchen Fällen Leistungsverbesserungen allein durch die breiteren Register erzielt werden konnten.
Im August 2000 lieferte AMD eine erste Spezifikation[3] und zeigte damit, dass ein sanfter Übergang von 32- auf 64-Bit-Umgebungen bei gleichzeitiger Modernisierung der x86-Architektur möglich war.
Intel beteiligte sich vorerst nicht an der x86-kompatiblen 64-Bit-Erweiterung und konzentrierte sich voll auf Itanium (IA-64), von dem bereits 2001 erste Prozessoren verfügbar waren. Itanium kam jedoch nicht richtig in Fahrt – da die IA-64-Architektur nicht zu x86 (IA-32) kompatibel war, musste die Software erst dafür geschrieben werden, was Zeit kostete.
Bei AMD dauerte es zwar bis zum April 2003, bis erste Opteron-Prozessoren mit der bei der Veröffentlichung in AMD64 umgetauften 64-Bit-Erweiterung verfügbar waren, diese wurden jedoch vom Markt sehr gut angenommen. Bestehende 32-Bit-x86-Software lief auch im 64-Bit-Modus, ohne verändert werden zu müssen. Mit den Opteron-Prozessoren erreichte AMD eine signifikante Beteiligung im x86-Servermarkt.
Ab Mitte der 2000er Jahre wurde AMD64 (vormals x86-64) und Intel 64 (vormals EM64T) auch mehr und mehr in Desktop-Prozessoren integriert. So gut wie alle Prozessoren nach der AMD-K8- von AMD sowie der Intel-Core-Mikroarchitektur von Intel bieten die 64-Bit-Befehlssatzerweiterung. Da AMD64 und Intel 64 nahezu identisch sind, hat sich, neben „amd64,“ die Bezeichnung „x64“ für 64-Bit-x86 bzw. 64-Bit-„IA-32“ durchgesetzt – auch in Abgrenzung zur inkompatiblen „Intel Architecture 64-Bit“ IA-64 des Itanium von Intel und HP, die seit 2016 nicht mehr weiterentwickelt wird.
Aufgrund der vielen sehr ähnlichen Bezeichnungen hat sich auch der Entwicklungsname x86-64, vor allem bei Architekturbezeichnungen, erhalten. So geben Kernel von Unix-Betriebssystemen (z. B.Linux oder XNU) bei der Eingabe von uname -m diese Bezeichnung, allerdings mit einem Unterstrich statt einem Bindestrich, aus. Ohne genauen Kontext bezeichnet x86_64 oder „x86-64“ dann sowohl die Implementierung von AMD – „AMD64“ – als auch jene von Intel – „Intel 64.“
Zusammenfassend lässt sich sagen, dass die Bezeichnungen x64 und x86-64 grundsätzlich sowohl für AMD64 als auch für Intel 64 stehen. Im Kontext von Software steht jedoch auch amd64 (meist in Kleinbuchstaben) ebenfalls für beide Implementierungen.
Implementierungen
Folgende Modelle verfügen über eine Implementierung der x64-Architektur AMD64: