¿Alguien puede explicar si hay alguna diferencia entre las arquitecturas intel64 y amd64?
¿Alguien puede explicar si hay alguna diferencia entre las arquitecturas intel64 y amd64?
Respuestas:
Por lo que he leído, la tecnología de memoria extendida de 64 bits (EM64T) es la implementación de Intel de AMD64 de AMD y las diferencias entre Intel64 y AMD64 son:
Las instrucciones BSF y BSR de EM64T actúan de manera diferente cuando la fuente es 0 y el tamaño del operando es de 32 bits. El procesador establece el indicador de cero y deja los 32 bits superiores del destino sin definir.
AMD64 es compatible con 3DNow! instrucciones. Esto incluye la captación previa con el código de operación 0x0F 0x0D y PREFETCHW, que son útiles para ocultar la latencia de la memoria.
EM64T carece de la capacidad de guardar y restaurar una versión reducida (y por lo tanto más rápida) del estado de coma flotante (que involucra las instrucciones FXSAVE y FXRSTOR).
EM64T carece de algunos registros específicos del modelo que se consideran arquitectónicos para AMD64. Estos incluyen SYSCFG, TOP_MEM y TOP_MEM2.
EM64T admite la actualización de microcódigo como en el modo de 32 bits, mientras que los procesadores AMD64 usan un formato de actualización de microcódigo diferente y controlan MSR.
La instrucción CPUID de EM64T es muy específica del proveedor, como es normal para los procesadores de estilo x86.
EM64T admite las instrucciones MONITOR y MWAIT, utilizadas por los sistemas operativos para lidiar mejor con Hyper-threading.
Los sistemas AMD64 permiten el uso de la apertura AGP como IO-MMU. Los sistemas operativos pueden aprovechar esto para permitir que los dispositivos PCI normales DMA a la memoria por encima de 4 GiB. Los sistemas EM64T requieren el uso de búferes de rebote, que son más lentos.
SYSCALL y SYSRET también solo se admiten en modo IA-32e (no en modo de compatibilidad) en EM64T. SYSENTER y SYSEXIT son compatibles en ambos modos.
Las ramas cercanas con el prefijo 0 × 66 (tamaño de operando) se comportan de manera diferente. Un tipo de CPU borra solo los 32 bits superiores, mientras que el otro tipo borra los 48 bits superiores.
En la página x86 de Wikipedia puedes leer
En 1999-2003, AMD amplió esta arquitectura de 32 bits a 64 bits y se refirió a ella como x86-64 en los primeros documentos y más tarde como AMD64. Intel pronto adoptó las extensiones arquitectónicas de AMD con el nombre IA-32e, que luego pasó a llamarse EM64T y finalmente Intel 64.
En otras palabras, el diferenciador es principalmente marketing. Existen extensiones específicas de Intel y AMD para el conjunto de instrucciones, pero siempre que esté escribiendo programas en el espacio del usuario, generalmente no necesita saber la diferencia.
you don't generally need to know the difference
Incorrecto: incluso las pequeñas diferencias en las instrucciones genéricas son muy importantes bugs.chromium.org/p/nativeclient/issues/detail?id=2010