Kann jemand erklären, ob es einen Unterschied zwischen der Intel64- und der AMD64-Architektur gibt?
Kann jemand erklären, ob es einen Unterschied zwischen der Intel64- und der AMD64-Architektur gibt?
Antworten:
Nach dem, was ich unter Extended Memory 64-Bit-Technologie (EM64T) gelesen habe, ist Intels Implementierung von AMD64 AMD64 und die Unterschiede zwischen Intel64 und AMD64 sind:
Die BSF- und BSR-Befehle von EM64T verhalten sich unterschiedlich, wenn die Quelle 0 ist und die Operandengröße 32 Bit beträgt. Der Prozessor setzt das Null-Flag und lässt die oberen 32 Bits des Ziels undefiniert.
AMD64 unterstützt 3DNow! Anleitung. Dies beinhaltet Prefetch mit dem Opcode 0x0F 0x0D und PREFETCHW, die nützlich sind, um die Speicherlatenz auszublenden.
Dem EM64T fehlt die Möglichkeit, eine reduzierte (und damit schnellere) Version des Gleitkommazustands (einschließlich der FXSAVE- und FXRSTOR-Anweisungen) zu speichern und wiederherzustellen.
EM64T fehlen einige modellspezifische Register, die für AMD64 als architektonisch gelten. Dazu gehören SYSCFG, TOP_MEM und TOP_MEM2.
EM64T unterstützt die Mikrocode-Aktualisierung wie im 32-Bit-Modus, während AMD64-Prozessoren ein anderes Mikrocode-Aktualisierungsformat verwenden und MSRs steuern.
Der CPUID-Befehl von EM64T ist sehr herstellerspezifisch, wie es für Prozessoren im x86-Stil üblich ist.
EM64T unterstützt die Anweisungen MONITOR und MWAIT, die von Betriebssystemen verwendet werden, um Hyper-Threading besser zu handhaben.
AMD64-Systeme ermöglichen die Verwendung der AGP-Apertur als IO-MMU. Betriebssysteme können dies ausnutzen, um normale PCI-Geräte über 4 GiB DMA-Speicher zu lassen. EM64T-Systeme erfordern die Verwendung von Bounce-Puffern, die langsamer sind.
SYSCALL und SYSRET werden auch nur im IA-32e-Modus (nicht im Kompatibilitätsmodus) auf dem EM64T unterstützt. SYSENTER und SYSEXIT werden in beiden Modi unterstützt.
Nahe Verzweigungen mit dem Präfix 0 × 66 (Operandengröße) verhalten sich unterschiedlich. Ein CPU-Typ löscht nur die obersten 32 Bits, während der andere Typ die obersten 48 Bits löscht.
Auf der x86-Seite von Wikipedia können Sie lesen
In den Jahren 1999-2003 hat AMD diese 32-Bit-Architektur auf 64 Bit erweitert und sie in früheren Dokumenten als x86-64 und später als AMD64 bezeichnet. Intel übernahm bald die architektonischen Erweiterungen von AMD unter dem Namen IA-32e, der später in EM64T und schließlich in Intel 64 umbenannt wurde.
Mit anderen Worten, das Unterscheidungsmerkmal ist hauptsächlich Marketing. Es gibt Intel- und AMD-spezifische Erweiterungen für den Befehlssatz, aber solange Sie Programme im Benutzerbereich schreiben, müssen Sie den Unterschied im Allgemeinen nicht kennen.
you don't generally need to know the difference
Falsch: selbst kleiner Unterschied auf allgemeine Anweisungen ist sehr wichtig bugs.chromium.org/p/nativeclient/issues/detail?id=2010