Extensiones de arquitectura x86

Las extensiones de arquitectura x86 (características extendidas x86) son soluciones de ingeniería desarrolladas por varios fabricantes de microprocesadores x86 para sus propios procesadores, que a menudo están presentes en algunos modelos y no en otros. Los desarrolladores de software, antes de usarlos en sus propios programas, deben ejecutar un comando especial de CPUID que informe la presencia de ciertas extensiones. Si la extensión no es compatible, el programa debe salir o usar otros algoritmos que no usen extensiones.

A veces, las extensiones se usan con frecuencia en programas populares, luego casi todos los fabricantes comienzan a incluirlas en sus procesadores.

Las extensiones más famosas son MMX , SSE , 3DNow! , hiperprocesamiento . Básicamente, las nuevas extensiones son desarrolladas por Intel y luego recogidas por otros fabricantes. Pero a veces sucede que la propia Intel incluye extensiones creadas por otras empresas en sus procesadores. Por ejemplo, este fue el caso de la arquitectura x86-64 , primero desarrollada por AMD y luego implementada por Intel como Intel64/EM64T.

Conjunto estándar de extensiones ("de Intel")

Extensión indicador de CPUID Descripción
FPU EDX[0] Dispositivo de punto flotante integrado
EMV EDX[1] Extensión del modo V86
Delaware EDX[2] Herramientas de depuración mejoradas
PSE EDX[3] Páginas grandes (4MiB/2MiB)
TSC EDX[4] Contador de tiempo incorporado (ciclos de máquina)
MSR EDX[5] Registros dependientes del modelo
PAE EDX[6] Extensión de dirección física
MCE EDX[7] Generación de una excepción de control de máquina
CX8 EDX[8] Instrucción CMPXCHG8B admitida
APIC EDX[9] Controlador de interrupción local incorporado
SEP EDX[11] Se admiten las instrucciones SYSENTER y SYSEXIT
MTRR EDX[12] Es posible establecer el tipo de caché para ciertas áreas de memoria en registros especiales
PGE EDX[13] Indicador de página global compatible (no vaciado a TLB en el cambio de contexto)
MCA EDX[14] Controles de máquina compatibles
CMOV EDX[15] Se admiten instrucciones de transferencia de datos condicionales
P.A.T EDX[16] Admite atributos de almacenamiento en caché extendidos para páginas individuales
PSE36 EDX[17] Páginas grandes (4MiB) en direcciones físicas superiores a 4GiB
PSN EDX[18] Es posible leer el número de serie del procesador
CLFL EDX[19] Instrucción CLFLUSH admitida
DTES EDX[21] Debug Trace y EMON Store MSR
ACPI EDX[22] Hay medios para medir la temperatura del núcleo del procesador.
MMX EDX[23] Conjunto de instrucciones de tecnología Intel MMX compatible
FXSR EDX[24] Es posible guardar/restaurar el contexto extendido
SSE EDX[25] Conjunto de instrucciones SSE compatible
SSE2 EDX[26] Conjunto de instrucciones SSE2 compatible
SS EDX[27] auto-fisgonear
HTT EDX[28] Se admite la tecnología HyperThreading .
TM1 EDX[29] Admite controles de temperatura avanzados con generación de interrupciones
IA-64 EDX[30] El programa se ejecuta en modo de emulación en un procesador Itanium
PBE EDX[31] evento de ruptura pendiente
SSE3 ECX[0] Conjunto de instrucciones SSE3 compatible
PCLMUL ECX[1] Soporta instrucción PCLMUL
DTES64 ECX[2] Rastreo de depuración de 64 bits y MSR de almacenamiento EMON
LUN ECX[3] Compatible con instrucciones MONITOR/MWAIT
DSCPL ECX[4] Tienda de depuración calificada por CPL
VMX ECX[5] Admite la tecnología de virtualización Intel VT (Vanderpool)
SMX ECX[6] Admite la tecnología de administración de confianza Intel TXT (LaGrande)
est ECX[7] Compatible con la tecnología SpeedStep mejorada
TM2 EDX[8] Admite controles de temperatura avanzados con generación de interrupciones y registro THERM2_CONTROL
SSSE3 ECX[9] Admite el conjunto de instrucciones SSSE3
CID ECX[10] ID de contexto: la memoria caché de datos L1 se puede configurar en modo adaptativo o compartido
FMA ECX[12] Conjunto de instrucciones FMA compatible
CX16 EDX[13] Instrucción CMPXCHG16B admitida
ETPRD ECX[14] MISC_ENABLE.ETPRD
PDCM ECX[15] Rendimiento Capacidad de depuración MSR
DCA ECX[18] Acceso directo a caché (es decir, la capacidad de obtener datos de MMIO)
SSE4.1 ECX[19] Conjunto de instrucciones de tecnología SSE4.1 compatible
SSE4.2 ECX[20] Conjunto de instrucciones de tecnología SSE4.2 compatible
x2APIC ECX[21] Extensión APIC local , ID de 32 bits, registros APIC disponibles como MSR
MOVBE ECX[22] Instrucción MOVBE admitida
POPCNT ECX[23] Instrucción POPCNT admitida
AES ECX[25] Admite aceleración de hardware para el algoritmo de cifrado AES
XSAVE ECX[26] Soporte extendido para guardado/restauración total o parcial de contextos extendidos
OSXGUARDAR ECX[27] Bandera que indica a la aplicación que el sistema operativo puede guardar/restaurar contextos extendidos (registros XMM, etc.)
AVX ECX[28] Admite conjunto de instrucciones vectoriales AVX y codificación con prefijo VEX

Conjunto adicional de extensiones ("por AMD")

Extensión indicador de CPUID [1] Descripción
LLAMADA AL SISTEMA EDX[11] Se admiten las instrucciones SYSCALL y SYSRET
FCMOV EDX[16] Se admiten instrucciones de transferencia de datos condicional (FPU) de punto flotante [2] .
parlamentario EDX[19] Configuraciones multiprocesador admitidas
NX EDX[20] Se admite un atributo de página que prohíbe la ejecución del código del programa.
MMX+ EDX[22] Compatibilidad con extensiones de tecnología AMD MMX
MMX+ [3] EDX[24] Las extensiones de tecnología MMX de Cyrix [4] son ​​compatibles .
FFXSR EDX[25] Se admite el guardado/restauración rápidos de contextos extendidos
PG1G EDX[26] Páginas gigantes (1GiB)
TSCP EDX[27] Soporte mejorado para contador de tiempo incorporado
LM EDX[29] modo largo
3DNAHORA+ EDX[30] Compatible con 3DNow!
3DAHORA EDX[31] Compatible con 3DNow!
AHF64 ECX[0] Instrucciones LAHF/SAHF disponibles desde el modo de 64 bits
CMP ECX[1] HTT=1 indica HTT(0) o CMP(1)
MVS ECX[2] Admite la tecnología de virtualización AMD-V (Pacifica)
EAS ECX[3] Extensión APIC admitida (APIC_VER.EAS, EXT_APIC_FEAT, etc.)
CR8D ECX[4] Registro CR8 accesible desde el modo heredado
LZCNT ECX[5] Instrucción LZCNT admitida
SSE4A ECX[6] Conjunto de instrucciones SSE4A compatible
MSSE ECX[7] La falta de alineación en SSE es aceptable
¡3D ahora! ECX[8] Se admite la instrucción PREFETCH/PREFETCHHW
OSVW ECX[9] Solución alternativa visible para el sistema operativo
SII ECX[10] muestreo basado en instrucciones
DESOLLARLO ECX[12] Compatible con la tecnología de administración de confianza AMD-V
WDT ECX[13] Vigilancia integrada compatible
SHA Admite aceleración de hardware para el algoritmo de cifrado SHA

Notas

  1. Algunas banderas son similares a las banderas de extensión estándar y no se enumeran aquí.
  2. En los procesadores K7, la bandera indica la presencia de la extensión PAT del conjunto estándar
  3. De Cyrix
  4. En los procesadores que no son Cyrix, la bandera indica la presencia de la extensión FXSR del conjunto estándar

Enlaces