GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿Qué significan las banderas en /proc/cpuinfo?

¿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 8086
  • de :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áquina
  • cx8 :Instrucción CMPXCHG8 (comparación e intercambio de 64 bits)
  • apic :APIC integrado
  • sep :SYSENTER/SYSEXIT
  • mtrr :Registros de rango de tipo de memoria
  • pge :Habilitación global de página (bit global en PDE y PTE)
  • mca :Arquitectura de verificación de máquina
  • cmov :instrucciones CMOV (movimiento condicional) (también FCMOV)
  • pat :Tabla de atributos de página
  • pse36 :PSE de 36 bits (páginas enormes)
  • pn :número de serie del procesador
  • clflush :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 multimedia
  • fxsr :FXSAVE/FXRSTOR, CR4.OSFXSR
  • sse :instrucciones de vector Intel SSE
  • sse2 :SSE2
  • ss :Fisgoneo propio de la CPU
  • ht :Hyper-Threading y/o multinúcleo
  • tm :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 bandera x86-64 o bit “AMD64” indicado por el indicador lm )
  • 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 Deshabilitar
  • mmxext :Extensiones AMD MMX
  • fxsr_opt :Optimizaciones FXSAVE/FXRSTOR
  • pdpe1gb :páginas de un GB (permite hugepagesz=1G )
  • rdtscp :Leer contador de marca de tiempo e ID de procesador
  • lm :Modo largo (x86-64:amd64, también conocido como Intel 64, es decir, compatible con 64 bits)
  • 3dnowext :AMD 3D ¡Ahora! extensiones
  • 3dnow :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ón
  • longrun :Control de potencia a largo plazo
  • lrti :interfaz de tabla LongRun

Otras características, mapeo definido por Linux

  • cxmmx :Extensiones Cyrix MMX
  • k6_mtrr :AMD K6 MTRR no estándar
  • cyrix_arr :Cyrix ARR (=MTRR)
  • centaur_mcr :Centaur MCR (=MTRR)
  • constant_tsc :TSC hace tictac a una tasa constante
  • up :Núcleo SMP ejecutándose en UP
  • art :Temporizador siempre activo
  • arch_perfmon :Intel Architectural PerfMon
  • pebs :Muestreo basado en eventos precisos
  • bts :Tienda de seguimiento de sucursales
  • rep_good :el microcódigo de representante funciona bien
  • acc_power :mecanismo de potencia acumulada de AMD
  • nopl :Las instrucciones NOPL (0F 1F)
  • xtopology :extensiones de enumeración de topología de CPU
  • tsc_reliable :Se sabe que TSC es confiable
  • nonstop_tsc :TSC no se detiene en los estados C
  • cpuid :la CPU tiene la instrucción CPUID en sí misma
  • extd_apicid :ha extendido APICID (8 bits)
  • amd_dcm :procesador multinodo
  • aperfmperf :APERFMPERF
  • eagerfpu :Restauración de FPU no perezosa
  • nonstop_tsc_s3 :TSC no se detiene en el estado S3
  • tsc_known_freq :TSC tiene una frecuencia conocida
  • mce_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 bits
  • monitor :Compatibilidad con Monitor/Mwait (complementos de Intel SSE3)
  • ds_cpl :Cal. CPL. Tienda de depuración
  • vmx :Virtualización de hardware:Intel VMX
  • smx :Modo más seguro:TXT (compatible con TPM)
  • est :SpeedStep mejorado
  • tm2 :Monitor Térmico 2
  • ssse3 :SSE-3 suplementario
  • cid :ID de contexto
  • sdbg :depuración de silicio
  • fma :Multiplicación fusionada
  • cx16 :CMPXCHG16B
  • xtpr :enviar mensajes de prioridad de tareas
  • pdcm :Capacidades de rendimiento
  • pcid :Identificadores de contexto de proceso
  • dca :Acceso directo a caché
  • sse4_1 :SSE-4.1
  • sse4_2 :SSE-4.2
  • x2apic :x2APIC
  • movbe :Instrucción Mover datos después de intercambiar bytes
  • popcnt :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 Tsc
  • aes /aes-ni :Estándar de cifrado avanzado (nuevas instrucciones)
  • xsave :Guardar estados extendidos del procesador:también proporciona XGETBY,XRSTOR,XSETBY
  • avx :Extensiones vectoriales avanzadas
  • f16c :conversiones fp de 16 bits (CVT16)
  • rdrand :Lea el número aleatorio de la instrucción del generador de números aleatorios del hardware
  • hypervisor :Ejecución en un hipervisor
Relacionado:Linux – ¿Desactivar pantallas desconectadas (xrandr)?

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 habilitado
  • ace :criptografía en la CPU (xcrypt)
  • ace_en :criptografía en la CPU habilitada
  • ace2 :Motor criptográfico avanzado v2
  • ace2_en :ACE v2 habilitado
  • phe :Motor hash PadLock
  • phe_en :PHE habilitado
  • pmm :Multiplicador PadLock Montgomery
  • pmm_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 largo
  • cmp_legacy :Si es así, HyperThreading no es válido
  • svm :“Máquina virtual segura”:AMD-V
  • extapic :espacio APIC extendido
  • cr8_legacy :CR8 en modo de 32 bits
  • abm :Manipulación avanzada de bits
  • sse4a :SSE-4A
  • misalignsse :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ón
  • 3dnowprefetch :instrucciones de captación previa de 3DNow
  • osvw :indica una solución alternativa visible del sistema operativo, que permite que el sistema operativo solucione las erratas del procesador.
  • ibs :Muestreo basado en instrucciones
  • xop :instrucciones AVX extendidas
  • skinit :Instrucciones SKINIT/STGI
  • wdt :Temporizador de vigilancia
  • lwp :Perfilado ligero
  • fma4 :instrucciones MAC de 4 operandos
  • tce :extensión de caché de traducción
  • nodeid_msr :ID de nodo MSR
  • tbm :Manipulación de bits finales
  • topoext :Hojas de CPUID de extensiones de topología
  • perfctr_core :Extensiones de contador de rendimiento básico
  • perfctr_nb :Extensiones de contador de rendimiento NB
  • bpext :extensión de punto de interrupción de datos
  • ptsc :contador de marca de tiempo de rendimiento
  • perfctr_l2 :Extensiones de contador de rendimiento L2
  • mwaitx :MWAIT extensión (MONITORX /MWAITX )

Indicadores auxiliares:definidos por Linux:para características dispersas en varios niveles de CPUID

  • ring3mwait :Anillo 3 MONITOR/MWAIT
  • cpuid_fault :Fallo de Intel CPUID
  • cpb :Aumento del rendimiento de AMD Core
  • epb :compatibilidad con IA32_ENERGY_PERF_BIAS
  • cat_l3 :Tecnología de asignación de caché L3
  • cat_l2 :Tecnología de asignación de caché L2
  • cdp_l3 :Código y priorización de datos L3
  • invpcid_single :efectivamente invpcid y CR4.PCIDE=1
  • hw_pstate :AMD HW-PState
  • proc_feedback :AMD ProcFeedbackInterfaz
  • sme :Cifrado de memoria seguro de AMD
  • pti :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 Retpoline
  • intel_ppin :Número de inventario del procesador Intel
  • avx512_4vnniw :Instrucciones de red neuronal AVX-512
  • avx512_4fmaps :AVX-512 Precisión simple de acumulación múltiple
  • mba :Asignación de ancho de banda de memoria
  • rsb_ctxsw :Rellene RSB en los cambios de contexto

Indicadores de virtualización:definidos por Linux

  • tpr_shadow :Sombra Intel TPR
  • vnmi :NMI virtual de Intel
  • flexpriority :Intel FlexPriority
  • ept :Tabla de páginas extendida de Intel
  • vpid :ID de procesador virtual Intel
  • vmmcall :prefiere VMMCALL a VMCALL

Funciones de CPU definidas por Intel, nivel de CPUID 0x00000007:0 (ebx)

  • fsgsbase :{RD/WR}{FS/GS}Instrucciones BÁSICAS
  • tsc_adjust :TSC ajuste MSR
  • bmi1 :Extensiones de manipulación de bits del primer grupo
  • hle :Elisión de bloqueo de hardware
  • avx2 :instrucciones AVX2
  • smep :Protección de ejecución del modo supervisor
  • bmi2 :Extensiones de manipulación de bits del segundo grupo
  • erms :REP MOVSB/STOSB mejorado
  • invpcid :invalidar ID de contexto de procesador
  • rtm :memoria transaccional restringida
  • cqm :Supervisión de QoS de caché
  • mpx :Extensión de protección de memoria
  • rdt_a :Asignación de tecnología del director de recursos
  • avx512f :Fundación AVX-512
  • avx512dq :AVX-512 Instrucciones dobles/cuádruples
  • rdseed :La instrucción RDSEED
  • adx :Las instrucciones ADCX y ADOX
  • smap :Prevención de acceso en modo supervisor
  • clflushopt :CLFLUSHOPT instrucción
  • clwb :CLWB instrucción
  • intel_pt :Seguimiento del procesador Intel
  • avx512pf :AVX-512 Precarga
  • avx512er :AVX-512 exponencial y recíproco
  • avx512cd :AVX-512 Detección de conflictos
  • sha_ni :Extensiones de instrucciones SHA1/SHA256
  • avx512bw :AVX-512 Instrucciones de byte/palabra
  • avx512vl :AVX-512 128/256 Extensiones de longitud vectorial

Características de estado extendidas, nivel de CPUID 0x0000000d:1 (eax)

  • xsaveopt :XSAVE optimizado
  • xsavec :XSAVEC
  • xgetbv1 :XGETBV con ECX =1
  • xsaves :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 LLC
  • cqm_mbm_total :Supervisión total de MBM de LLC
  • cqm_mbm_local :Supervisión de MBM local de LLC

Funciones de CPU definidas por AMD, nivel de CPUID 0x80000008 (ebx)

  • clzero :CLZERO instrucción
  • irperf :contador de rendimiento retirado de instrucciones
  • xsaveerptr :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 (anteriormente dts ):sensor térmico digital
  • ida :Aceleración dinámica de Intel
  • arat :siempre ejecutando el temporizador APIC
  • pln :Notificación de límite de potencia de Intel
  • pts :Estado térmico del paquete Intel
  • hwp :Estados P de hardware de Intel
  • hwp_notify :Notificación HWP
  • hwp_act_window :Ventana de actividad de HWP
  • hwp_epp :Preferencia de rendimiento energético de HWP
  • hwp_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 AMD
  • lbrv :Soporte de virtualización AMD LBR
  • svm_lock :MSR de bloqueo AMD SVM
  • nrip_save :Guardar AMD SVM next_rip
  • tsc_scale :soporte de escalado AMD TSC
  • vmcb_clean :Compatibilidad con bits de limpieza AMD VMCB
  • flushbyasid :soporte AMD flush-by-ASID
  • decodeassists :Asistencia de AMD Decode Assist
  • pausefilter :intercepción de pausa filtrada por AMD
  • pfthreshold :Umbral de filtro de pausa de AMD
  • avic :Controlador de interrupción virtual
  • vmsave_vmload :Virtual VMSAVE VMLOAD
  • vgif :GIF virtuales
Relacionado:Linux:las adiciones de invitados 'no se puede ubicar el programa' ¿Kali Linux 2.0?

Funciones de CPU definidas por Intel, nivel de CPUID 0x00000007:0 (ecx)

  • avx512vbmi :Instrucciones de manipulación de bits vectoriales AVX512
  • umip :Protección de instrucción de modo de usuario
  • pku :Claves de protección para el espacio de usuario
  • ospke :Claves de protección del sistema operativo habilitadas
  • avx512_vbmi2 :Instrucciones adicionales de manipulación de bits vectoriales AVX512
  • gfni :Galois Field Nuevas instrucciones
  • vaes :Vector AES
  • vpclmulqdq :Doble cuádruple multiplicación sin acarreo
  • avx512_vnni :Instrucciones de red neuronal vectorial
  • avx512_bitalg :instrucciones VPOPCNT[B,W] y VPSHUF-BITQMB
  • avx512_vpopcntdq :POPCNT para vectores de DW/QW
  • la57 :tablas de páginas de 5 niveles
  • rdpid :instrucción RDPID

Funciones de CPU definidas por AMD, nivel de CPUID 0x80000007 (ebx)

  • overflow_recov :soporte de recuperación de desbordamiento de MCA
  • succor :contención y recuperación de errores incorregibles
  • smca :MCA escalable

Errores de CPU detectados (definidos por Linux)

  • f00f :Intel F00F
  • fdiv :CPU FDIV
  • coma :Cyrix 6×86 coma
  • amd_tlb_mmatch :tlb_mmatch Errata de AMD 383
  • amd_apic_c1e :apic_c1e Errata de AMD 400
  • 11ap :APIC local incorrecto, también conocido como 11AP
  • fxsave_leak :FXSAVE filtra FOP/FIP/FOP
  • clflush_monitor :AAI65, se requiere CLFLUSH antes de MONITOR
  • sysret_ss_attrs :SYSRET no repara los atributos de SS
  • espfix :"" IRET a SS de 16 bits corrompe los bits altos de ESP/RSP
  • null_seg :Anular un selector conserva la base
  • swapgs_fence :SWAPGS sin dependencia de entrada en GS
  • monitor :Se requiere IPI para activar la CPU remota
  • amd_e400 :CPU está entre los afectados por Erratum 400
  • cpu_meltdown :la CPU se ve afectada por un ataque de fusión y necesita el aislamiento de la tabla de páginas del kernel
  • spectre_v1 :La CPU se ve afectada por el ataque de la variante 1 de Spectre con ramas condicionales
  • spectre_v2 :La CPU se ve afectada por el ataque de la variante 2 de Spectre con ramas indirectas
  • spec_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.


Linux
  1. En Linux, ¿qué significan todos los valores en el comando superior?

  2. ¿Cómo obtengo la ruta de un proceso en Unix/Linux?

  3. ¿Cuál es el equivalente de /proc/cpuinfo en FreeBSD v8.1?

  4. /proc/[pid]/pagemaps y /proc/[pid]/maps | linux

  5. ¿Cómo obtener la cantidad de CPU/núcleos en Linux desde la línea de comandos?

¿Qué es el Shell en Linux?

¿Qué sucede cuando ejecuto el comando Cat /proc/cpuinfo?

Linux – ¿Número de procesadores en /proc/cpuinfo?

Linux:¿Qué significa la letra 'u' en /dev/urandom?

Archivos /proc/cpuinfo y /proc/meminfo en Linux

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions