Quelqu'un peut-il expliquer s'il existe une différence entre les architectures intel64 et amd64?
Quelqu'un peut-il expliquer s'il existe une différence entre les architectures intel64 et amd64?
Réponses:
D'après ce que j'ai lu, la technologie de mémoire étendue 64 bits (EM64T) est la mise en œuvre d'Intel d'AMD64 d'AMD et les différences entre Intel64 et AMD64 sont:
Les instructions BSF et BSR d'EM64T agissent différemment lorsque la source est 0 et que la taille de l'opérande est de 32 bits. Le processeur met le drapeau zéro et laisse les 32 bits supérieurs de la destination indéfinis.
AMD64 prend en charge 3DNow! instructions. Cela inclut la prélecture avec l'opcode 0x0F 0x0D et PREFETCHW, qui sont utiles pour masquer la latence de la mémoire.
EM64T n'a pas la possibilité d'enregistrer et de restaurer une version réduite (et donc plus rapide) de l'état à virgule flottante (impliquant les instructions FXSAVE et FXRSTOR).
EM64T manque de registres spécifiques au modèle qui sont considérés comme architecturaux à AMD64. Il s'agit notamment de SYSCFG, TOP_MEM et TOP_MEM2.
EM64T prend en charge la mise à jour du microcode comme en mode 32 bits, tandis 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 normal pour les processeurs de style 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 comme IO-MMU. Les systèmes d'exploitation peuvent en profiter pour laisser les périphériques PCI normaux DMA à une mémoire supérieure à 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 (et non 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 CPU efface uniquement les 32 bits supérieurs, tandis que l'autre type efface les 48 bits supérieurs.
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 premiers documents, puis AMD64. Intel a rapidement adopté les extensions architecturales d'AMD sous le nom IA-32e, qui a ensuite été renommé 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 au 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.
you don't generally need to know the difference
Faux: même des différences mineures sur les instructions génériques sont très importantes. Bugs.chromium.org/p/nativeclient/issues/detail?id=2010