Was ist der Unterschied zwischen Intel 64 und AMD64?

Was ist der Unterschied zwischen Intel 64 und AMD64?

Kann jemand erklären, ob es einen Unterschied zwischen den Architekturen von Intel64 und AMD64 gibt?

Antwort1

Soweit ich gelesen habe, handelt es sich bei der Extended Memory 64-bit Technology (EM64T) um Intels Implementierung von AMDs AMD64. Die Unterschiede zwischen Intel64 und AMD64 sind:

  • Die BSF- und BSR-Befehle von EM64T verhalten sich anders, wenn die Quelle 0 und die Operandengröße 32 Bit beträgt. Der Prozessor setzt das Null-Flag und lässt die oberen 32 Bit des Ziels undefiniert.

  • AMD64 unterstützt 3DNow!-Anweisungen. Dazu gehören Prefetch mit den Opcodes 0x0F 0x0D und PREFETCHW, die zum Verbergen der Speicherlatenz nützlich sind.

  • EM64T fehlt die Fähigkeit, eine reduzierte (und damit schnellere) Version des Gleitkommazustands zu speichern und wiederherzustellen (unter Einbeziehung der Anweisungen FXSAVE und FXRSTOR).

  • EM64T fehlen einige modellspezifische Register, die als architektonisch für AMD64 gelten. Dazu gehören SYSCFG, TOP_MEM und TOP_MEM2.

  • EM64T unterstützt Mikrocode-Updates wie im 32-Bit-Modus, während AMD64-Prozessoren ein anderes Mikrocode-Update-Format und andere Steuer-MSRs verwenden.

  • Der CPUID-Befehl von EM64T ist sehr herstellerspezifisch, wie es bei Prozessoren im x86-Stil üblich ist.

  • EM64T unterstützt die Anweisungen MONITOR und MWAIT, die von Betriebssystemen verwendet werden, um Hyper-Threading besser bewältigen zu können.

  • AMD64-Systeme ermöglichen die Verwendung der AGP-Blende als IO-MMU. Betriebssysteme können dies nutzen, um normalen PCI-Geräten DMA für Speicher über 4 GiB zu ermöglichen. EM64T-Systeme erfordern die Verwendung von Bounce-Puffern, die langsamer sind.

  • SYSCALL und SYSRET werden auf EM64T ebenfalls nur im IA-32e-Modus (nicht im Kompatibilitätsmodus) unterstützt. SYSENTER und SYSEXIT werden in beiden Modi unterstützt.

  • Nahzweige mit dem Präfix 0×66 (Operandengröße) verhalten sich anders. Ein CPU-Typ löscht nur die oberen 32 Bits, während der andere Typ die oberen 48 Bits löscht.

Antwort2

BeiWikipedias x86-Seitedu kannst lesen

In den Jahren 1999-2003 erweiterte AMD diese 32-Bit-Architektur auf 64 Bit und bezeichnete sie in frühen Dokumenten als x86-64 und später als AMD64. Intel übernahm bald AMDs Architekturerweiterungen unter dem Namen IA-32e, der später in EM64T und schließlich in Intel 64 umbenannt wurde.

Mit anderen Worten: Die Differenzierung ist hauptsächlich Marketing. Es gibt Intel- und AMD-spezifische Erweiterungen des Befehlssatzes, aber solange Sie Programme im Benutzerbereich schreiben, müssen Sie den Unterschied im Allgemeinen nicht kennen.

verwandte Informationen