web-dev-qa-db-fra.com

Quelle est la différence entre Intel 64 et AMD64?

Quelqu'un peut-il expliquer s'il existe une différence entre les architectures intel64 et AMD64?

27
Mayhem

D'après ce que j'ai lu, la technologie de mémoire étendue 64 bits (EM64T) est l'implémentation d'Intel de l'AMD64 d'AMD et les différences entre Intel64 et AMD64 sont les suivantes:

  • Les instructions BSF et BSR de l’EM64T agissent différemment lorsque la source est 0 et que la taille de l’opérande est 32 bits. Le processeur définit l'indicateur zéro et laisse les 32 bits supérieurs de la destination non définis.

  • AMD64 prend en charge 3DNow! instructions. Cela inclut la lecture anticipée avec l'opcode 0x0F 0x0D et PREFETCHW, qui sont utiles pour masquer la latence de la mémoire.

  • EM64T n'a pas la capacité de sauvegarder et de restaurer une version réduite (et donc plus rapide) de l'état à virgule flottante (impliquant les instructions FXSAVE et FXRSTOR).

  • Il manque à EM64T des registres spécifiques à un modèle considérés comme architecturaux par AMD64. Ceux-ci incluent SYSCFG, TOP_MEM et TOP_MEM2.

  • EM64T prend en charge la mise à jour du microcode en mode 32 bits, alors que les processeurs AMD64 utilisent un format de mise à jour du microcode différent et contrôlent les MSR.

  • L’instruction CPUID d’EM64T est très spécifique au fournisseur, comme c’est le cas pour les processeurs de type x86.

  • EM64T prend en charge les instructions MONITOR et MWAIT, utilisées par les systèmes d’exploitation pour mieux gérer l’hyper-threading.

  • Les systèmes AMD64 permettent l’utilisation de l’ouverture AGP en tant que IO-MMU. Les systèmes d’exploitation peuvent en tirer parti pour laisser les périphériques PCI normaux DMA en mémoire supérieurs à 4 Gio. Les systèmes EM64T nécessitent l’utilisation de tampons de rebond, qui sont plus lents.

  • SYSCALL et SYSRET ne sont également pris en charge qu'en mode IA-32e (pas en mode de compatibilité) sur EM64T. SYSENTER et SYSEXIT sont pris en charge dans les deux modes.

  • Les branches proches avec le préfixe 0 × 66 (taille de l'opérande) se comportent différemment. Un type de processeur efface uniquement les 32 bits supérieurs, tandis que l'autre type supprime les 48 bits supérieurs.

26
Mayhem

Sur la page x86 de Wikipedia , vous pouvez lire

En 1999-2003, AMD a étendu cette architecture 32 bits à 64 bits et l'a appelée x86-64 dans les documents antérieurs, puis AMD64. Intel a rapidement adopté les extensions architecturales d’AMD sous le nom IA-32e, qui a été renommé plus tard EM64T et enfin Intel 64.

En d'autres termes, le différenciateur est principalement le marketing. Il existe des extensions spécifiques à Intel et à AMD dans le jeu d'instructions, mais tant que vous écrivez des programmes dans l'espace utilisateur, vous n'avez généralement pas besoin de connaître la différence.

8
Joachim Isaksson