Woran erkenne ich, ob mein Prozessor über eine bestimmte Funktion verfügt? (64-Bit-Befehlssatz, Hardware-unterstützte Virtualisierung, kryptografische Beschleuniger usw.) Ich weiß, dass die Datei /proc/cpuinfo
enthält diese Informationen in den flags
line, aber was bedeuten all diese kryptischen Abkürzungen?
Zum Beispiel angesichts des folgenden Auszugs aus /proc/cpuinfo
, habe ich eine 64-Bit-CPU? Habe ich Hardware-Virtualisierung?
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
Akzeptierte Antwort:
x86
(32-Bit, auch bekannt als i386–i686, und 64-Bit, auch bekannt als AMD64. Mit anderen Worten, Ihre Workstation, Ihr Laptop oder Ihr Server.)
FAQ:Habe ich…
- 64-Bit (x86_64/AMD64/Intel64)?
lm
- Hardware-Virtualisierung (VMX/AMD-V)?
vmx
(Intel),svm
(AMD) - Beschleunigtes AES (AES-NI)?
aes
- TXT (TPM)?
smx
- ein Hypervisor (als solcher angekündigt)?
hypervisor
Die meisten anderen Features sind nur für Compiler- oder Kernel-Autoren von Interesse.
Alle Flaggen
Die vollständige Auflistung befindet sich in den Kernelquellen, in der Datei arch/x86/include/asm/cpufeatures.h
.
Von Intel definierte CPU-Funktionen, CPUID-Ebene 0x00000001 (edx)
Siehe auch Wikipedia und Tabelle 2-27 in Intel Advanced Vector Extensions Programming Reference
fpu
:Integrierte FPU (Gleitkommaunterstützung)vme
:Verbesserungen im virtuellen 8086-Modusde
:Erweiterungen debuggen (CR4.DE)pse
:Page Size Extensions (4 MB Speicherseiten)tsc
:Zeitstempelzähler (RDTSC)msr
:Modellspezifische Register (RDMSR, WRMSR)pae
:Physische Adresserweiterungen (Unterstützung für mehr als 4 GB RAM)mce
:Maschinenprüfausnahmecx8
:CMPXCHG8-Anweisung (64-Bit-Vergleich und -Swap)apic
:Onboard-APICsep
:SYSENTER/SYSEXITmtrr
:Speichertypbereichsregisterpge
:Page Global Enable (globales Bit in PDEs und PTEs)mca
:Machine Check Architecturecmov
:CMOV-Anweisungen (bedingte Bewegung) (auch FCMOV)pat
:Seitenattributtabellepse36
:36-Bit-PSEs (riesige Seiten)pn
:Seriennummer des Prozessorsclflush
:Cache-Line-Flush-Anweisungdts
:Debug Store (Puffer für Debugging- und Profiling-Anweisungen)acpi
:ACPI über MSR (Temperaturüberwachung und Taktratenmodulation)mmx
:Multimedia-Erweiterungenfxsr
:FXSAVE/FXRSTOR, CR4.OSFXSRsse
:Intel SSE-Vektoranweisungensse2
:SSE2ss
:CPU-Self-Snoopht
:Hyper-Threading und/oder Multicoretm
:Automatische Taktsteuerung (Thermal Monitor)ia64
:Intel Itanium Architecture 64-Bit (nicht zu verwechseln mit Intels 64-Bit x86-Architektur mit Flagx86-64
oder „AMD64“-Bit, angezeigt durch das Flaglm
)pbe
:Wakeup-Unterstützung für Pending Break Enable (PBE#-Pin)
AMD-definierte CPU-Funktionen, CPUID-Ebene 0x80000001
Siehe auch Wikipedia und Tabelle 2-23 in Intel Advanced Vector Extensions Programming Reference
syscall
:SYSCALL (schneller Systemaufruf) und SYSRET (Rückkehr vom schnellen Systemaufruf)mp
:Multiprocessing-fähig.nx
:Deaktivieren ausführenmmxext
:AMD MMX-Erweiterungenfxsr_opt
:FXSAVE/FXRSTOR-Optimierungenpdpe1gb
:Ein-GB-Seiten (erlaubthugepagesz=1G
)rdtscp
:Zeitstempelzähler und Prozessor-ID lesenlm
:Long Mode (x86-64:amd64, auch bekannt als Intel 64, also 64-Bit-fähig)3dnowext
:AMD 3DNow! Erweiterungen3dnow
:3DJetzt! (AMD-Vektoranweisungen, konkurrierend mit Intels SSE1)
Transmeta-definierte CPU-Funktionen, CPUID-Ebene 0x80860001
recovery
:CPU im Wiederherstellungsmoduslongrun
:Langfristige Leistungskontrollelrti
:LongRun-Tabellenschnittstelle
Andere Funktionen, Linux-definiertes Mapping
cxmmx
:Cyrix MMX-Erweiterungenk6_mtrr
:AMD K6 Nicht-Standard-MTRRscyrix_arr
:Cyrix ARRs (=MTRRs)centaur_mcr
:Centaur MCRs (=MTRRs)constant_tsc
:TSC tickt mit einer konstanten Rateup
:SMP-Kernel läuft auf UPart
:Immer laufender Timerarch_perfmon
:Intel Architectural PerfMonpebs
:Präzises ereignisbasiertes Samplingbts
:Branch Trace Storerep_good
:Rep-Mikrocode funktioniert gutacc_power
:AMD Akkumulierter Leistungsmechanismusnopl
:Die NOPL (0F 1F) Anweisungenxtopology
:cpu topology enum extensionstsc_reliable
:TSC ist als zuverlässig bekanntnonstop_tsc
:TSC stoppt nicht in C-Zuständencpuid
:CPU hat CPUID-Anweisung selbstextd_apicid
:hat erweiterte APICID (8 Bit)amd_dcm
:Mehrknotenprozessoraperfmperf
:APERFMPERFeagerfpu
:Nicht verzögerte FPU-Wiederherstellungnonstop_tsc_s3
:TSC stoppt nicht im S3-Zustandtsc_known_freq
:TSC hat eine bekannte Häufigkeitmce_recovery
:CPU hat wiederherstellbare Maschinenprüfungen
Von Intel definierte CPU-Funktionen, CPUID-Ebene 0x00000001 (ecx)
Siehe auch Wikipedia und Tabelle 2-26 in Intel Advanced Vector Extensions Programming Reference
pni
:SSE-3 („Prescott New Instructions“)pclmulqdq
:Ausführen einer übertragslosen Multiplikation des Quadword-Befehls – Beschleuniger für GCM)dtes64
:64-Bit-Debug-Speichermonitor
:Monitor/Mwait-Unterstützung (Intel SSE3-Ergänzungen)ds_cpl
:CPL-Qual. Debug-Speichervmx
:Hardware-Virtualisierung:Intel VMXsmx
:Sicherer Modus:TXT (TPM-Unterstützung)est
:Verbesserter SpeedSteptm2
:Wärmeüberwachung 2ssse3
:Ergänzendes SSE-3cid
:Kontext-IDsdbg
:Silicon-Debugfma
:Fused Multiply-Addcx16
:CMPXCHG16Bxtpr
:Aufgabenprioritätsnachrichten sendenpdcm
:Leistungsfähigkeitpcid
:Prozesskontextbezeichnerdca
:Direkter Cache-Zugriffsse4_1
:SSE-4.1sse4_2
:SSE-4.2x2apic
:x2APICmovbe
:Move Data After Swapping Bytes-Anweisungpopcnt
:Anweisung „Count of Number of Bits Set to 1“ zurückgeben (Hamming-Gewicht, d. h. Bitanzahl)tsc_deadline_timer
:Tsc-Termintimeraes
/aes-ni
:Erweiterter Verschlüsselungsstandard (neue Anweisungen)xsave
:Erweiterte Prozessorzustände speichern:Bietet auch XGETBY,XRSTOR,XSETBYavx
:Erweiterte Vektorerweiterungenf16c
:16-Bit-FP-Konvertierungen (CVT16)rdrand
:Lese die Zufallszahl aus der Anweisung des Hardware-Zufallszahlengeneratorshypervisor
:Läuft auf einem Hypervisor
VIA/Cyrix/Centaur-definierte CPU-Funktionen, CPUID-Level 0xC0000001
rng
:Zufallszahlengenerator vorhanden (xstore)rng_en
:Zufallszahlengenerator aktiviertace
:Krypto auf der CPU (xcrypt)ace_en
:Verschlüsselung auf der CPU aktiviertace2
:Advanced Cryptography Engine v2ace2_en
:ACE v2 aktiviertphe
:PadLock-Hash-Enginephe_en
:PHE aktiviertpmm
:Vorhängeschloss-Montgomery-Multiplikatorpmm_en
:PMM aktiviert
Erweiterte AMD-Flags:CPUID-Level 0x80000001, ecx
lahf_lm
:Lade AH aus Flags (LAHF) und speichere AH in Flags (SAHF) im langen Moduscmp_legacy
:Wenn ja, ist HyperThreading nicht gültigsvm
:„Sichere virtuelle Maschine“:AMD-Vextapic
:Erweiterter APIC-Speicherplatzcr8_legacy
:CR8 im 32-Bit-Modusabm
:Erweiterte Bit-Manipulationsse4a
:SSE-4Amisalignsse
:Gibt an, ob eine allgemeine Schutzausnahme (#GP) generiert wird, wenn einige ältere SSE-Anweisungen mit nicht ausgerichteten Daten arbeiten. Hängt auch von CR0 und dem Alignment Checking Bit ab3dnowprefetch
:3DNow Prefetch-Anweisungenosvw
:Zeigt OS Visible Workaround an, der es dem Betriebssystem ermöglicht, Prozessor-Errata zu umgehen.ibs
:Anweisungsbasiertes Samplingxop
:erweiterte AVX-Anweisungenskinit
:SKINIT/STGI-Anweisungenwdt
:Watchdog-Timerlwp
:Leichte Profilerstellungfma4
:4 Operanden MAC-Anweisungentce
:Übersetzungs-Cache-Erweiterungnodeid_msr
:NodeId MSRtbm
:Trailing-Bit-Manipulationtopoext
:CPUID-Blätter der Topologieerweiterungenperfctr_core
:Kernleistungszähler-Erweiterungenperfctr_nb
:NB-Leistungszählererweiterungenbpext
:Datenhaltepunkterweiterungptsc
:Zeitstempelleistungszählerperfctr_l2
:L2-Leistungszählererweiterungenmwaitx
:MWAIT
Erweiterung (MONITORX
/MWAITX
)
Hilfs-Flags:Linux definiert – Für Funktionen, die in verschiedenen CPUID-Ebenen verstreut sind
ring3mwait
:Klingel 3 MONITOR/WARTENcpuid_fault
:Intel CPUID fehlerhaftcpb
:AMD Core Performance Boostepb
:IA32_ENERGY_PERF_BIAS-Unterstützungcat_l3
:Cache-Zuweisungstechnologie L3cat_l2
:Cache-Zuweisungstechnologie L2cdp_l3
:Code- und Datenpriorisierung L3invpcid_single
:effektivinvpcid
undCR4.PCIDE=1
hw_pstate
:AMD HW-PStateproc_feedback
:AMD ProcFeedbackInterfacesme
:AMD Secure Memory Encryptionpti
:Kernel Page Table Isolation (Kaiser)retpoline
:Retpoline-Minderung für Spectre-Variante 2 (indirekte Zweige)retpoline_amd
:AMD Retpoline-Minderungintel_ppin
:Bestandsnummer des Intel-Prozessorsavx512_4vnniw
:AVX-512 Neuronale Netzwerkanweisungenavx512_4fmaps
:AVX-512 Akkumulation multiplizieren Einfache Genauigkeitmba
:Zuweisung der Speicherbandbreitersb_ctxsw
:RSB bei Kontextwechseln füllen
Virtualisierungs-Flags:Linux definiert
tpr_shadow
:Intel TPR Shadowvnmi
:Intel Virtual NMIflexpriority
:Intel FlexPriorityept
:Erweiterte Seitentabelle von Intelvpid
:ID des virtuellen Intel-Prozessorsvmmcall
:bevorzugeVMMCALL
zuVMCALL
Von Intel definierte CPU-Funktionen, CPUID-Ebene 0x00000007:0 (ebx)
fsgsbase
:{RD/WR}{FS/GS}BASE-Anweisungentsc_adjust
:TSC-Anpassung MSRbmi1
:Bitmanipulationserweiterungen der 1. Gruppehle
:Aufheben der Hardwaresperreavx2
:AVX2-Anleitungsmep
:Ausführungsschutz im Supervisor-Modusbmi2
:Erweiterungen zur Bitmanipulation der 2. Gruppeerms
:Verbessertes REP MOVSB/STOSBinvpcid
:Prozessorkontext-ID ungültig machenrtm
:Eingeschränktes Transaktionsgedächtniscqm
:Cache-QoS-Überwachungmpx
:Speicherschutzerweiterungrdt_a
:Technologiezuordnung des Ressourcendirektorsavx512f
:AVX-512-Grundlagenavx512dq
:AVX-512 Doppel-/Quad-Anleitungrdseed
:Die RDSEED-Anweisungadx
:Die ADCX- und ADOX-Anweisungensmap
:Zugangsverhinderung im Supervisor-Modusclflushopt
:CLFLUSHOPT
Anleitungclwb
:CLWB
Anleitungintel_pt
:Intel-Prozessor-Tracingavx512pf
:AVX-512 Prefetchavx512er
:AVX-512 Exponential und Reziprokavx512cd
:AVX-512 Konflikterkennungsha_ni
:SHA1/SHA256-Anweisungserweiterungenavx512bw
:AVX-512 Byte/Wort-Anweisungenavx512vl
:AVX-512 128/256 Vektorlängenerweiterungen
Erweiterte Zustandsfunktionen, CPUID-Level 0x0000000d:1 (eax)
xsaveopt
:OptimiertesXSAVE
xsavec
:XSAVEC
xgetbv1
:XGETBV
mit ECX =1xsaves
:XSAVES
/XRSTORS
Intel-definiertes CPU-QoS-Unterblatt, CPUID-Ebene 0x0000000F:0 (edx)
cqm_llc
:LLC-QoS
Intel-definiertes CPU-QoS-Unterblatt, CPUID-Level 0x0000000F:1 (edx)
cqm_occup_llc
:LLC-Belegungsüberwachungcqm_mbm_total
:LLC-Gesamt-MBM-Überwachungcqm_mbm_local
:LLC lokale MBM-Überwachung
AMD-definierte CPU-Funktionen, CPUID-Ebene 0x80000008 (ebx)
clzero
:CLZERO
Anleitungirperf
:Anweisungen zurückgezogener Leistungszählerxsaveerptr
:FP-Fehlerzeiger immer speichern/wiederherstellen
Wärme- und Energieverwaltungsblatt, CPUID-Ebene 0x00000006 (eax)
dtherm
(ehemalsdts
):digitaler Wärmesensorida
:Intel Dynamic Accelerationarat
:APIC-Timer läuft immerpln
:Intel Power Limit-Benachrichtigungpts
:Thermischer Status des Intel-Paketshwp
:P-Zustände der Intel-Hardwarehwp_notify
:HWP-Benachrichtigunghwp_act_window
:HWP-Aktivitätsfensterhwp_epp
:HWP-Energieleistungspräferenzhwp_pkg_req
:Anforderung auf HWP-Paketebene
AMD SVM Feature Identification, CPUID level 0x8000000a (edx)
npt
:AMD Nested Page Table-Unterstützunglbrv
:Unterstützung für AMD LBR-Virtualisierungsvm_lock
:AMD SVM sperrt MSRnrip_save
:AMD SVM next_rip speicherntsc_scale
:Unterstützung für AMD TSC-Skalierungvmcb_clean
:AMD VMCB Clean Bits-Unterstützungflushbyasid
:AMD Flush-by-ASID-Unterstützungdecodeassists
:AMD Decode Assists-Unterstützungpausefilter
:AMD-gefilterter Pausenabschnittpfthreshold
:AMD-Pausenfilterschwelleavic
:Virtueller Interrupt-Controllervmsave_vmload
:Virtuelles VMSAVE VMLOADvgif
:Virtuelles GIF
Von Intel definierte CPU-Funktionen, CPUID-Ebene 0x00000007:0 (ecx)
avx512vbmi
:AVX512 Vektor-Bit-Manipulationsanweisungenumip
:Benutzermodus-Anweisungsschutzpku
:Schutzschlüssel für Userspaceospke
:Betriebssystem-Schutzschlüssel aktivierenavx512_vbmi2
:Zusätzliche Anweisungen zur AVX512-Vector-Bit-Manipulationgfni
:Neue Anweisungen für das Galois-Feldvaes
:Vektor-AESvpclmulqdq
:Übertragsloses Multiplikations-Doppelquadwortavx512_vnni
:Anweisungen für neuronale Vektornetzwerkeavx512_bitalg
:Anweisungen VPOPCNT[B,W] und VPSHUF-BITQMBavx512_vpopcntdq
:POPCNT für Vektoren von DW/QWla57
:Seitentabellen mit 5 Ebenenrdpid
:RDPID-Anweisung
AMD-definierte CPU-Funktionen, CPUID-Level 0x80000007 (ebx)
overflow_recov
:MCA-Überlauf-Wiederherstellungsunterstützungsuccor
:Eingrenzung und Wiederherstellung nicht korrigierbarer Fehlersmca
:Skalierbarer MCA
Erkannte CPU-Fehler (Linux-definiert)
f00f
:Intel F00Ffdiv
:CPU-FDIVcoma
:Cyrix 6×86 Komaamd_tlb_mmatch
:tlb_mmatch
AMD Erratum 383amd_apic_c1e
:apic_c1e
AMD Erratum 40011ap
:Schlechter lokaler APIC alias 11APfxsave_leak
:FXSAVE verliert FOP/FIP/FOPclflush_monitor
:AAI65, CLFLUSH vor MONITOR erforderlichsysret_ss_attrs
:SYSRET repariert keine SS-Attributeespfix
:„“ IRET zu 16-Bit-SS beschädigt ESP/RSP-High-Bitsnull_seg
:Das Nullen eines Selektors bewahrt die Basisswapgs_fence
:SWAPGS ohne Eingabe abhängig von GSmonitor
:IPI erforderlich, um Remote-CPU aufzuweckenamd_e400
:CPU ist von Erratum 400 betroffencpu_meltdown
:Die CPU ist von einem Meltdown-Angriff betroffen und benötigt eine Isolierung der Kernelseitentabellespectre_v1
:CPU ist von Spectre-Angriff Variante 1 mit bedingten Verzweigungen betroffenspectre_v2
:CPU ist von Spectre Variante 2 Angriff mit indirekten Verzweigungen betroffenspec_store_bypass
:CPU ist von der Speculative Store Bypass-Schwachstelle betroffen (Spectre-Variante 4).
P.S.
Diese Auflistung wurde von arch/x86/include/asm/cpufeatures.h
abgeleitet in der Kernelquelle. Die Flags werden in der gleichen Reihenfolge wie der Quellcode aufgelistet. Bitte helfen Sie, indem Sie Links zu Beschreibungen von Funktionen hinzufügen, wenn sie fehlen, indem Sie eine kurze Beschreibung von Funktionen schreiben, die einen nicht aussagekräftigen Namen haben, und indem Sie die Liste für neue Kernel-Versionen aktualisieren. Die aktuelle Liste stammt von Linux 4.15 plus einigen späteren Ergänzungen.