Jak zjistím, zda má můj procesor určitou funkci? (64bitová instrukční sada, hardwarově podporovaná virtualizace, kryptografické akcelerátory atd.) Vím, že soubor /proc/cpuinfo
obsahuje tyto informace v flags
řádek, ale co znamenají všechny tyto záhadné zkratky?
Například s ohledem na následující výpis z /proc/cpuinfo
, mám 64bitový CPU? Mám hardwarovou virtualizaci?
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
Přijatá odpověď:
x86
(32bitová aka i386–i686 a 64bitová aka amd64. Jinými slovy, vaše pracovní stanice, notebook nebo server.)
Časté dotazy:Mám…
- 64bitový (x86_64/AMD64/Intel64)?
lm
- Hardwarová virtualizace (VMX/AMD-V)?
vmx
(Intel),svm
(AMD) - Accelerated AES (AES-NI)?
aes
- TXT (TPM)?
smx
- hypervizor (jako takový ohlašován)?
hypervisor
Většina ostatních funkcí je zajímavá pouze pro autory kompilátoru nebo jádra.
Všechny příznaky
Úplný seznam je ve zdrojovém kódu jádra, v souboru arch/x86/include/asm/cpufeatures.h
.
Funkce CPU definované Intel, CPUID úroveň 0x00000001 (edx)
Viz také Wikipedii a tabulku 2-27 v Intel Advanced Vector Extensions Programming Reference
fpu
:Palubní FPU (podpora s pohyblivou řádovou čárkou)vme
:Vylepšení virtuálního režimu 8086de
:Debugging Extensions (CR4.DE)pse
:Rozšíření velikosti stránky (stránky paměti 4 MB)tsc
:Počítadlo časových razítek (RDTSC)msr
:Registry specifické pro model (RDMSR, WRMSR)pae
:Rozšíření fyzické adresy (podpora více než 4 GB paměti RAM)mce
:Výjimka kontroly strojecx8
:Instrukce CMPXCHG8 (64bitové porovnání a výměna)apic
:Integrovaný APICsep
:SYSENTER/SYSEXITmtrr
:Registry rozsahu typu pamětipge
:Page Global Enable (globální bit v PDE a PTE)mca
:Machine Check Architecturecmov
:Instrukce CMOV (podmíněný pohyb) (také FCMOV)pat
:Tabulka atributů stránkypse36
:36bitové PSE (obrovské stránky)pn
:Sériové číslo procesoruclflush
:Instrukce pro vyprázdnění řádku mezipamětidts
:Debug Store (vyrovnávací paměť pro pokyny k ladění a profilování)acpi
:ACPI přes MSR (monitorování teploty a modulace taktu)mmx
:Multimediální rozšířenífxsr
:FXSAVE/FXRSTOR, CR4.OSFXSRsse
:Vektorové instrukce Intel SSEsse2
:SSE2ss
:Vlastní slídění procesoruht
:Hyper-Threading a/nebo vícejádrovýtm
:Automatické řízení hodin (Thermal Monitor)ia64
:Intel Itanium Architecture 64-bit (nezaměňovat s 64-bit x86 architekturou Intel s příznakemx86-64
nebo bit „AMD64“ označený příznakemlm
)pbe
:Pending Break Enable (PBE# pin) podpora probuzení
Funkce CPU definované AMD, CPUID úroveň 0x80000001
Viz také Wikipedii a tabulku 2-23 v Intel Advanced Vector Extensions Programming Reference
syscall
:SYSCALL (rychlé systémové volání) a SYSRET (návrat z rychlého systémového volání)mp
:Možnost vícenásobného zpracování.nx
:Execute Disablemmxext
:Rozšíření AMD MMXfxsr_opt
:Optimalizace FXSAVE/FXRSTORpdpe1gb
:Jeden GB stránek (umožňujehugepagesz=1G
)rdtscp
:Čtení počítadla časových razítek a ID procesorulm
:Dlouhý režim (x86-64:amd64, také známý jako Intel 64, tj. s podporou 64bitů)3dnowext
:AMD 3DNow! rozšíření3dnow
:3DNy! (Vektorové instrukce AMD, konkurující Intel SSE1)
Funkce CPU definované transmeta, CPUID úroveň 0x80860001
recovery
:CPU v režimu obnovylongrun
:Longrun power controllrti
:Rozhraní tabulky LongRun
Další funkce, mapování definované systémem Linux
cxmmx
:Rozšíření Cyrix MMXk6_mtrr
:AMD K6 nestandardní MTRRcyrix_arr
:Cyrix ARR (=MTRR)centaur_mcr
:Centaur MCR (=MTRR)constant_tsc
:TSC tiká konstantní rychlostíup
:SMP jádro běžící na UPart
:Vždy běžící časovačarch_perfmon
:Intel Architectural PerfMonpebs
:Přesné vzorkování založené na událostechbts
:Obchod se sledováním pobočekrep_good
:Mikrokód zástupce funguje dobřeacc_power
:Mechanismus akumulovaného výkonu AMDnopl
:Pokyny NOPL (0F 1F)xtopology
:rozšíření výčtu topologie cputsc_reliable
:TSC je známo, že je spolehlivénonstop_tsc
:TSC se nezastaví ve stavech Ccpuid
:CPU má samotnou instrukci CPUIDextd_apicid
:má rozšířené APICID (8 bitů)amd_dcm
:víceuzlový procesoraperfmperf
:APERFMPERFeagerfpu
:Nelíná obnova FPUnonstop_tsc_s3
:TSC se ve stavu S3 nezastavítsc_known_freq
:TSC má známou frekvencimce_recovery
:CPU má obnovitelné kontroly počítače
Funkce CPU definované Intel, CPUID úroveň 0x00000001 (ecx)
Viz také Wikipedii a tabulku 2-26 v Intel Advanced Vector Extensions Programming Reference
pni
:SSE-3 („Nové pokyny společnosti Prescott“)pclmulqdq
:Proveďte Carry-Less Multiplication of Quadword instrukce — akcelerátor pro GCM)dtes64
:64bitový obchod pro laděnímonitor
:Podpora Monitor/Mwait (doplňky Intel SSE3)ds_cpl
:CPL Kval. Debug Storevmx
:Hardwarová virtualizace:Intel VMXsmx
:Bezpečnější režim:TXT (podpora TPM)est
:Vylepšený SpeedSteptm2
:Thermal Monitor 2ssse3
:Doplňkový SSE-3cid
:ID kontextusdbg
:křemíkové laděnífma
:Fused multiply-addcx16
:CMPXCHG16Bxtpr
:Odesílání prioritních zprávpdcm
:Výkonnostní schopnostipcid
:Identifikátory kontextu procesudca
:Přímý přístup do mezipamětisse4_1
:SSE-4.1sse4_2
:SSE-4.2x2apic
:x2APICmovbe
:Instrukce Přesunout data po výměně bajtůpopcnt
:Vraťte instrukci Count of Number of Bits Set na 1 (Hammingova váha, tj. počet bitů)tsc_deadline_timer
:Časovač uzávěrky Tscaes
/aes-ni
:Advanced Encryption Standard (nové pokyny)xsave
:Save Processor Extended States:poskytuje také XGETBY,XRSTOR,XSETBYavx
:Advanced Vector Extensionsf16c
:16bitové konverze fp (CVT16)rdrand
:Přečtěte si náhodné číslo z instrukce hardwarového generátoru náhodných číselhypervisor
:Běží na hypervizor
Funkce CPU definované VIA/Cyrix/Centaur, CPUID úroveň 0xC0000001
rng
:Přítomen generátor náhodných čísel (xstore)rng_en
:Generátor náhodných čísel povolenace
:kryptoměna na CPU (xcrypt)ace_en
:šifrování na CPU povolenoace2
:Advanced Cryptography Engine v2ace2_en
:ACE v2 povolenophe
:PadLock Hash Enginephe_en
:PHE povolenopmm
:Multiplikátor PadLock Montgomerypmm_en
:PMM povoleno
Další rozšířené příznaky AMD:CPUID úroveň 0x80000001, ecx
lahf_lm
:Načtení AH z příznaků (LAHF) a uložení AH do příznaků (SAHF) v dlouhém režimucmp_legacy
:Pokud ano, HyperThreading není platnýsvm
:„Zabezpečený virtuální počítač“:AMD-Vextapic
:Rozšířený prostor APICcr8_legacy
:CR8 v 32bitovém režimuabm
:Pokročilá bitová manipulacesse4a
:SSE-4Amisalignsse
:označuje, zda je generována výjimka obecné ochrany (#GP), když některé starší instrukce SSE pracují s nezarovnanými daty. Závisí také na CR0 a bitu kontroly zarovnání3dnowprefetch
:3DNyní pokyny k předběžnému načteníosvw
:označuje OS Visible Workaround, které umožňuje OS obejít chyby procesoru.ibs
:Vzorkování na základě instrukcíxop
:rozšířené instrukce AVXskinit
:Návod SKINIT/STGIwdt
:Časovač hlídacího psalwp
:Lehká profilacefma4
:4 operandy MAC instrukcetce
:rozšíření mezipaměti překladunodeid_msr
:NodeId MSRtbm
:Manipulace s koncovým bitemtopoext
:Topology Extensions CPUID listyperfctr_core
:Rozšíření Core Performance Counterperfctr_nb
:Rozšíření NB Performance Counterbpext
:rozšíření data breakpointptsc
:čítač časových razítek výkonuperfctr_l2
:L2 Performance Counter Extensionsmwaitx
:MWAIT
rozšíření (MONITORX
/MWAITX
)
Pomocné příznaky:Definováno Linuxem – Pro funkce rozptýlené na různých úrovních CPUID
ring3mwait
:Ring 3 MONITOR/MWAITcpuid_fault
:Chyba CPUID Intelcpb
:AMD Core Performance Boostepb
:Podpora IA32_ENERGY_PERF_BIAScat_l3
:Technologie přidělování mezipaměti L3cat_l2
:Technologie přidělování mezipaměti L2cdp_l3
:Priorita kódu a dat L3invpcid_single
:efektivněinvpcid
aCR4.PCIDE=1
hw_pstate
:AMD HW-PSteproc_feedback
:AMD ProcFeedbackInterfacesme
:AMD Secure Memory Encryptionpti
:Izolace tabulky stránek jádra (Kaiser)retpoline
:Retpoline zmírnění pro Spectre variantu 2 (nepřímé větve)retpoline_amd
:AMD Retpoline zmírněníintel_ppin
:Inventární číslo procesoru Intelavx512_4vnniw
:Pokyny pro neuronovou síť AVX-512avx512_4fmaps
:AVX-512 Multiply Accumulation Jednoduchá přesnostmba
:Přidělení šířky pásma pamětirsb_ctxsw
:Vyplňte RSB na kontextových přepínačích
Příznaky virtualizace:Definováno Linuxem
tpr_shadow
:Intel TPR Shadowvnmi
:Intel Virtual NMIflexpriority
:Intel FlexPriorityept
:Intel Extended Page Tablevpid
:ID virtuálního procesoru Intelvmmcall
:preferujteVMMCALL
naVMCALL
Funkce CPU definované Intel, CPUID úroveň 0x00000007:0 (ebx)
fsgsbase
:{RD/WR}{FS/GS}pokyny BASEtsc_adjust
:TSC úprava MSRbmi1
:Rozšíření pro manipulaci s bity 1. skupinyhle
:Hardware Lock Elisionavx2
:Pokyny AVX2smep
:Ochrana před spuštěním režimu dozorubmi2
:Rozšíření pro manipulaci s bity 2. skupinyerms
:Vylepšené REP MOVSB/STOSBinvpcid
:Zneplatnění ID kontextu procesorurtm
:Omezená transakční paměťcqm
:Monitorování QoS mezipamětimpx
:Rozšíření ochrany pamětirdt_a
:Resource Director Technology Allocationavx512f
:základ AVX-512avx512dq
:Pokyny AVX-512 Double/Quadrdseed
:Instrukce RDSEEDadx
:Pokyny pro ADCX a ADOXsmap
:Prevence přístupu v režimu dozoruclflushopt
:CLFLUSHOPT
instrukceclwb
:CLWB
instrukceintel_pt
:Intel Processor Tracingavx512pf
:AVX-512 Prefetchavx512er
:AVX-512 exponenciální a recipročníavx512cd
:AVX-512 Detekce konfliktůsha_ni
:Rozšíření instrukcí SHA1/SHA256avx512bw
:Pokyny AVX-512 Byte/Wordavx512vl
:AVX-512 128/256 Vector Length prodloužení
Funkce rozšířeného stavu, CPUID úroveň 0x0000000d:1 (eax)
xsaveopt
:OptimalizovánoXSAVE
xsavec
:XSAVEC
xgetbv1
:XGETBV
s ECX =1xsaves
:XSAVES
/XRSTORS
Podlist CPU QoS definovaný Intel, CPUID úroveň 0x0000000F:0 (edx)
cqm_llc
:LLC QoS
Podlist CPU QoS definovaný Intel, CPUID úroveň 0x0000000F:1 (edx)
cqm_occup_llc
:LLC monitorování obsazenosticqm_mbm_total
:Celkové monitorování MBM LLCcqm_mbm_local
:Lokální monitorování MBM LLC
Funkce CPU definované AMD, CPUID úroveň 0x80000008 (ebx)
clzero
:CLZERO
instrukceirperf
:instrukce vyřazeny z počítadla výkonuxsaveerptr
:Vždy ukládat/obnovovat ukazatele chyb FP
List řízení teploty a napájení, CPUID úroveň 0x00000006 (eax)
dtherm
(dřívedts
):digitální teplotní senzorida
:Intel Dynamic Accelerationarat
:Vždy spuštěný časovač APICpln
:Upozornění Intel Power Limitpts
:Tepelný stav balíčku Intelhwp
:Intel Hardware P-stateshwp_notify
:HWP upozorněníhwp_act_window
:Okno aktivity HWPhwp_epp
:Preference energetického výkonu HWPhwp_pkg_req
:Požadavek na úrovni balíčku HWP
Identifikace funkce AMD SVM, CPUID úroveň 0x8000000a (edx)
npt
:Podpora AMD Nested Page Tablelbrv
:Podpora virtualizace AMD LBRsvm_lock
:AMD SVM locking MSRnrip_save
:AMD SVM next_rip savetsc_scale
:Podpora škálování AMD TSCvmcb_clean
:Podpora čistých bitů AMD VMCBflushbyasid
:Podpora AMD flush-by-ASIDdecodeassists
:Podpora AMD Decode Assistspausefilter
:AMD filtrované pozastavení interceptpfthreshold
:Práh filtru pozastavení AMDavic
:Virtuální řadič přerušenívmsave_vmload
:Virtuální VMSAVE VMLOADvgif
:Virtuální GIF
Funkce CPU definované Intel, CPUID úroveň 0x00000007:0 (ecx)
avx512vbmi
:AVX512 Vector Bit Manipulation Pokynyumip
:Ochrana instrukcí uživatelského režimupku
:Ochranné klíče pro uživatelský prostorospke
:Povolit klíče ochrany OSavx512_vbmi2
:Další pokyny pro manipulaci s bity AVX512 Vectorgfni
:Galois Field Nové instrukcevaes
:Vector AESvpclmulqdq
:Carry-Less Multiplication Double Quadwordavx512_vnni
:Instrukce vektorové neuronové sítěavx512_bitalg
:Pokyny VPOPCNT[B,W] a VPSHUF-BITQMBavx512_vpopcntdq
:POPCNT pro vektory DW/QWla57
:5úrovňové tabulky stránekrdpid
:instrukce RDPID
Funkce CPU definované AMD, CPUID úroveň 0x80000007 (ebx)
overflow_recov
:Podpora obnovy přetečení MCAsuccor
:omezení a obnovení neopravitelných chybsmca
:Škálovatelný MCA
Zjištěné chyby CPU (definované Linuxem)
f00f
:Intel F00Ffdiv
:CPU FDIVcoma
:Cyrix 6×86 kómaamd_tlb_mmatch
:tlb_mmatch
AMD Erratum 383amd_apic_c1e
:apic_c1e
AMD Erratum 40011ap
:Špatné místní APIC aka 11APfxsave_leak
:FXSAVE uniká FOP/FIP/FOPclflush_monitor
:AAI65, před MONITOREM je vyžadován CLFLUSHsysret_ss_attrs
:SYSRET neopravuje SS attrsespfix
:„“ IRET na 16bitové SS narušuje vysoké bity ESP/RSPnull_seg
:Vynulováním selektoru se zachová základswapgs_fence
:SWAPGS bez vstupního dep na GSmonitor
:IPI vyžaduje probuzení vzdáleného CPUamd_e400
:CPU je mezi postiženými Erratum 400cpu_meltdown
:CPU je ovlivněno útokem meltdown a potřebuje izolaci tabulky stránek jádraspectre_v1
:CPU je ovlivněno útokem Spectre varianta 1 s podmíněnými větvemispectre_v2
:CPU je ovlivněno útokem Spectre varianta 2 s nepřímými větvemispec_store_bypass
:CPU je ovlivněno zranitelností Spekulativního obcházení obchodu (varianta 4 Spectre).
P.S.
Tento zápis byl odvozen z arch/x86/include/asm/cpufeatures.h
ve zdrojovém kódu jádra. Příznaky jsou uvedeny ve stejném pořadí jako zdrojový kód. Pomozte prosím přidáním odkazů na popisy funkcí, když chybí, napsáním krátkého popisu funkcí, které mají nevýrazné názvy, a aktualizací seznamu pro nové verze jádra. Aktuální seznam je z Linuxu 4.15 plus některé pozdější doplňky.