¿Cómo puedo saber si mi procesador tiene una característica particular? (conjunto de instrucciones de 64 bits, virtualización asistida por hardware, aceleradores criptográficos, etc.) Sé que el archivo /proc/cpuinfo
contiene esta información, en las flags
línea, pero ¿qué significan todas estas abreviaturas crípticas?
Por ejemplo, dado el siguiente extracto de /proc/cpuinfo
, ¿tengo una CPU de 64 bits? ¿Tengo virtualización de hardware?
model name : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
…
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority
Respuesta aceptada:
x86
(32 bits, también conocido como i386–i686 y 64 bits, también conocido como amd64. En otras palabras, su estación de trabajo, computadora portátil o servidor).
Preguntas frecuentes:¿Tengo...?
- 64 bits (x86_64/AMD64/Intel64)?
lm
- ¿Virtualización de hardware (VMX/AMD-V)?
vmx
(Intel),svm
(AMD) - ¿AES acelerado (AES-NI)?
aes
- TXT (TPM)?
smx
- ¿un hipervisor (anunciado como tal)?
hypervisor
La mayoría de las demás funciones son de interés únicamente para los compiladores o los autores del kernel.
Todas las banderas
La lista completa está en el código fuente del núcleo, en el archivo arch/x86/include/asm/cpufeatures.h
.
Funciones de CPU definidas por Intel, nivel de CPUID 0x00000001 (edx)
Consulte también Wikipedia y la tabla 2-27 en Referencia de programación de extensiones vectoriales avanzadas de Intel
fpu
:FPU integrada (soporte de coma flotante)vme
:Mejoras en el modo Virtual 8086de
:Extensiones de depuración (CR4.DE)pse
:Extensiones de tamaño de página (páginas de memoria de 4 MB)tsc
:Contador de marcas de tiempo (RDTSC)msr
:Registros específicos del modelo (RDMSR, WRMSR)pae
:Extensiones de dirección física (admite más de 4 GB de RAM)mce
:Excepción de comprobación de máquinacx8
:Instrucción CMPXCHG8 (comparación e intercambio de 64 bits)apic
:APIC integradosep
:SYSENTER/SYSEXITmtrr
:Registros de rango de tipo de memoriapge
:Habilitación global de página (bit global en PDE y PTE)mca
:Arquitectura de verificación de máquinacmov
:instrucciones CMOV (movimiento condicional) (también FCMOV)pat
:Tabla de atributos de páginapse36
:PSE de 36 bits (páginas enormes)pn
:número de serie del procesadorclflush
:Instrucción de vaciado de línea de cachédts
:Almacén de depuración (búfer para instrucciones de depuración y generación de perfiles)acpi
:ACPI a través de MSR (control de temperatura y modulación de la velocidad del reloj)mmx
:Extensiones multimediafxsr
:FXSAVE/FXRSTOR, CR4.OSFXSRsse
:instrucciones de vector Intel SSEsse2
:SSE2ss
:Fisgoneo propio de la CPUht
:Hyper-Threading y/o multinúcleotm
:Control de reloj automático (Monitor térmico)ia64
:Arquitectura Intel Itanium de 64 bits (que no debe confundirse con la arquitectura x86 de 64 bits de Intel con banderax86-64
o bit “AMD64” indicado por el indicadorlm
)pbe
:Soporte de activación de activación de interrupción pendiente (PBE# pin)
Funciones de CPU definidas por AMD, nivel de CPUID 0x80000001
Consulte también Wikipedia y la tabla 2-23 en Referencia de programación de extensiones vectoriales avanzadas de Intel
syscall
:SYSCALL (llamada rápida al sistema) y SYSRET (retorno de llamada rápida al sistema)mp
:Capaz de multiprocesamiento.nx
:Ejecutar Deshabilitarmmxext
:Extensiones AMD MMXfxsr_opt
:Optimizaciones FXSAVE/FXRSTORpdpe1gb
:páginas de un GB (permitehugepagesz=1G
)rdtscp
:Leer contador de marca de tiempo e ID de procesadorlm
:Modo largo (x86-64:amd64, también conocido como Intel 64, es decir, compatible con 64 bits)3dnowext
:AMD 3D ¡Ahora! extensiones3dnow
:3D ¡Ahora! (instrucciones de vector AMD, compitiendo con SSE1 de Intel)
Funciones de CPU definidas por Transmeta, nivel de CPUID 0x80860001
recovery
:CPU en modo de recuperaciónlongrun
:Control de potencia a largo plazolrti
:interfaz de tabla LongRun
Otras características, mapeo definido por Linux
cxmmx
:Extensiones Cyrix MMXk6_mtrr
:AMD K6 MTRR no estándarcyrix_arr
:Cyrix ARR (=MTRR)centaur_mcr
:Centaur MCR (=MTRR)constant_tsc
:TSC hace tictac a una tasa constanteup
:Núcleo SMP ejecutándose en UPart
:Temporizador siempre activoarch_perfmon
:Intel Architectural PerfMonpebs
:Muestreo basado en eventos precisosbts
:Tienda de seguimiento de sucursalesrep_good
:el microcódigo de representante funciona bienacc_power
:mecanismo de potencia acumulada de AMDnopl
:Las instrucciones NOPL (0F 1F)xtopology
:extensiones de enumeración de topología de CPUtsc_reliable
:Se sabe que TSC es confiablenonstop_tsc
:TSC no se detiene en los estados Ccpuid
:la CPU tiene la instrucción CPUID en sí mismaextd_apicid
:ha extendido APICID (8 bits)amd_dcm
:procesador multinodoaperfmperf
:APERFMPERFeagerfpu
:Restauración de FPU no perezosanonstop_tsc_s3
:TSC no se detiene en el estado S3tsc_known_freq
:TSC tiene una frecuencia conocidamce_recovery
:la CPU tiene controles de máquina recuperables
Funciones de CPU definidas por Intel, nivel de CPUID 0x00000001 (ecx)
Consulte también Wikipedia y la tabla 2-26 en Referencia de programación de extensiones vectoriales avanzadas de Intel
pni
:SSE-3 ("Nuevas instrucciones de Prescott")pclmulqdq
:Realice una multiplicación sin acarreo de la instrucción Quadword — acelerador para GCM)dtes64
:Tienda de depuración de 64 bitsmonitor
:Compatibilidad con Monitor/Mwait (complementos de Intel SSE3)ds_cpl
:Cal. CPL. Tienda de depuraciónvmx
:Virtualización de hardware:Intel VMXsmx
:Modo más seguro:TXT (compatible con TPM)est
:SpeedStep mejoradotm2
:Monitor Térmico 2ssse3
:SSE-3 suplementariocid
:ID de contextosdbg
:depuración de siliciofma
:Multiplicación fusionadacx16
:CMPXCHG16Bxtpr
:enviar mensajes de prioridad de tareaspdcm
:Capacidades de rendimientopcid
:Identificadores de contexto de procesodca
:Acceso directo a cachésse4_1
:SSE-4.1sse4_2
:SSE-4.2x2apic
:x2APICmovbe
:Instrucción Mover datos después de intercambiar bytespopcnt
:Devuelve la cuenta del número de bits establecidos a 1 instrucción (peso de Hamming, es decir, cuenta de bits)tsc_deadline_timer
:Temporizador de fecha límite Tscaes
/aes-ni
:Estándar de cifrado avanzado (nuevas instrucciones)xsave
:Guardar estados extendidos del procesador:también proporciona XGETBY,XRSTOR,XSETBYavx
:Extensiones vectoriales avanzadasf16c
:conversiones fp de 16 bits (CVT16)rdrand
:Lea el número aleatorio de la instrucción del generador de números aleatorios del hardwarehypervisor
:Ejecución en un hipervisor
Funciones de CPU definidas por VIA/Cyrix/Centaur, nivel de CPUID 0xC0000001
rng
:Generador de números aleatorios presente (xstore)rng_en
:Generador de números aleatorios habilitadoace
:criptografía en la CPU (xcrypt)ace_en
:criptografía en la CPU habilitadaace2
:Motor criptográfico avanzado v2ace2_en
:ACE v2 habilitadophe
:Motor hash PadLockphe_en
:PHE habilitadopmm
:Multiplicador PadLock Montgomerypmm_en
:PMM habilitado
Indicadores de AMD más extendidos:nivel de CPUID 0x80000001, ecx
lahf_lm
:Cargue AH desde banderas (LAHF) y almacene AH en banderas (SAHF) en modo largocmp_legacy
:Si es así, HyperThreading no es válidosvm
:“Máquina virtual segura”:AMD-Vextapic
:espacio APIC extendidocr8_legacy
:CR8 en modo de 32 bitsabm
:Manipulación avanzada de bitssse4a
:SSE-4Amisalignsse
:indica si se genera una excepción de protección general (#GP) cuando algunas instrucciones SSE heredadas operan en datos no alineados. También depende de CR0 y el bit de verificación de alineación3dnowprefetch
:instrucciones de captación previa de 3DNowosvw
:indica una solución alternativa visible del sistema operativo, que permite que el sistema operativo solucione las erratas del procesador.ibs
:Muestreo basado en instruccionesxop
:instrucciones AVX extendidasskinit
:Instrucciones SKINIT/STGIwdt
:Temporizador de vigilancialwp
:Perfilado ligerofma4
:instrucciones MAC de 4 operandostce
:extensión de caché de traducciónnodeid_msr
:ID de nodo MSRtbm
:Manipulación de bits finalestopoext
:Hojas de CPUID de extensiones de topologíaperfctr_core
:Extensiones de contador de rendimiento básicoperfctr_nb
:Extensiones de contador de rendimiento NBbpext
:extensión de punto de interrupción de datosptsc
:contador de marca de tiempo de rendimientoperfctr_l2
:Extensiones de contador de rendimiento L2mwaitx
:MWAIT
extensión (MONITORX
/MWAITX
)
Indicadores auxiliares:definidos por Linux:para características dispersas en varios niveles de CPUID
ring3mwait
:Anillo 3 MONITOR/MWAITcpuid_fault
:Fallo de Intel CPUIDcpb
:Aumento del rendimiento de AMD Coreepb
:compatibilidad con IA32_ENERGY_PERF_BIAScat_l3
:Tecnología de asignación de caché L3cat_l2
:Tecnología de asignación de caché L2cdp_l3
:Código y priorización de datos L3invpcid_single
:efectivamenteinvpcid
yCR4.PCIDE=1
hw_pstate
:AMD HW-PStateproc_feedback
:AMD ProcFeedbackInterfazsme
:Cifrado de memoria seguro de AMDpti
:Aislamiento de la tabla de páginas del núcleo (Kaiser)retpoline
:Mitigación de retpolina para la variante 2 de Spectre (ramas indirectas)retpoline_amd
:Mitigación de AMD Retpolineintel_ppin
:Número de inventario del procesador Intelavx512_4vnniw
:Instrucciones de red neuronal AVX-512avx512_4fmaps
:AVX-512 Precisión simple de acumulación múltiplemba
:Asignación de ancho de banda de memoriarsb_ctxsw
:Rellene RSB en los cambios de contexto
Indicadores de virtualización:definidos por Linux
tpr_shadow
:Sombra Intel TPRvnmi
:NMI virtual de Intelflexpriority
:Intel FlexPriorityept
:Tabla de páginas extendida de Intelvpid
:ID de procesador virtual Intelvmmcall
:prefiereVMMCALL
aVMCALL
Funciones de CPU definidas por Intel, nivel de CPUID 0x00000007:0 (ebx)
fsgsbase
:{RD/WR}{FS/GS}Instrucciones BÁSICAStsc_adjust
:TSC ajuste MSRbmi1
:Extensiones de manipulación de bits del primer grupohle
:Elisión de bloqueo de hardwareavx2
:instrucciones AVX2smep
:Protección de ejecución del modo supervisorbmi2
:Extensiones de manipulación de bits del segundo grupoerms
:REP MOVSB/STOSB mejoradoinvpcid
:invalidar ID de contexto de procesadorrtm
:memoria transaccional restringidacqm
:Supervisión de QoS de cachémpx
:Extensión de protección de memoriardt_a
:Asignación de tecnología del director de recursosavx512f
:Fundación AVX-512avx512dq
:AVX-512 Instrucciones dobles/cuádruplesrdseed
:La instrucción RDSEEDadx
:Las instrucciones ADCX y ADOXsmap
:Prevención de acceso en modo supervisorclflushopt
:CLFLUSHOPT
instrucciónclwb
:CLWB
instrucciónintel_pt
:Seguimiento del procesador Intelavx512pf
:AVX-512 Precargaavx512er
:AVX-512 exponencial y recíprocoavx512cd
:AVX-512 Detección de conflictossha_ni
:Extensiones de instrucciones SHA1/SHA256avx512bw
:AVX-512 Instrucciones de byte/palabraavx512vl
:AVX-512 128/256 Extensiones de longitud vectorial
Características de estado extendidas, nivel de CPUID 0x0000000d:1 (eax)
xsaveopt
:XSAVE
optimizadoxsavec
:XSAVEC
xgetbv1
:XGETBV
con ECX =1xsaves
:XSAVES
/XRSTORS
Subhoja de QoS de CPU definida por Intel, nivel de CPUID 0x0000000F:0 (edx)
cqm_llc
:LLC QoS
Subhoja de QoS de CPU definida por Intel, nivel de CPUID 0x0000000F:1 (edx)
cqm_occup_llc
:Monitoreo de ocupación de LLCcqm_mbm_total
:Supervisión total de MBM de LLCcqm_mbm_local
:Supervisión de MBM local de LLC
Funciones de CPU definidas por AMD, nivel de CPUID 0x80000008 (ebx)
clzero
:CLZERO
instrucciónirperf
:contador de rendimiento retirado de instruccionesxsaveerptr
:Guardar/restaurar siempre los punteros de error de FP
Hoja de administración térmica y de energía, nivel de CPUID 0x00000006 (eax)
dtherm
(anteriormentedts
):sensor térmico digitalida
:Aceleración dinámica de Intelarat
:siempre ejecutando el temporizador APICpln
:Notificación de límite de potencia de Intelpts
:Estado térmico del paquete Intelhwp
:Estados P de hardware de Intelhwp_notify
:Notificación HWPhwp_act_window
:Ventana de actividad de HWPhwp_epp
:Preferencia de rendimiento energético de HWPhwp_pkg_req
:solicitud de nivel de paquete HWP
Identificación de funciones de SVM de AMD, nivel de CPUID 0x8000000a (edx)
npt
:Compatibilidad con tablas de páginas anidadas de AMDlbrv
:Soporte de virtualización AMD LBRsvm_lock
:MSR de bloqueo AMD SVMnrip_save
:Guardar AMD SVM next_riptsc_scale
:soporte de escalado AMD TSCvmcb_clean
:Compatibilidad con bits de limpieza AMD VMCBflushbyasid
:soporte AMD flush-by-ASIDdecodeassists
:Asistencia de AMD Decode Assistpausefilter
:intercepción de pausa filtrada por AMDpfthreshold
:Umbral de filtro de pausa de AMDavic
:Controlador de interrupción virtualvmsave_vmload
:Virtual VMSAVE VMLOADvgif
:GIF virtuales
Funciones de CPU definidas por Intel, nivel de CPUID 0x00000007:0 (ecx)
avx512vbmi
:Instrucciones de manipulación de bits vectoriales AVX512umip
:Protección de instrucción de modo de usuariopku
:Claves de protección para el espacio de usuarioospke
:Claves de protección del sistema operativo habilitadasavx512_vbmi2
:Instrucciones adicionales de manipulación de bits vectoriales AVX512gfni
:Galois Field Nuevas instruccionesvaes
:Vector AESvpclmulqdq
:Doble cuádruple multiplicación sin acarreoavx512_vnni
:Instrucciones de red neuronal vectorialavx512_bitalg
:instrucciones VPOPCNT[B,W] y VPSHUF-BITQMBavx512_vpopcntdq
:POPCNT para vectores de DW/QWla57
:tablas de páginas de 5 nivelesrdpid
:instrucción RDPID
Funciones de CPU definidas por AMD, nivel de CPUID 0x80000007 (ebx)
overflow_recov
:soporte de recuperación de desbordamiento de MCAsuccor
:contención y recuperación de errores incorregiblessmca
:MCA escalable
Errores de CPU detectados (definidos por Linux)
f00f
:Intel F00Ffdiv
:CPU FDIVcoma
:Cyrix 6×86 comaamd_tlb_mmatch
:tlb_mmatch
Errata de AMD 383amd_apic_c1e
:apic_c1e
Errata de AMD 40011ap
:APIC local incorrecto, también conocido como 11APfxsave_leak
:FXSAVE filtra FOP/FIP/FOPclflush_monitor
:AAI65, se requiere CLFLUSH antes de MONITORsysret_ss_attrs
:SYSRET no repara los atributos de SSespfix
:"" IRET a SS de 16 bits corrompe los bits altos de ESP/RSPnull_seg
:Anular un selector conserva la baseswapgs_fence
:SWAPGS sin dependencia de entrada en GSmonitor
:Se requiere IPI para activar la CPU remotaamd_e400
:CPU está entre los afectados por Erratum 400cpu_meltdown
:la CPU se ve afectada por un ataque de fusión y necesita el aislamiento de la tabla de páginas del kernelspectre_v1
:La CPU se ve afectada por el ataque de la variante 1 de Spectre con ramas condicionalesspectre_v2
:La CPU se ve afectada por el ataque de la variante 2 de Spectre con ramas indirectasspec_store_bypass
:la CPU se ve afectada por la vulnerabilidad de omisión de almacenamiento especulativo (variante 4 de Spectre).
P.D.
Esta lista se derivó de arch/x86/include/asm/cpufeatures.h
en la fuente del núcleo. Las banderas se enumeran en el mismo orden que el código fuente. Ayude agregando enlaces a las descripciones de las funciones cuando faltan, escribiendo una breve descripción de las funciones que tienen nombres inexpresivos y actualizando la lista para las nuevas versiones del kernel. La lista actual es de Linux 4.15 más algunas adiciones posteriores.