AMD64
De Wikipedia, la enciclopedia libre
AMD64, inicialmente conocida como x86-64, es una arquitectura basada en la extensión del conjunto de instrucciones x86 para manejar direcciones de 64 bits realizada por AMD. Además de una simple extensión contempla mejoras adicionales como duplicar el número y el tamaño de los registros de uso general y de instrucciones SSE.
El primer procesador con soporte para este conjunto de instrucciones fue el Opteron, lanzado en abril de 2003. Posteriormente ha sido implementado en múltiples variantes del Athlon 64 y del Pentium 4 de Intel, en éste último caso bajo una versión de Intel llamada EM64T.
Tabla de contenidos |
[editar] Descripción de la arquitectura
El conjunto de instrucciones del AMD x86-64 (renombrado posteriormente como AMD64) es una extensión directa de la arquitectura del x86 a una arquitectura de 64 bits, motivado por el hecho de que los 4GB de memoria que son direccionables directamente por una CPU de 32 bits ya no es suficiente para todas las aplicaciones. Algunos de los cambios:
- Nuevos registros. El número de registros de propósito general se ha incremento de 8 en los procesadores x86-32 a 16, y el tamaño de todos estos registros se ha incrementado de 32 bits a 64 bits. Adicionalmente, el número de registros MMX de 128 bits (usados para las instrucciones extendidas SIMD) se ha incrementado de 8 a 16. Los registros adicionales incrementan el rendimiento.
- Espacio de direcciones mayor. Debido a la arquitectura de 64 bits, la arquitectura AMD64 puede direccionar hasta 256 terabytes de memoria en sus implementaciones actuales. Esto, comparado con los 4GB del x86-32, de los que sólo la mitad está disponible para aplicaciones en la mayoría de las versiones de Microsoft Windows, el sistema operativo dominante en entornos domésticos. Las implementaciones futuras de la arquitectura del AMD64 puede proporcionar hasta 2 exabytes de memoria disponible. Si la paginación de memoria se utiliza correctamente, los sistemas operativos de 32 bits podrían tener acceso a algunas de las extensiones de dirección físicas sin tener que realizar la ejecución en modo largo (long). Aunque la memoria virtual de todos los programas en el modo de 32 bits está limitada a 4 GB.
- Llamadas al sistema más rápidas. Debido a que la segmentación no está soportada en el modo de 64 bits, las llamadas al sistema no tienen las latencias asociadas con almacenar y recuperar la información de segmentación ni tienen que realizar las comprobaciones necesarias de protección a nivel de segmentación. Por lo tanto, AMD ha introducido un nuevo interfaz de llamadas al sistema, al que se accede utilizando solamente la instrucción "SYSCALL". Aunque los sistemas operativos todavía pueden utilizar el sistema de interrupciones para las llamadas al sistema, en el modo de 64 bits utilizar "SYSCALL" es más rápido.
- Instrucciones SSE. La arquitectura AMD 64 incluye las extensiones de Intel SSE y SSE2, las últimas cpus incluyen SSE3 también. También están soportadas las instrucciones del x86 y MMX.
- Bit NX. El bit NX es una característica del procesador que permite al sistema operativo prohibir la ejecución del código en área de datos, mejorando la seguridad. Esta características está disponible en los modos de 32 y 64 bits, y está soportada por Linux, Solaris, Windows XP SP2, Windows Server 2003 SP1.
[editar] Modos de funcionamiento
Modo de funcionamiento | Requerido por el Sistema Operativo | Es necesaria la recompilación de la aplicación | Tamaño por defecto del direccionamiento | Tamaño por defecto de los operandos | Extensiones del registro | Tamaño típico del Registro de Propósito General | |
---|---|---|---|---|---|---|---|
Modo largo | Modo 64 bits | SO nuevos de 64 bits | sí | 64 | 32 | sí | 64 |
Modo de compatibilidad |
no | 32 | no | 32 | |||
16 | 16 | 16 | |||||
Modo de Herencia |
Modo protegido | SO de 32 bit heredados | no | 32 | 32 | no | 32 |
16 | 16 | ||||||
Modo 8086 virtual | 16 | 16 | 16 | ||||
Modo real | SO de 16 bit heredados |
[editar] Explicación del modo de funcionamiento
Hay dos modos primarios de operación para esta arquitectura:
- Modo Largo
- Es el modo de operación principal previsto en la arquitectura; es una combinación del modo de 64 bits nativo del procesador y un modo de 32 bits para la compatibilidad. También abandona algunas de las características no desarrolladas o menos utilizadas del 80386. Se utiliza por los sistemas operativos de 64 bits. Entre los que apoyan este modo están Linux, algunos BSDs, Solaris 10 y Windows XP Professional, edición x64.
- Dado que el conjunto de instrucciones es el mismo, no hay una penalización importante en la ejecución del código x86. Esto no sucede en la arquitectura de Intel IA-64, donde las diferencias en el ISA subyacente implican que la ejecución de código de 32 bits equivale a utilizar un procesador completamente diferente. En todo caso, en AMD 64, las aplicaciones de 32 bits del x86 podrían todavía beneficiarse de una recompilación a 64 bits. Los registros adicionales disponibles en el código de 64 bits, pueden ser utilizados por un compilador de alto nivel para la optimización.
- Usando el modo largo, un sistema operativo de 64 bits puede ejecutar aplicaciones de 32 bits y 64 bits simultáneamente. También un x86-64 incluye un soporte nativo para ejecutar las aplicaciones de 16 bits del x86. Microsoft ha excluido explícitamente el soporte para aplicaciones de 16 bits en la edición x64 de Windows XP Professional debido a los problemas de conseguir que el código de 16 bits del x86 pueda funcionar con su emulador WoW64.
- Modo de Herencia
- El modo utilizado por los sistemas operativos de 16 bits, como MS-DOS, y los sistemas operativos de 32 bits, como Windows XP. En este modo, sólo se puede ejecutar código de 16 bits o de 32 bits. Los programas de 64 bits (como el programa de instalación GUI para Windows XP Professional x64 y Windows Server 2003 x64) no se ejecutarán.
[editar] Estudio de mercado
AMD64 representa un cambio con el pasado de AMD cuyo comportamiento era seguir los estándares de Intel, aunque mantiene los comportamientos anteriores de Intel extendiendo la arquitectura del x86, desde los 16 bits 8086 hasta los 32 bits 80386, siempre sin eliminar compatibilidad hacia atrás. La arquitectura del AMD64 la arquitectura de 32 bits del x86 (IA-32) añadiendo registros de 64 bits, con modos de total compatibilidad de 32 bits y 16 bits para software ya existente. Incluso el modo de 64 bits permite compatibilidad hacía atrás, facilitando a las herramientas del x86, como los compiladores ser modificados a la arquitectura AMD64 con un esfuerzo mínimo. La arquitectura del AMD64 dispone de características como el bit NX.
[editar] Implementaciones
Los procesadores siguientes implementan la arquitectura AMD64:
- AMD 64 (K8 - Kryptonite)
- AMD Athlon 64
- AMD Athlon 64 X2
- AMD Athlon 64 FX
- AMD Opteron
- AMD Turion 64
- AMD Sempron (todos los que utilizan sockets 754, 939 y AM2)
- EM64T (Extended Memory 64 Technology)
[editar] Enlaces externos
- Documentación técnica de AMD para la arquitectura AMD64 (en inglés)
- Documentación libre AMD64 en CD-ROM (solamente en los E.E.U.U. y Canadá), y formato de descarga (en inglés).
- PlanetAMD64 - PlanetAMD64 - sitio con base de datos de drivers y software 64bit (en inglés).
- 64-bit computing in theory and practice (en inglés)
- Guía interactivo de la identificación del AMD Athlon 64
- Por último, Intel integra los 64 Bits al Celeron D