Comment puis-je savoir si mon processeur possède une fonctionnalité particulière ? (jeu d'instructions 64 bits, virtualisation assistée par matériel, accélérateurs cryptographiques, etc.) Je sais que le fichier /proc/cpuinfo
contient cette information, dans les flags
ligne, mais que signifient toutes ces abréviations énigmatiques ?
Par exemple, étant donné l'extrait suivant de /proc/cpuinfo
, ai-je un processeur 64 bits ? Ai-je une virtualisation matérielle ?
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
Réponse acceptée :
x86
(32 bits alias i386–i686 et 64 bits alias amd64. En d'autres termes, votre poste de travail, ordinateur portable ou serveur.)
FAQ :Ai-je…
- 64 bits (x86_64/AMD64/Intel64) ?
lm
- Virtualisation matérielle (VMX/AMD-V) ?
vmx
(Intel),svm
(AMD) - AES accéléré (AES-NI) ?
aes
- TXT (TPM) ?
smx
- un hyperviseur (annoncé comme tel) ?
hypervisor
La plupart des autres fonctionnalités n'intéressent que les compilateurs ou les auteurs du noyau.
Tous les drapeaux
La liste complète se trouve dans les sources du noyau, dans le fichier arch/x86/include/asm/cpufeatures.h
.
Fonctionnalités CPU définies par Intel, CPUID niveau 0x00000001 (edx)
Voir également Wikipedia et le tableau 2-27 dans Intel Advanced Vector Extensions Programming Reference
fpu
:FPU intégré (prise en charge de la virgule flottante)vme
:Améliorations du mode 8086 virtuelde
:Extensions de débogage (CR4.DE)pse
:Extensions de taille de page (pages de mémoire de 4 Mo)tsc
:Compteur d'horodatage (RDTSC)msr
:Registres spécifiques au modèle (RDMSR, WRMSR)pae
:Extensions d'adresse physique (prise en charge de plus de 4 Go de RAM)mce
:Exception de vérification de la machinecx8
:Instruction CMPXCHG8 (comparer et échanger 64 bits)apic
:APIC intégrésep
:SYSENTER/SYSEXITmtrr
:Registres de plage de type de mémoirepge
:Activation globale de la page (bit global dans les PDE et les PTE)mca
: Architecture de vérification automatiquecmov
: instructions CMOV (mouvement conditionnel) (également FCMOV)pat
:Tableau des attributs de pagepse36
:PSE 36 bits (pages volumineuses)pn
:Numéro de série du processeurclflush
:Instruction de vidage de la ligne de cachedts
:Debug Store (tampon pour les instructions de débogage et de profilage)acpi
:ACPI via MSR (surveillance de la température et modulation de la vitesse d'horloge)mmx
:Extensions Multimédiafxsr
:FXSAVE/FXRSTOR, CR4.OSFXSRsse
:Instructions vectorielles Intel SSEsse2
:SSE2ss
:auto-espionnage du processeurht
:Hyper-Threading et/ou multi-coretm
:Contrôle automatique de l'horloge (Thermal Monitor)ia64
:Architecture Intel Itanium 64 bits (à ne pas confondre avec l'architecture x86 64 bits d'Intel avec l'indicateurx86-64
ou bit "AMD64" indiqué par le drapeaulm
)pbe
:Prise en charge du réveil en attente d'activation de pause (PBE # broche)
Fonctionnalités CPU définies par AMD, niveau CPUID 0x80000001
Voir également Wikipedia et le tableau 2-23 dans Intel Advanced Vector Extensions Programming Reference
syscall
:SYSCALL (Appel Système Rapide) et SYSRET (Retour d'Appel Système Rapide)mp
:Capacité de multitraitement.nx
:Exécutez la désactivationmmxext
:Extensions AMD MMXfxsr_opt
:Optimisations FXSAVE/FXRSTORpdpe1gb
:pages d'un Go (permethugepagesz=1G
)rdtscp
:Lire le compteur d'horodatage et l'ID du processeurlm
:Mode long (x86-64 :amd64, également connu sous le nom d'Intel 64, c'est-à-dire compatible 64 bits)3dnowext
:AMD 3DNow ! extensions3dnow
:3DNow ! (Instructions vectorielles AMD, concurrentes du SSE1 d'Intel)
Fonctionnalités CPU définies par Transmeta, niveau CPUID 0x80860001
recovery
:CPU en mode récupérationlongrun
:Contrôle de puissance à long termelrti
:interface de table LongRun
Autres fonctionnalités, mappage défini par Linux
cxmmx
:Extensions Cyrix MMXk6_mtrr
:MTRR AMD K6 non standardcyrix_arr
:Cyrix ARR (=MTRR)centaur_mcr
:Centaure MCR (=MTRR)constant_tsc
:TSC coche à un rythme constantup
:Noyau SMP tournant sur UPart
:Minuterie toujours en cours d'exécutionarch_perfmon
:Performance architecturale Intelpebs
:Échantillonnage basé sur des événements précisbts
:magasin de suivi de succursalerep_good
:le microcode rep fonctionne bienacc_power
:Mécanisme d'alimentation accumulé AMDnopl
:Les instructions NOPL (0F 1F)xtopology
:extensions d'énumération de la topologie du processeurtsc_reliable
:TSC est connu pour être fiablenonstop_tsc
:TSC ne s'arrête pas dans les états Ccpuid
:le CPU a lui-même l'instruction CPUIDextd_apicid
:a étendu APICID (8 bits)amd_dcm
:processeur multi-nœudsaperfmperf
:APERFMPERFeagerfpu
:Restauration FPU non paresseusenonstop_tsc_s3
:TSC ne s'arrête pas dans l'état S3tsc_known_freq
:TSC a une fréquence connuemce_recovery
:Le processeur a des vérifications de machine récupérables
Fonctionnalités CPU définies par Intel, CPUID niveau 0x00000001 (ecx)
Voir également Wikipedia et le tableau 2-26 dans Intel Advanced Vector Extensions Programming Reference
pni
:SSE-3 ("Nouvelles instructions de Prescott")pclmulqdq
: Effectuer une instruction de multiplication sans report de quadwords – accélérateur pour GCM)dtes64
:Magasin de débogage 64 bitsmonitor
:Prise en charge de Monitor/Mwait (suppléments Intel SSE3)ds_cpl
:CPL Qual. Magasin de débogagevmx
:Virtualisation matérielle :Intel VMXsmx
:Mode plus sûr :TXT (prise en charge du TPM)est
:SpeedStep améliorétm2
:Moniteur thermique 2ssse3
:SSE-3 supplémentairecid
:ID de contextesdbg
:débogage du siliciumfma
:Multiplier-ajouter fusionnécx16
:CMPXCHG16Bxtpr
: Envoyer des messages de priorité de tâchepdcm
:Capacités de performancespcid
: Identifiants de contexte de processusdca
: Accès direct au cachesse4_1
:SSE-4.1sse4_2
:SSE-4.2x2apic
:x2APICmovbe
:Instruction Déplacer les données après l'échange d'octetspopcnt
:Renvoie l'instruction Count of Number of Bits Set to 1 (poids de Hamming, c'est-à-dire le nombre de bits)tsc_deadline_timer
:Temporisateur d'échéance Tscaes
/aes-ni
:Norme de chiffrement avancé (nouvelles instructions)xsave
:Enregistrer les états étendus du processeur :fournit également XGETBY, XRSTOR, XSETBYavx
: Extensions vectorielles avancéesf16c
:conversions ip 16 bits (CVT16)rdrand
:Lire le nombre aléatoire à partir de l'instruction du générateur de nombres aléatoires matérielhypervisor
:Exécution sur un hyperviseur
Fonctionnalités CPU définies par VIA/Cyrix/Centaur, niveau CPUID 0xC0000001
rng
:Générateur de nombres aléatoires présent (xstore)rng_en
:Générateur de nombres aléatoires activéace
:chiffrement sur CPU (xcrypt)ace_en
:cryptage sur CPU activéace2
:Moteur de chiffrement avancé v2ace2_en
:ACE v2 activéphe
:Moteur de hachage PadLockphe_en
:PHE activépmm
:Multiplicateur PadLock Montgomerypmm_en
:PMM activé
Drapeaux AMD plus étendus :niveau CPUID 0x80000001, ecx
lahf_lm
:Charger AH à partir des drapeaux (LAHF) et stocker AH dans les drapeaux (SAHF) en mode longcmp_legacy
:Si oui HyperThreading non validesvm
:"Machine virtuelle sécurisée" :AMD-Vextapic
:Espace APIC étenducr8_legacy
:CR8 en mode 32 bitsabm
:Manipulation avancée des bitssse4a
:SSE-4Amisalignsse
:indique si une exception de protection générale (#GP) est générée lorsque certaines instructions SSE héritées fonctionnent sur des données non alignées. Dépend également du CR0 et du bit de vérification de l'alignement3dnowprefetch
:instructions de prélecture de 3DNowosvw
:indique la solution de contournement visible du système d'exploitation, qui permet au système d'exploitation de contourner les errata du processeur.ibs
:Échantillonnage basé sur les instructionsxop
:instructions AVX étenduesskinit
:Notice SKINIT/STGIwdt
:Minuterie de chien de gardelwp
:Profilage légerfma4
:instructions MAC 4 opérandestce
:extension du cache de traductionnodeid_msr
:NodeId MSRtbm
:Manipulation des bits de fintopoext
:Feuilles CPUID des extensions de topologieperfctr_core
:Extensions de compteur de performances de baseperfctr_nb
:Extensions de compteur de performances NBbpext
:extension de point d'arrêt de donnéesptsc
:compteur d'horodatage des performancesperfctr_l2
:Extensions de compteur de performances L2mwaitx
:MWAIT
extension (MONITORX
/MWAITX
)
Drapeaux auxiliaires :Linux défini - Pour les fonctionnalités dispersées dans différents niveaux de CPUID
ring3mwait
:Sonnerie 3 MONITOR/MWAITcpuid_fault
:Erreur CPUID Intelcpb
:Amélioration des performances du cœur AMDepb
:Prise en charge de IA32_ENERGY_PERF_BIAScat_l3
:Technologie d'allocation de cache L3cat_l2
:Technologie d'allocation de cache L2cdp_l3
:Priorisation du code et des données L3invpcid_single
:effectivementinvpcid
etCR4.PCIDE=1
hw_pstate
:AMD HW-PStateproc_feedback
:Interface AMD ProcFeedbacksme
:Chiffrement sécurisé de la mémoire AMDpti
: Isolation de la table des pages du noyau (Kaiser)retpoline
:Atténuation de la retpoline pour la variante 2 de Spectre (branches indirectes)retpoline_amd
:Atténuation AMD Retpolineintel_ppin
:Numéro d'inventaire du processeur Intelavx512_4vnniw
:Instructions pour le réseau neuronal AVX-512avx512_4fmaps
:AVX-512 Multiplier Accumulation Simple précisionmba
:Allocation de bande passante mémoirersb_ctxsw
:Remplir RSB sur les changements de contexte
Drapeaux de virtualisation :Linux défini
tpr_shadow
:Intel TPR Shadowvnmi
:Intel Virtual NMIflexpriority
:Intel FlexPriorityept
:Table de pages étendue Intelvpid
:ID du processeur virtuel Intelvmmcall
:préférezVMMCALL
versVMCALL
Fonctionnalités CPU définies par Intel, niveau CPUID 0x00000007:0 (ebx)
fsgsbase
:{RD/WR}{FS/GS}instructions de basetsc_adjust
:TSC réglage MSRbmi1
:1er groupe d'extensions de manipulation de bitshle
:Verrouillage matériel Elisionavx2
:Mode d'emploi AVX2smep
: Protection d'exécution en mode superviseurbmi2
:Extensions de manipulation de bits du 2e groupeerms
:REP amélioré MOVSB/STOSBinvpcid
:ID de contexte de processeur invalidertm
:Mémoire transactionnelle restreintecqm
:Surveillance de la qualité de service du cachempx
:Extension de protection de la mémoirerdt_a
:Allocation de technologie du directeur des ressourcesavx512f
:Fondation AVX-512avx512dq
:Mode d'emploi AVX-512 Double/Quadrdseed
:L'instruction RDSEEDadx
:Les instructions ADCX et ADOXsmap
:Prévention d'accès en mode superviseurclflushopt
:CLFLUSHOPT
instructionsclwb
:CLWB
instructionsintel_pt
:Traçage du processeur Intelavx512pf
: prélecture AVX-512avx512er
:AVX-512 Exponentielle et Réciproqueavx512cd
:Détection de conflit AVX-512sha_ni
:Extensions d'instructions SHA1/SHA256avx512bw
:AVX-512 instructions octet/motavx512vl
:Extensions de longueur vectorielle AVX-512 128/256
Fonctionnalités d'état étendu, CPUID niveau 0x0000000d:1 (eax)
xsaveopt
:XSAVES
optimiséxsavec
:XSAVEC
xgetbv1
:XGETBV
avec ECX =1xsaves
:XSAVES
/XRSTORS
Sous-feuille QoS CPU définie par Intel, niveau CPUID 0x0000000F:0 (edx)
cqm_llc
:QoS LLC
Sous-feuille QoS CPU définie par Intel, niveau CPUID 0x0000000F:1 (edx)
cqm_occup_llc
:Surveillance de l'occupation LLCcqm_mbm_total
:Surveillance totale de la MBM LLCcqm_mbm_local
:Surveillance MBM locale LLC
Fonctionnalités CPU définies par AMD, niveau CPUID 0x80000008 (ebx)
clzero
:CLZERO
instructionsirperf
:compteur de performances des instructions retiréesxsaveerptr
:Toujours enregistrer/restaurer les pointeurs d'erreur FP
Feuille de gestion thermique et de l'alimentation, niveau CPUID 0x00000006 (eax)
dtherm
(anciennementdts
) :capteur thermique numériqueida
:Accélération dynamique Intelarat
:Toujours exécuter le minuteur APICpln
:Notification de limite de puissance Intelpts
:État thermique du package Intelhwp
: états P du matériel Intelhwp_notify
:Notification HWPhwp_act_window
:Fenêtre d'activité HWPhwp_epp
:Préférence de performance énergétique HWPhwp_pkg_req
:requête au niveau du package HWP
Identification des fonctionnalités AMD SVM, niveau CPUID 0x8000000a (edx)
npt
:Prise en charge des tables de pages imbriquées AMDlbrv
:Prise en charge de la virtualisation AMD LBRsvm_lock
:MSR de verrouillage AMD SVMnrip_save
:Sauvegarde AMD SVM next_riptsc_scale
:Prise en charge de la mise à l'échelle AMD TSCvmcb_clean
:Prise en charge des bits propres AMD VMCBflushbyasid
:Prise en charge AMD flush-by-ASIDdecodeassists
:Prise en charge des assistants de décodage AMDpausefilter
:Interception de pause filtrée par AMDpfthreshold
:Seuil du filtre de pause AMDavic
:Contrôleur d'interruption virtuelvmsave_vmload
:VMSAVE virtuel VMLOADvgif
:GIF virtuel
Fonctionnalités CPU définies par Intel, niveau CPUID 0x00000007:0 (ecx)
avx512vbmi
:Instructions de manipulation de bits vectoriels AVX512umip
: Protection des instructions en mode utilisateurpku
:Clés de protection pour l'espace utilisateurospke
:Activer les clés de protection du système d'exploitationavx512_vbmi2
:Instructions supplémentaires de manipulation de bits vectoriels AVX512gfni
:Champ de Galois Nouvelles Instructionsvaes
:AES vectorielvpclmulqdq
:Multiplication sans report Double Quadwordavx512_vnni
: Instructions sur le réseau de neurones vectorielsavx512_bitalg
:instructions VPOPCNT[B,W] et VPSHUF-BITQMBavx512_vpopcntdq
:POPCNT pour les vecteurs de DW/QWla57
:tableaux de pages à 5 niveauxrdpid
:Instruction RDPID
Fonctionnalités CPU définies par AMD, niveau CPUID 0x80000007 (ebx)
overflow_recov
:Prise en charge de la récupération de débordement MCAsuccor
:confinement et récupération des erreurs incorrigiblessmca
:MCA évolutif
Bogues CPU détectés (définis par Linux)
f00f
:Intel F00Ffdiv
:CPU FDIVcoma
:Cyrix 6×86 comaamd_tlb_mmatch
:tlb_mmatch
AMD Erratum 383amd_apic_c1e
:apic_c1e
AMD Erratum 40011ap
:Mauvais APIC local alias 11APfxsave_leak
:FXSAVE fuit FOP/FIP/FOPclflush_monitor
:AAI65, CLFLUSH requis avant MONITORsysret_ss_attrs
:SYSRET ne corrige pas les attrs SSespfix
:"" IRET en SS 16 bits corrompt les bits élevés ESP/RSPnull_seg
:Annuler un sélecteur préserve la baseswapgs_fence
:SWAPGS sans input dépend de GSmonitor
:IPI requis pour réveiller le CPU distantamd_e400
:Le CPU fait partie des affectés par l'erratum 400cpu_meltdown
:Le processeur est affecté par l'attaque par effondrement et nécessite l'isolation de la table des pages du noyauspectre_v1
:Le processeur est affecté par l'attaque Spectre variante 1 avec des branches conditionnellesspectre_v2
:Le processeur est affecté par l'attaque Spectre variante 2 avec des branches indirectesspec_store_bypass
:Le processeur est affecté par la vulnérabilité Speculative Store Bypass (Spectre variante 4).
P.S.
Cette liste est dérivée de arch/x86/include/asm/cpufeatures.h
dans la source du noyau. Les drapeaux sont répertoriés dans le même ordre que le code source. Aidez-nous en ajoutant des liens vers les descriptions des fonctionnalités lorsqu'elles manquent, en écrivant une courte description des fonctionnalités qui ont un nom inexpressif et en mettant à jour la liste des nouvelles versions du noyau. La liste actuelle provient de Linux 4.15 plus quelques ajouts ultérieurs.