x86 architecture
CPUID




Before trying to rely upon CPUID, a program must properly detect and sometimes enable the instruction. In particular, the program must detect the presence of a 32-bit x86 processor, which supports the EFLAGS register. Next -- if it is a Cyrix or a NexGen processor -- the CPUID instruction may have to be enabled. Then the program must try to toggle the ID bit in the EFLAGS register, to determine whether the instruction is supported or not. Note that the program may face one of the early Intel P5 processors: they do neither return a vendor ID string nor the maximum supported standard level (when level 0000_0000h is queried). Finally, notice that some chips support a partially programmable CPUID instruction -- thanks to those idiot programmers who hard-coded "GenuineIntel" all over the place...



0000_xxxxh
(standard)
 
 
 
0000h
max + ID
0001h
FMS + flags
0002h
caches (v1)
0003h
PSN
0004h
caches (v2)
0005h
MON
0006h
power mgmt
0007h
flags
 
 
 
0008h
reserved
0009h
DCA
000Ah
PeMo
000Bh
topology
000Ch
reserved
000Dh
X state
000Eh
reserved
000Fh
PQM
 
 
 
0010h
PQE
0011h
reserved
0012h
SGX
0013h
reserved
0014h
PT
0015h
frequency
0016h
frequency
0017h
attributes
 
 
 
0018h
TLB
0019h
reserved
001Ah
reserved
001Bh
PCONFIG
001Ch
reserved
001Dh
reserved
001Eh
reserved
001Fh
reserved
2000_xxxxh
(Xeon Phi)
 
 
 
0000h
max
0001h
flags
0002h
reserved
0003h
reserved
0004h
reserved
0005h
reserved
0006h
reserved
0007h
reserved
4000_xxxxh
(hypervisor)
 
 
 
0000h
vendor
0001h
interface
0002h
version
0003h
features
0004h
recomm.
0005h
limits
0006h
hardware
0007h
reserved
8000_xxxxh
(extended)
 
 
 
0000h
max + ID
0001h
FMS + flags
0002h and 0003h and 0004h
processor name string
0005h
L1 (v1)
0006h
L2/L3 (v1)
0007h
capabilities
 
 
 
0008h
addr + misc
0009h
reserved
000Ah
SVM
000Bh
reserved
000Ch
reserved
000Dh
reserved
000Eh
reserved
000Fh
reserved
 
 
 
0010h
reserved
0011h
reserved
0012h
reserved
0013h
reserved
0014h
reserved
0015h
reserved
0016h
reserved
0017h
reserved
 
 
 
0018h
reserved
0019h
1G TLB
001Ah
perf hints
001Bh
IBS
001Ch
LWP
001Dh
caches (v2)
001Eh
topology
001Fh
SME/SEV
8086_xxxxh
(Transmeta)
 
 
 
0000h
max + ID
0001h
FMS + flags
0002h
HW/SW rev
0003h and 0004h and 0005h and 0006h
CMS info string
0007h
MHz + mV
C000_xxxxh
(Centaur)
 
 
 
0000h
max + ID
0001h
FMS + flags
0002h
reserved
0003h
reserved
0004h
reserved
0005h
reserved
0006h
reserved
0007h
reserved



 
standard level 0000_0000h
 
input EAX=0000_0000h get maximum supported standard level and vendor ID string
output EAX=xxxx_xxxxh maximum supported standard level #1
EBX-EDX-ECX vendor ID string #2
GenuineIntel Intel processor
UMC UMC UMC  UMC processor
AuthenticAMD AMD processor
CyrixInstead Cyrix processor
NexGenDriven NexGen processor
CentaurHauls Centaur processor
RiseRiseRise Rise Technology processor
SiS SiS SiS  SiS processor
GenuineTMx86 Transmeta processor
Geode by NSC National Semiconductor processor
notes descriptions
#1 According to [1] and [2] the pre-B0 step Intel P5 processors return EAX=0000_05xxh.
#2 According to [1] and [2] the pre-B0 step Intel P5 processors don't return a vendor ID string.

 
standard level 0000_0001h
 
input EAX=0000_0001h get processor type/family/model/stepping and feature flags
output EAX=xxxx_xxxxh processor type/family/model/stepping
extended family
(add)
The extended processor family is encoded in bits 27...20.
00+F Intel P4
AMD K8 (Fam 08h)
Transmeta Efficeon
01+F AMD K8L (Fam 10h)
Intel Itanium 2 (IA-64)
02+F AMD K8 (Fam 11h)
03+F AMD K8L (Fam 12h)
05+F AMD BC (Fam 14h)
06+F AMD BD (Fam 15h)
07+F AMD JG (Fam 16h)
08+F AMD ZN (Fam 17h)
02+0 Intel Itanium 2 DC (IA-64)
Intel Itanium 2 QC (IA-64)
02+1 Intel Itanium 2 8C (IA-64)
extended model
(concat)
The extended processor model is encoded in bits 19...16.
AMD K8 0 130 nm Rev C
1 90 nm Rev D
2 90 nm Rev E
4 90 nm Rev F
5 90 nm Rev F
6 65 nm Rev G
7 65 nm Rev G
C 90 nm Rev F (in Fr3)
AMD Fam 15h 0 OR
1 TN/RL
3 KV/GV
6 CZ/BR
7 ST
AMD Fam 16h 0 KB/BV
3 ML
6 NL
AMD Fam 17h 0 ZP
1 RV
Intel 1...F see model (below)
type The processor type is encoded in bit 13 and bit 12.
11b reserved
10b secondary processor (for MP)
01b Overdrive processor
00b primary processor
family The family is encoded in bits 11...8.
4 most 80486s
AMD 5x86
Cyrix 5x86
5 Intel P5, P54C, P55C, P24T
Intel Quark X1000
NexGen Nx586
Cyrix M1
Cyrix MediaGX
Geode
AMD K5, K6
Centaur C6, C2, C3
Rise mP6
SiS 55x
Transmeta Crusoe
6 Intel P6, P2, P3, PM, Core 2
Intel Atom
Intel Xeon Phi (KNL)
AMD K7
Cyrix M2
VIA C3
7 Intel Itanium (IA-64)
B Intel Xeon Phi (KNF and KNC)
F refer to extended family
0 refer to extended family
model The model is encoded in bits 7...4.
Intel 80486 0 i80486DX-25/33
1 i80486DX-50
2 i80486SX
3 i80486DX2
4 i80486SL
5 i80486SX2
7 i80486DX2WB
8 i80486DX4
9 i80486DX4WB
UMC 80486 1 U5D
2 U5S
AMD 80486 3 80486DX2
7 80486DX2WB
8 80486DX4
9 80486DX4WB
A Elan SC400
E 5x86
F 5x86WB
Cyrix 5x86 9 5x86
Cyrix MediaGX 4 GX, GXm
Intel P5-core 0 P5 A-step
1 P5
2 P54C
3 P24T Overdrive
4 P55C
7 P54C
8 P55C (0.25µm)
Intel Quark 9 X1000
NexGen Nx586 0 Nx586 or Nx586FPU (only later ones)
Cyrix M1 2 6x86
Cyrix M2 0 6x86MX
Geode 4 GX1, GXLV, GXm
5 GX2
A LX
AMD K5 0 SSA5 (PR75, PR90, PR100)
1 5k86 (PR120, PR133)
2 5k86 (PR166)
3 5k86 (PR200)
AMD K6 6 K6 (0.30 µm)
7 K6 (0.25 µm)
8 K6-2
9 K6-III
D K6-2+ or K6-III+ (0.18 µm)
Centaur 4 C6
8 C2
9 C3
VIA C3 5 Cyrix M2 core
6 WinChip C5A core
7 WinChip C5B core (if stepping = 0...7)
7 WinChip C5C core (if stepping = 8...F)
8 WinChip C5N core (if stepping = 0...7)
9 WinChip C5XL core (if stepping = 0...7)
9 WinChip C5P core (if stepping = 8...F)
10 WinChip C5J core
Rise 0 mP6 (0.25 µm)
2 mP6 (0.18 µm)
SiS 0 55x
Transmeta Crusoe 4 TM3x00 and TM5x00
Intel P6-core 0 P6 A-step
1 P6
3 P2 (0.28 µm)
5 P2 (0.25 µm)
6 P2 with on-die L2 cache
7 P3 (0.25 µm)
8 P3 (0.18 µm) with 256 KB on-die L2
A P3 (0.18 µm) with 2 MB on-die L2
B P3 (0.13 µm) with 512 KB on-die L2
9 PM (0.13 µm) with 1 MB on-die L2 (Banias)
D PM (0.09 µm) with 2 MB on-die L2 (Dothan)
E PM DC (65 nm) with 2 MB on-die L2 (Yonah)
15 EP80579 (65 nm) with 256 KB on-die L2 (Tolapai)
F Core 2 2C (65 nm) 4 MB L2 (Merom)
16 Core 2 1C (65 nm) 1 MB L2 (Merom-L)
17 Core 2 2C (45 nm) 6 MB L2 (Penryn)
1D Core 2 6C (45 nm) 3x3 MB L2 + 16 MB L3 (DUN)
1A Core 7 4C (45 nm) 8 MB L3 QPI (NHM)
1E Core 7 4C (45 nm) 8 MB L3 PCIe (CFD/LFD/JSF)
1F Core 7 2C (45 nm) 4 MB L3 GFX (ABD/HVD)
2E Core 7 8C (45 nm) 24 MB L3 QPI (BEC)
2C Core 7 6C (32 nm) 12 MB L3 QPI (WSM)
25 Core 7 2C (32 nm) 4 MB L3 GFX (ARD/CLD)
2F Core 7 10C (32 nm) 30 MB L3 QPI (WSM-EX)
2A Core 7 4C (32 nm) 8 MB L3 GPU (SNB-DT)
2D Core 7 8C (32 nm) 20 MB L3 PCIe (SNB-E[NPX])
3A Core 7 4C (22 nm) 8 MB L3 GPU (IVB-DT)
3E Core 7 15C (22 nm) 37.5 MB L3 PCIe (IVB-E[NPX])
3C Core 7 4C (22 nm) 8 MB L3 GPU (HSW-DT)
3F Core 7 18C (22 nm) 45 MB L3 PCIe (HSW-E[NPX])
45 HSW low power
46 HSW Crystalwell (4C 6M GPU and 128M eDRAM)
3D Core 7 2C (14 nm) 4 MB L3 GPU (BDW-DT)
4F Core 7 24C (14 nm) 60 MB L3 PCIe (BDW-E[NPX])
56 Core 7 8C (14 nm) 12 MB L3 SoC (BDW-DE)
47 BDW Brystalwell (4C 6M GPU and 128M eDRAM)
4E SKL Y/U
5E SKL S/H
8E KBL Y/U
9E KBL S/H
?? CFL Y/U
?? CFL S/H
?? WHL Y/U
?? WHL S/H
55 SKX
66 CNL Y/U
?? CNL S/H
?? ICL Y/U
?? ICL S/H
?? TGL
?? ADL
Intel Atom 1C Atom (45 nm) with 512 KB on-die L2
26 Atom (45 nm) with 512 KB on-die L2
36 Atom (32 nm) with 512 KB on-die L2
27 Atom (32 nm) with 512 KB on-die L2
35 Atom (?? nm) with ??? KB on-die L2
4A Atom 2C (22 nm) 1 MB L2 + PowerVR (TGR)
5A Atom 4C (22 nm) 2 MB L2 + PowerVR (ANN)
37 Atom 4C (22 nm) 2 MB L2 + Intel Gen7 (BYT)
4C Atom 4C (14 nm) 2 MB L2 + Intel Gen8 (BSW)
5C Atom 4C (14 nm) 2 MB L2 + Intel Gen9 (APL)
7A Atom 4C (14 nm) 2 MB L2 + Intel Gen9 (GLK)
5D Atom 4C (28 nm TSMC) 1 MB L2 + Mali (SoFIA)
Intel Atom 4D Atom 8C (22 nm) 4 MB L2 (AVN)
5F Atom 16C (14 nm) 16 MB L2 (DVN)
AMD K7 1 Athlon (0.25 µm)
2 Athlon (0.18 µm)
3 Duron (SF core)
4 Athlon (TB core)
6 Athlon (PM core)
7 Duron (MG core)
8 Athlon (TH/AP core)
A Athlon (BT core)
AMD K8 (Fam 08h) xx00b Socket 754 or Socket S1
xx01b Socket 940 or Socket F1207
xx10b if Rev CG, then see K8 erratum #108
xx11b Socket 939 or Socket AM2 or ASB1
01xxb SH (SC 1024 KB)
11xxb DH (SC 512 KB)
10xxb CH (SC 256 KB)
00xxb JH (DC 1024 KB)
10xxb BH (DC 512 KB)
AMD K8L (Fam 10h) 0 Rev A DR (0/1/2=A0/A1/A2)
2 Rev B DR (0/1/A/2/3=B0/B1/BA/B2/B3)
4/5/6 Rev C RB/BL/DA (0/1/2/3=C0/C1/C2/C3)
8/9 Rev D HY SCM/MCM (0/1=D0/D1)
A Rev E PH (0=E0)
AMD K8 (Fam 11h) 3 Rev B LG (1=B1)
AMD K8L (Fam 12h) 0 Rev A LN1 (0/1=A0/A1)
1 Rev B LN1 (0=B0)
2 Rev B LN2 (0=B0)
AMD BC (Fam 14h) 1 Rev B ON (0=B0)
2 Rev C ON (0=C0)
AMD BD (Fam 15h) 00 Rev A OR (0/1=A0/A1)
01 Rev B OR (0/1/2=B0/B1/B2)
02 Rev C OR (0=C0)
10 Rev A TN (1=A1)
13 Rev A RL (1=A1)
30 Rev A KV (0/1=A0/A1)
38 Rev A GV (1=A1)
60 Rev A CZ (0/1=A0/A1)
65 OSVW.ID5=0: Rev A CZ DDR4 (1=A1)
OSVW.ID5=1: Rev A BR (1=A1)
70 Rev A ST (0=A0)
AMD JG (Fam 16h) 00 Rev A KB (0/1=A0/A1)
04 Rev A BV (1=A1)
30 Rev A ML (0/1=A0/A1)
60 Rev A NL (1=A1)
AMD ZN (Fam 17h) 00 Rev A ZP (1=A1)
10 Rev A RV (1=A1)
Intel P4-core 0 P4 (0.18 µm)
1 P4 (0.18 µm)
2 P4 (0.13 µm)
3 P4 (0.09 µm)
4 P4 (0.09 µm)
6 P4 (65 nm)
Intel Xeon Phi ? 32C (45 nm) 8 MB L2 (KNF) (L1OM)
1 62C (22 nm) 31 MB L2 (KNC) (K1OM)
57 72C (14 nm) 36 MB L2 (KNL) (AVX512)
85 72C (14 nm) 36 MB L2 (KNM) (AVX512+)
?? ??C (10 nm) ?? MB L2 (KNH)
Transmeta Efficeon 2 TM8000 (130 nm)
2 TM8000 (90 nm CMS 6.0)
3 TM8000 (90 nm CMS 6.1+)
Intel Itanium 0 Merced (180 nm)
Intel Itanium 2 0 McKinley (180 nm)
1 Madison or Deerfield (130 nm)
2 Madison 9M (130 nm)
Intel Itanium 2 DC 0 Montecito (90 nm, 9000 series)
1 Montvale (90 nm, 9100 series)
Intel Itanium 2 QC 2 Tukwila (65 nm, 9300 series)
Intel Itanium 2 8C 0 Poulson (32 nm, 9500 series)
stepping The stepping is encoded in bits 3...0.
The stepping values are processor-specific.
EBX=aall_ccbbh brand ID The brand ID is encoded in bits 7...0.
00h not supported
01h 0.18 µm Intel Celeron
02h 0.18 µm Intel Pentium III
03h 0.18 µm Intel Pentium III Xeon
03h 0.13 µm Intel Celeron
04h 0.13 µm Intel Pentium III
07h 0.13 µm Intel Celeron mobile
06h 0.13 µm Intel Pentium III mobile
0Ah 0.18 µm Intel Celeron 4
08h 0.18 µm Intel Pentium 4
09h 0.13 µm Intel Pentium 4
0Eh 0.18 µm Intel Pentium 4 Xeon
0Bh 0.18 µm Intel Pentium 4 Xeon MP
0Bh 0.13 µm Intel Pentium 4 Xeon
0Ch 0.13 µm Intel Pentium 4 Xeon MP
08h 0.13 µm Intel Celeron 4 mobile (0F24h)
0Fh 0.13 µm Intel Celeron 4 mobile (0F27h)
0Eh 0.13 µm Intel Pentium 4 mobile (production)
0Fh 0.13 µm Intel Pentium 4 mobile (samples)
11h mobile Intel ??? processor
12h 0.13 µm Intel Celeron M
12h 0.09 µm Intel Celeron M
13h mobile Intel Celeron ? processor
14h Intel Celeron ? processor
15h mobile Intel ??? processor
16h 0.13 µm Intel Pentium M
16h 0.09 µm Intel Pentium M
17h mobile Intel Celeron ? processr
AMD see extended level 8000_0001h
with ID=0000_0765_0000_0000b and NN=4_3210b
CLFLUSH The CLFLUSH (8-byte) chunk count is encoded in bits 15...8.
CPU count The logical processor count is encoded in bits 23...16.
APIC ID The (fixed) default APIC ID is encoded in bits 31...24.
ECX=xxxx_xxxxh feature flags description
bit 31 (HV) hypervisor present (and intercepting this bit, to advertise its presence)
bit 30 (RDRAND) RDRAND
bit 29 (F16C) VCVTPH2PS and VCVTPS2PH
bit 28 (AVX) AVX
bit 27 (OSXSAVE) non-privileged read-only copy of current CR4.OSXSAVE value
bit 26 (XSAVE) CR4.OSXSAVE, XCRn, XGETBV, XSETBV, XSAVE(OPT), XRSTOR
also see standard level 0000_000Dh
bit 25 (AES) AES*
bit 24 (TSCD) local APIC supports one-shot operation using TSC deadline value
bit 23 (POPCNT) POPCNT
bit 22 (MOVBE) MOVBE
bit 21 (x2APIC) x2APIC, APIC_BASE.EXTD, MSRs 0000_0800h...0000_0BFFh
64-bit ICR (+030h but not +031h), no DFR (+00Eh), SELF_IPI (+040h)
also see standard level 0000_000Bh
bit 20 (SSE4.2) SSE4.2
bit 19 (SSE4.1) SSE4.1, MXCSR, CR4.OSXMMEXCPT, #XF
bit 18 (DCA) Direct Cache Access (that is, the ability to prefetch data from MMIO)
also see standard level 0000_0009h
bit 17 (PCID) CR4.PCIDE
bit 16 reserved
bit 15 (PDCM) Performance Debug Capability MSR
bit 14 (ETPRD) MISC_ENABLE.ETPRD
bit 13 (CX16) CMPXCHG16B
bit 12 (FMA) FMA
bit 11 (SDBG) DEBUG_INTERFACE MSR for silicon debug
bit 10 (CID) context ID: the L1 data cache can be set to adaptive or shared mode
MISC_ENABLE.L1DCCM
bit 9 (SSSE3) SSSE3
bit 8 (TM2) MISC_ENABLE.TM2E
THERM_INTERRUPT and THERM_STATUS MSRs
xAPIC thermal LVT entry
THERM2_CONTROL MSR
bit 7 (EST) Enhanced SpeedStep Technology
bit 6 (SMX) CR4.SMXE, GETSEC
bit 5 (VMX) CR4.VMXE, VM* and VM*
bit 4 (DSCPL) CPL-qualified Debug Store
bit 3 (MON) MONITOR/MWAIT, MISC_ENABLE.MONE, MISC_ENABLE.LCMV
MONITOR_FILTER_LINE_SIZE MSR
also see standard level 0000_0005h
setting MISC_ENABLE.MONE=0 causes MON=0
bit 2 (DTES64) 64-bit Debug Trace and EMON Store MSRs
bit 1 (PCLMUL) PCLMULQDQ
bit 0 (SSE3) SSE3, MXCSR, CR4.OSXMMEXCPT, #XF, if FPU=1 then also FISTTP
EDX=xxxx_xxxxh feature flags description
bit 31 (PBE) Pending Break Event, STPCLK, FERR#, MISC_ENABLE.PBE
bit 30 (IA-64) IA-64, JMPE Jv, JMPE Ev
bit 29 (TM1) MISC_ENABLE.TM1E
THERM_INTERRUPT and THERM_STATUS MSRs
xAPIC thermal LVT entry
bit 28 (HTT) Hyper-Threading Technology, PAUSE
bit 27 (SS) selfsnoop
bit 26 (SSE2) SSE2, MXCSR, CR4.OSXMMEXCPT, #XF
bit 25 (SSE) SSE, MXCSR, CR4.OSXMMEXCPT, #XF
bit 24 (FXSR) FXSAVE/FXRSTOR, CR4.OSFXSR
bit 23 (MMX) MMX
bit 22 (ACPI) THERM_CONTROL MSR
bit 21 (DTES) Debug Trace and EMON Store MSRs
bit 20 reserved
bit 19 (CLFL) CLFLUSH
bit 18 (PSN) PSN (see standard level 0000_0003h), MISC_CTL.PSND #1
bit 17 (PSE36) 4 MB PDE bits 16...13, CR4.PSE
bit 16 (PAT) PAT MSR, PDE/PTE.PAT
bit 15 (CMOV) CMOVcc, if FPU=1 then also FCMOVcc/F(U)COMI(P)
bit 14 (MCA) MCG_*/MCn_* MSRs, CR4.MCE, #MC
bit 13 (PGE) PDE/PTE.G, CR4.PGE
bit 12 (MTRR) MTRR* MSRs
bit 11 (SEP) SYSENTER/SYSEXIT, SEP_* MSRs #2
bit 10 reserved
bit 9 (APIC) APIC #3, #4
bit 8 (CX8) CMPXCHG8B #5
bit 7 (MCE) MCAR/MCTR MSRs, CR4.MCE, #MC
bit 6 (PAE) 64-bit PDPTE/PDE/PTEs, CR4.PAE
bit 5 (MSR) MSRs, RDMSR/WRMSR
bit 4 (TSC) TSC, RDTSC, CR4.TSD (doesn't imply MSR=1)
bit 3 (PSE) PDE.PS, PDE/PTE.res, CR4.PSE, #PF(1xxxb)
bit 2 (DE) CR4.DE, DR7.RW=10b, #UD on MOV from/to DR4/5
bit 1 (VME) CR4.VME/PVI, EFLAGS.VIP/VIF, TSS32.IRB
bit 0 (FPU) FPU
notes descriptions
#1 If the PSN has been disabled, then the PSN feature flag will read as 0. In addition the value for the maximum
supported standard level (reported by standard level 0000_0000h, register EAX) will be lower.
#2 The Intel P6 processor does not support SEP, but inadvertently reports it.
#3 If the APIC has been disabled, then the APIC feature flag will read as 0.
#4 Early AMD K5 processors (SSA5) inadvertently used this bit to report PGE support.
#5 Some processors do support CMPXCHG8B, but don't report it by default. This is due to a Windows NT bug.

 
standard level 0000_0002h
 
input EAX=0000_0002h get processor configuration descriptors
output AL number of times this level must be queried to obtain all configuration descriptors #1
EAX.15...8
EAX.23...16
EAX.31...24
EBX.0...7
EBX.15...8
EBX.23...16
EBX.31...24
ECX.0...7
ECX.15...8
ECX.23...16
ECX.31...24
EDX.0...7
EDX.15...8
EDX.23...16
EDX.31...24
configuration descriptors #2
value description
00h null descriptor (=unused descriptor)
01h code TLB, 4K pages, 4 ways, 32 entries
02h code TLB, 4M pages, fully, 2 entries
03h data TLB, 4K pages, 4 ways, 64 entries
04h data TLB, 4M pages, 4 ways, 8 entries
05h data TLB, 4M pages, 4 ways, 32 entries
06h code L1 cache, 8 KB, 4 ways, 32 byte lines
08h code L1 cache, 16 KB, 4 ways, 32 byte lines
09h code L1 cache, 32 KB, 4 ways, 64 byte lines
0Ah data L1 cache, 8 KB, 2 ways, 32 byte lines
0Bh code TLB, 4M pages, 4 ways, 4 entries
0Ch data L1 cache, 16 KB, 4 ways, 32 byte lines
0Dh data L1 cache, 16 KB, 4 ways, 64 byte lines (ECC)
0Eh data L1 cache, 24 KB, 6 ways, 64 byte lines
10h data L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
15h code L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
1Ah code and data L2 cache, 96 KB, 6 ways, 64 byte lines (IA-64)
1Dh code and data L2 cache, 128 KB, 2 ways, 64 byte lines
21h code and data L2 cache, 256 KB, 8 ways, 64 byte lines
22h code and data L3 cache, 512 KB, 4 ways (!), 64 byte lines, dual-sectored
23h code and data L3 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
24h code and data L2 cache, 1024 KB, 16 ways, 64 byte lines
25h code and data L3 cache, 2048 KB, 8 ways, 64 byte lines, dual-sectored
29h code and data L3 cache, 4096 KB, 8 ways, 64 byte lines, dual-sectored
2Ch data L1 cache, 32 KB, 8 ways, 64 byte lines
30h code L1 cache, 32 KB, 8 ways, 64 byte lines
39h code and data L2 cache, 128 KB, 4 ways, 64 byte lines, sectored
3Ah code and data L2 cache, 192 KB, 6 ways, 64 byte lines, sectored
3Bh code and data L2 cache, 128 KB, 2 ways, 64 byte lines, sectored
3Ch code and data L2 cache, 256 KB, 4 ways, 64 byte lines, sectored
3Dh code and data L2 cache, 384 KB, 6 ways, 64 byte lines, sectored
3Eh code and data L2 cache, 512 KB, 4 ways, 64 byte lines, sectored
40h no integrated L2 cache (P6 core) or L3 cache (P4 core)
41h code and data L2 cache, 128 KB, 4 ways, 32 byte lines
42h code and data L2 cache, 256 KB, 4 ways, 32 byte lines
43h code and data L2 cache, 512 KB, 4 ways, 32 byte lines
44h code and data L2 cache, 1024 KB, 4 ways, 32 byte lines
45h code and data L2 cache, 2048 KB, 4 ways, 32 byte lines
46h code and data L3 cache, 4096 KB, 4 ways, 64 byte lines
47h code and data L3 cache, 8192 KB, 8 ways, 64 byte lines
48h code and data L2 cache, 3072 KB, 12 ways, 64 byte lines
49h code and data L3 cache, 4096 KB, 16 ways, 64 byte lines (P4) or
code and data L2 cache, 4096 KB, 16 ways, 64 byte lines (Core 2)
4Ah code and data L3 cache, 6144 KB, 12 ways, 64 byte lines
4Bh code and data L3 cache, 8192 KB, 16 ways, 64 byte lines
4Ch code and data L3 cache, 12288 KB, 12 ways, 64 byte lines
4Dh code and data L3 cache, 16384 KB, 16 ways, 64 byte lines
4Eh code and data L2 cache, 6144 KB, 24 ways, 64 byte lines
4Fh code TLB, 4K pages, ???, 32 entries
50h code TLB, 4K/4M/2M pages, fully, 64 entries
51h code TLB, 4K/4M/2M pages, fully, 128 entries
52h code TLB, 4K/4M/2M pages, fully, 256 entries
55h code TLB, 2M/4M, fully, 7 entries
56h L0 data TLB, 4M pages, 4 ways, 16 entries
57h L0 data TLB, 4K pages, 4 ways, 16 entries
59h L0 data TLB, 4K pages, fully, 16 entries
5Ah L0 data TLB, 2M/4M, 4 ways, 32 entries
5Bh data TLB, 4K/4M pages, fully, 64 entries
5Ch data TLB, 4K/4M pages, fully, 128 entries
5Dh data TLB, 4K/4M pages, fully, 256 entries
60h data L1 cache, 16 KB, 8 ways, 64 byte lines, sectored
61h code TLB, 4K pages, fully, 48 entries
63h data TLB, 2M/4M pages, 4-way, 32-entries, and
data TLB, 1G pages, 4-way, 4 entries
64h data TLB, 4K pages, 4-way, 512 entries
66h data L1 cache, 8 KB, 4 ways, 64 byte lines, sectored
67h data L1 cache, 16 KB, 4 ways, 64 byte lines, sectored
68h data L1 cache, 32 KB, 4 ways, 64 byte lines, sectored
6Ah L0 data TLB, 4K pages, 8-way, 64 entries
6Bh data TLB, 4K pages, 8-way, 256 entries
6Ch data TLB, 2M/4M pages, 8-way, 126 entries
6Dh data TLB, 1G pages, fully, 16 entries
70h trace L1 cache, 12 KµOPs, 8 ways
71h trace L1 cache, 16 KµOPs, 8 ways
72h trace L1 cache, 32 KµOPs, 8 ways
73h trace L1 cache, 64 KµOPs, 8 ways
76h code TLB, 2M/4M pages, fully, 8 entries
77h code L1 cache, 16 KB, 4 ways, 64 byte lines, sectored (IA-64)
78h code and data L2 cache, 1024 KB, 4 ways, 64 byte lines
79h code and data L2 cache, 128 KB, 8 ways, 64 byte lines, dual-sectored
7Ah code and data L2 cache, 256 KB, 8 ways, 64 byte lines, dual-sectored
7Bh code and data L2 cache, 512 KB, 8 ways, 64 byte lines, dual-sectored
7Ch code and data L2 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
7Dh code and data L2 cache, 2048 KB, 8 ways, 64 byte lines
7Eh code and data L2 cache, 256 KB, 8 ways, 128 byte lines, sect. (IA-64)
7Fh code and data L2 cache, 512 KB, 2 ways, 64 byte lines
80h code and data L2 cache, 512 KB, 8 ways, 64 byte lines
81h code and data L2 cache, 128 KB, 8 ways, 32 byte lines
82h code and data L2 cache, 256 KB, 8 ways, 32 byte lines
83h code and data L2 cache, 512 KB, 8 ways, 32 byte lines
84h code and data L2 cache, 1024 KB, 8 ways, 32 byte lines
85h code and data L2 cache, 2048 KB, 8 ways, 32 byte lines
86h code and data L2 cache, 512 KB, 4 ways, 64 byte lines
87h code and data L2 cache, 1024 KB, 8 ways, 64 byte lines
88h code and data L3 cache, 2048 KB, 4 ways, 64 byte lines (IA-64)
89h code and data L3 cache, 4096 KB, 4 ways, 64 byte lines (IA-64)
8Ah code and data L3 cache, 8192 KB, 4 ways, 64 byte lines (IA-64)
8Dh code and data L3 cache, 3072 KB, 12 ways, 128 byte lines (IA-64)
90h code TLB, 4K...256M pages, fully, 64 entries (IA-64)
96h data L1 TLB, 4K...256M pages, fully, 32 entries (IA-64)
9Bh data L2 TLB, 4K...256M pages, fully, 96 entries (IA-64)
A0h data TLB, 4K pages, fully, 32 entries
B0h code TLB, 4K pages, 4 ways, 128 entries
B1h code TLB, 4M pages, 4 ways, 4 entries and
code TLB, 2M pages, 4 ways, 8 entries
B2h code TLB, 4K pages, 4 ways, 64 entries
B3h data TLB, 4K pages, 4 ways, 128 entries
B4h data TLB, 4K pages, 4 ways, 256 entries
B5h code TLB, 4K pages, 8 ways, 64 entries
B6h code TLB, 4K pages, 8 ways, 128 entries
BAh data TLB, 4K pages, 4 ways, 64 entries
C0h data TLB, 4K/4M pages, 4 ways, 8 entries
C1h L2 code and data TLB, 4K/2M pages, 8 ways, 1024 entries
C2h data TLB, 2M/4M pages, 4 ways, 16 entries
C3h L2 code and data TLB, 4K/2M pages, 6 ways, 1536 entries and
L2 code and data TLB, 1G pages, 4 ways, 16 entries
C4h data TLB, 2M/4M pages, 4-way, 32 entries
CAh L2 code and data TLB, 4K pages, 4 ways, 512 entries
D0h code and data L3 cache, 512-kb, 4 ways, 64 byte lines
D1h code and data L3 cache, 1024-kb, 4 ways, 64 byte lines
D2h code and data L3 cache, 2048-kb, 4 ways, 64 byte lines
D6h code and data L3 cache, 1024-kb, 8 ways, 64 byte lines
D7h code and data L3 cache, 2048-kb, 8 ways, 64 byte lines
D8h code and data L3 cache, 4096-kb, 8 ways, 64 byte lines
DCh code and data L3 cache, 1536-kb, 12 ways, 64 byte lines
DDh code and data L3 cache, 3072-kb, 12 ways, 64 byte lines
DEh code and data L3 cache, 6144-kb, 12 ways, 64 byte lines
E2h code and data L3 cache, 2048-kb, 16 ways, 64 byte lines
E3h code and data L3 cache, 4096-kb, 16 ways, 64 byte lines
E4h code and data L3 cache, 8192-kb, 16 ways, 64 byte lines
EAh code and data L3 cache, 12288-kb, 24 ways, 64 byte lines
EBh code and data L3 cache, 18432-kb, 24 ways, 64 byte lines
ECh code and data L3 cache, 24576-kb, 24 ways, 64 byte lines
F0h 64 byte prefetching
F1h 128 byte prefetching
FEh query standard level 0000_0018h instead
FFh query standard level 0000_0004h instead
value description
70h Cyrix specific: code and data TLB, 4K pages, 4 ways, 32 entries
74h Cyrix specific: ???
77h Cyrix specific: ???
80h Cyrix specific: code and data L1 cache, 16 KB, 4 ways, 16 byte lines
82h Cyrix specific: ???
84h Cyrix specific: ???
value description
others reserved
example
(here: P6)
EAX=0302_0101h
EBX=0000_0000h
ECX=0000_0000h
EDX=0604_0A43h
Because AL is 01h, one invocation of the level is enough to obtain all the configuration descriptors. All of them are valid because their highest bits are 0. This P6 processor includes a 4K/M code/data TLB, an 8+8 KB code/data L1 cache and an integrated 512 KB code and data L2 cache.
notes descriptions
#1 In a MP system special precautions must be taken when executing standard level 0000_0002h more than once.
In particular it must be ensured that the same CPU is used during that entire process.
#2 Programs must not expect any particular order for the reported configuration descriptors.

 
standard level 0000_0003h
 
input EAX=0000_0003h get processor serial number #1
output EAX=xxxx_xxxxh processor serial number (Transmeta Efficeon processors only)
EBX=xxxx_xxxxh processor serial number (Transmeta Crusoe and Efficeon processors only)
ECX=xxxx_xxxxh processor serial number
EDX=xxxx_xxxxh processor serial number
note description
#1 This level is only supported and enabled if the PSN feature flag is set. The reported processor serial number should be combined with the vendor ID string and the processor type/family/model/stepping value, to distinguish cases in which two processors from different vendors happen to have the same serial number. Finally, it should be noted that most vendors can not guarantee that their serial numbers are truely unique.

 
standard level 0000_0004h
 
input EAX=0000_0004h get cache configuration descriptors #1
ECX=xxxx_xxxxh cache level to query (e.g. 0=L1D, 1=L2, or 0=L1D, 1=L1I, 2=L2)
output EAX bits description
31...26 cores per package - 1
25...14 threads per cache - 1
13...10 reserved
9 fully associative?
8 self-initializing?
7...5 cache level (starts at 1)
4...0 cache type (0=null, 1=data, 2=code, 3=unified, 4...31=reserved)
EBX bits description
31...22 ways of associativity - 1
21...12 physical line partitions - 1
11...0 system coherency line size - 1
ECX bits description
31...0 sets - 1
EDX bits description
31...3 reserved
2 complex indexing?
1 inclusive of lower levels?
0 write-back invalidate?
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0005h
 
input EAX=0000_0005h get MON information #1
output EAX bits description
31...16 reserved
15...0 smallest monitor line size in bytes
EBX bits description
31...16 reserved
15...0 largest monitor line size in bytes
ECX bits description
31...2 reserved
1 treat interrupts as break events, even when interrupts are disabled
0 enumeration of MWAIT extensions (beyond EAX and EBX)
EDX bits description
31...28 number of C7 sub C-states for MWAIT
27...24 number of C6 sub C-states for MWAIT
23...20 number of C5 sub C-states for MWAIT
19...16 number of C4 sub C-states for MWAIT (starting with Core 7: C7)
15...12 number of C3 sub C-states for MWAIT (starting with Core 7: C6)
11...8 number of C2 sub C-states for MWAIT
7...4 number of C1 sub C-states for MWAIT
3...0 number of C0 sub C-states for MWAIT
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0006h
 
input EAX=0000_0006h get power management information #1
output EAX bits description
31...19 reserved
18 reserved
17 reserved
16 reserved
15 reserved
14 reserved
13 (HDC) PKG_HDC_CTL, PM_CTL1, and THREAD_STALL MSRs
12 reserved
11 (HWP_PLR) HWP_REQUEST_PKG MSR
10 (HWP_EPP) HWP_REQUEST MSR bits 31...24
9 (HWP_ACT) HWP_REQUEST MSR bits 41...32
8 (HWP_NOT) HWP_INTERRUPT MSR
7 (HWP) PM_ENABLE bit 0, and HWP_{CAPABILITIES,REQUEST,STATUS} MSRs
6 (PTM) PACKAGE_THERMAL_STATUS MSR
5 (ECMD) CLOCK_MODULATION MSR
4 (PLN) THERM_STATUS MSR bits 10/11
THERM_INTERRUPT MSR bit 24
3 reserved
2 (ARAT)
2 (OPP)
always running APIC timer (in every C-state and regardless of P-state)
P4: operating point protection (protect CPU's ratio/VID points) #2
1 (DA) dynamic acceleration (MISC.ENABLE.DAD=0)
0 (DTS) digital thermal sensor
EBX bits description
31...4 reserved
3...0 number of programmable digital thermal sensor interrupt thresholds
ECX bits description
31...4 reserved
3 ENERGY_PERF_BIAS MSR (0000_01B0h)
2 reserved
1 ACNT2
0 MPERF/APERF
EDX bits description
31...0 reserved
notes descriptions
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.
#2 The implementation of OPP is processor and stepping specific.
On certain Pentium 4 processors, the protection mechanism is Snap-to-VID and it is enabled if the bit is set.

 
standard level 0000_0007h
 
input EAX=0000_0007h get feature flags #1
ECX=xxxx_xxxxh sub-level to query (0...n as per EAX reported by sub-level 0)
output
(sub 0)
EAX bits description
31...0 maximum supported sub-level
EBX bits description
31 (AVX512VL) AVX512VL
30 (AVX512BW) AVX512BW
29 (SHA) SHA
28 (AVX512CD) AVX512CD
27 (AVX512ER) AVX512ER
26 (AVX512PF) AVX512PF
25 (PT) processor trace, standard level 0000_0014h
24 (CLWB) CLWB
23 (CLFLUSHOPT) CLFLUSHOPT
22 (PCOMMIT) PCOMMIT
21 (AVX512IFMA) AVX512IFMA
20 (SMAP) CR4.SMAP, CLAC and STAC
19 (ADX) ADCX and ADOX
18 (RDSEED) RDSEED
17 (AVX512DQ) AVX512DQ
16 (AVX512F) AVX512F, EVEX, ZMM0...31, K0...7, modifiers, VSIB512, disp8*N
15 (PQE) platform quality of service enforcement
14 (MPX) XCR0.Breg, XCR0.BNDCSR, BNDCFGS/BNDCFGU/BNDSTATUS and BND0...BND3, BND:, MPX
13 (FPCSDS) FP_CS and FP_DS always saved as 0000h
12 (PQM) platform quality of service monitoring
11 (RTM) XBEGIN, XABORT, XEND, XTEST, DR7.RTM, DR6.RTM
10 (INVPCID) INVPCID
9 (ERMS) enhanced REP MOVSB/STOSB (while MISC_ENABLE.FSE=1)
8 (BMI2) BMI2
7 (SMEP) CR4.SMEP
6 (FPDP) FP_DP for non-control instructions only if unmasked exception(s)
5 (AVX2) AVX2 (including VSIB)
4 (HLE) XACQUIRE:, XRELEASE:, XTEST
3 (BMI1) BMI1 and TZCNT
2 (SGX) CR4.SEE, PRMRR, ENCLS and ENCLU, standard level 0000_0012h
1 (TSC_ADJUST) TSC_ADJUST
0 (FSGSBASE) CR4.FSGSBASE and [RD|WR][FS|GS]BASE
ECX bits description
31 reserved
30 (SGX_LC) SGX launch configuration
29 reserved
28 reserved
27 reserved
26 reserved
25 reserved
24 reserved
23 reserved
22 (RDPID) RDPID, TSC_AUX
21 (MAWAU) MPX address-width adjust for CPL=3
20 (MAWAU) MPX address-width adjust for CPL=3
19 (MAWAU) MPX address-width adjust for CPL=3
18 (MAWAU) MPX address-width adjust for CPL=3
17 (MAWAU) MPX address-width adjust for CPL=3
16 (VA57) 5-level paging, CR4.VA57
15 reserved
14 (AVX512VP...DQ) VPOPCNT{D,Q}
13 (TME) TME
12 (AVX512BITALG) VPOPCNT{B,W} and VPSHUFBITQMB
11 (AVX512VNNI) VPDP{BUS,WSS}D[S]
10 (VPCL) VPCLMULQDQ (VEX.256 and EVEX)
9 (VAES) VAES{ENC,DEC}{,LAST} (VEX.256 and EVEX)
8 (GFNI) [V]GF2P8AFFINE{,INV}QB and [V]GF2P8MULB (SSE, VEX, and EVEX)
7 (CET) CR4.CET, XSS.CET_{U,S}, {U,S}_CET MSRs, PL{0,1,2,3}_SSP MSRs,
IST_SSP MSR and 8-entry interrupt SSP table, #CP, SSP, TSS32.SSP,
INCSSP, RDSSP, SAVESSP, RSTORSSP, SETSSBSY, CLRSSBSY,
WRSS, WRUSS, ENDBR32, ENDBR64, CALL/JMP Rv + no track (3Eh)
6 (AVX512VBMI2) VP{EXPAND,COMPRESS}{B,W} and VP{SHL,SHR}D{,V}{W,D,Q}
5 reserved
4 (OSPKE) non-privileged read-only copy of current CR4.PKE value
3 (PKU) XCR0.PKRU, CR4.PKE, PKRU, RDPKRU/WRPKRU, PxE.PK, #PF.PK
2 (UMIP) CR4.UMIP for #GP on SGDT, SIDT, SLDT, STR, and SMSW if CPL>0
1 (AVX512VBMI) AVX512VBMI
0 (PREFETCHWT1) PREFETCHWT1
EDX bits description
31 reserved
30 reserved
29 ARCH_CAPABILITIES MSR
28 reserved
27 (STIBP) SPEC_CTRL.STIBP
26 (IBRS_IBPB) SPEC_CTRL.IBRS and PRED_CMD.IBPB
25 reserved
24 reserved
23 reserved
22 reserved
21 reserved
20 reserved
19 reserved
18 (PCONFIG) PCONFIG (for MK-TME)
17 reserved
16 reserved
15 reserved
14 reserved
13 reserved
12 reserved
11 reserved
10 reserved
9 reserved
8 reserved
7 reserved
6 reserved
5 reserved
4 reserved
3 (AVX512QFMA) V4F[N]MADD{PS,SS}
2 (AVX512QVNNIW) VP4DPWSSD[S]
1 reserved
0 reserved
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0009h
 
input EAX=0000_0009h get DCA parameters #1
output EAX bits description
31...0 value of PLATFORM_DCA_CAP MSR (0000_01F8h, bits 31...0)
EBX bits description
31...0 reserved
ECX bits description
31...0 reserved
EDX bits description
31...0 reserved
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_000Ah
 
input EAX=0000_000Ah get architectural PeMo information #1
output EAX bits description
31...24 length of EBX bit vector
23...16 bit width of PeMo counter(s)
15...8 number of PeMo counters per logical processor
7...0 revision
EBX bits description
31...7 reserved
6 branch mispredicts retired event unavailable
5 branch instructions retired event unavailable
4 last level cache misses event unavailable
3 last level cache references event unavailable
2 reference cycles event unavailable
1 instructions retired event unavailable
0 core cycles event unavailable
ECX bits description
31...0 reserved
EDX bits description
31...13 reserved
12...5 bit width of fixed-function PeMo counters (if revision > 1)
4...0 number of fixed-function PeMo counters (if revision > 1)
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_000Bh
 
input EAX=0000_000Bh get topology enumeration information #1
ECX=0000_00xxh sub-level to query (00h=SMT)
output EAX bits description
31...5 reserved
4...0 number of bits to shift x2APIC ID right to get unique topology ID of next level type
all logical processors with same next level ID share current level
EBX bits description
31...16 reserved
15...0 number of enabled logical processors at this level
ECX bits description
31...16 reserved
15...8 level type (00h=invalid, 01h=SMT, 02h=core, 03h...FFh=reserved
7...0 level number (same as input)
EDX bits description
31...0 x2APIC ID of current logical processor
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_000Dh
 
input EAX=0000_000Dh get extended state enumeration #1
ECX=0000_00xxh sub-level to query (0=main, 1=reserved, 2...62 as per XCR0.n)
output
(main)
EAX bits description
31...0 valid XCR0.31...0 bits
EBX bits description
31...0 current size (in bytes) of XSAVE/XRSTOR area (as per current XCR0)
ECX bits description
31...0 max. size (in bytes) of XSAVE/XRSTOR area (incl. XSAVE.HEADER)
EDX bits description
31...0 valid XCR0.63...32 bits
output
(res.)
EAX bits description
31...4 reserved
3 XSAVES/XRSTORS and XSS
2 XGETBV with ECX=1
1 XSAVEC and compacted form of XRSTOR
0 XSAVEOPT
EBX bits description
31...0 size (in bytes) in XSAVE area for XCR0 | XSS
ECX bits description
31...0 valid XSS.31...0 bits
EDX bits description
31...0 valid XSS.63...32 bits
output
(sub)
EAX bits description
31...0 size (in bytes) in XSAVE/XRSTOR area for XCR0.n (n=ECX=2...62)
0 if n was invalid
EBX bits description
31...0 offset (in bytes) in XSAVE/XRSTOR area for XCR0.n (n=ECX=2...62)
0 if n was invalid
ECX bits description
31...2 reserved
1 0 if component immediately follows previous component
1 if component is aligned to next 64 byte boundary
0 1 if n was valid in XSS
0 if n was invalid
EDX bits description
31...0 reserved
0 if n was invalid
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_000Fh
 
input EAX=0000_000Fh get platform quality of service monitoring (PQM) enumeration #1
ECX=0000_00xxh sub-level to query (0=resources, 1...n as per EDX reported by sub-level 0)
output
(main)
EAX bits description
31...0 reserved
EBX bits description
31...0 max. range (zero-based) of RMID within this phys. processor of all types
ECX bits description
31...0 reserved
EDX bits description
31...2 reserved
1 L3 cache QoS monitoring
0 reserved
output
(1=L3)
EAX bits description
31...0 reserved
EBX bits description
31...0 conversion factor from QM_CTR value to occupancy metric (bytes)
ECX bits description
31...0 max. range (zero-based) of RMID within this resource type
EDX bits description
31...3 reserved
2 L3 local external bandwidth monitoring
1 L3 total external bandwidth monitoring
0 L3 occupancy monitoring
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0010h
 
input EAX=0000_0010h get platform quality of service enforcement (PQE) enumeration #1
ECX=0000_00xxh sub-level to query (0=resources, 1...n as per EBX reported by sub-level 0)
output
(main)
EAX bits description
31...0 reserved
EBX bits description
31...4 reserved
3 memory bandwidth allocation
2 L2 cache QoS enforcement
1 L3 cache QoS enforcement
0 reserved
ECX bits description
31...0 reserved
EDX bits description
31...0 reserved
output
(1=L3)
EAX bits description
31...5 reserved
4...0 length of capacity bit mask for resource n using minus-one notation
EBX bits description
31...0 bit-granular map of isolation/contention of allocation units
ECX bits description
31...3 reserved
2 code/data prioritization -- set L3_QOS_CFG MSR bit 0 to 1 to enable
1 updates of COS should be infrequent
0 reserved
EDX bits description
31...16 reserved
15...0 highest COS number supported for resource n
output
(2=L2)
EAX bits description
31...5 reserved
4...0 length of capacity bit mask for resource n using minus-one notation
EBX bits description
31...0 bit-granular map of isolation/contention of allocation units
ECX bits description
31...3 reserved
2 code/data prioritization -- set L2_QOS_CFG MSR bit 0 to 1 to enable
1...0 reserved
EDX bits description
31...16 reserved
15...0 highest COS number supported for resource n
output
(3=M)
EAX bits description
31...12 reserved
11...0 maximum MBA throttling value for resource n using minus-one notation
EBX bits description
31...0 reserved
ECX bits description
31...3 reserved
2 response to delay value is linear
1...0 reserved
EDX bits description
31...16 reserved
15...0 highest COS number supported for resource n
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0012h
 
input EAX=0000_0012h get SGX resource enumeration #1
ECX=xxxx_xxxxh sub-level to query (0=capabilities, 1=SECS, 2...n=EPC)
output
(capab.)
EAX bits description
31...7 reserved
6 ETRACKC/ERDINFO/ELDBC/ELDUC
5 ENCLV and EINCVIRTCHILD/EDECVIRTCHILD/ESETCONTEXT
4...2 reserved
1 (SGX2) EAUG/EMODPR/EMODT and EACCEPT/EMODPE/EACCEPTCOPY
0 (SGX1) ENCLS and ENCLU, #PF.SGX
EBX bits description
31...0 bit vector of supported extended features that can be written to SSA.MISC
ECX bits description
31...0 reserved
EDX bits description
31...16 reserved
15...8 maximum enclave size in 2^n bytes when not in PM64
7...0 maximum enclave size in 2^n bytes when in PM64
output
(SECS)
EAX bits description
31...0 SECS.ATTRIBUTES.31...0 that can be set with ENCLS[ECREATE]
EBX bits description
31...0 SECS.ATTRIBUTES.63...32 that can be set with ENCLS[ECREATE]
ECX bits description
31...0 SECS.ATTRIBUTES.95...64 that can be set with ENCLS[ECREATE]
EDX bits description
31...0 SECS.ATTRIBUTES.127...96 that can be set with ENCLS[ECREATE]
output
(EPC)
EAX bits description
31...12 EPC base bits 31...12
11...4 reserved
3...0 0000b = not valid, 0001b = level is valid, other = reserved
EBX bits description
31...20 reserved
19...0 EPC base bits 51...32
ECX bits description
31...12 EPC size bits 31...12
11...4 reserved
3...0 0000b = not valid, 0001b = EPC section is protected, other = reserved
EDX bits description
31...20 reserved
19...0 EPC size bits 51...32
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0014h
 
input EAX=0000_0014h get processor trace (PT) capability enumeration #1
ECX=0000_00xxh sub-level to query (0=capabilities, 1=details -- 1...31 as per EAX reported by sub-level 0)
output
(capab.)
EAX bits description
31...0 max sub-level
EBX bits description
31...6 reserved
5 (PET) power event trace, RTIT_CTL.PwrEvtEn
4 (PTWRITE) PTWRITE, RTIT_CTL.PTWEn, RTIT.CTL.FUPonPTW
3 (MTC) MTC timing packet, suppression of COFI-based packets
2 (IPFILT_WRSTPRSV) IP filtering, TraceStop filtering, PT MSR preservation across warm reset
1 (CPSB_CAM) configurable PSB, cycle-accurate mode
0 CR3 filtering
ECX bits description
31 (LIP) IP payloads are LIP
30...4 reserved
3 output to trace transport subsystem
2 (SNGLRNGOUT) single-range output scheme
1 (MENTRY) ToPA tables allow multiple output entries
0 (TOPAOUT) ToPA output
EDX bits description
31...0 reserved
output
(details)
EAX bits description
31...16 bitmap of supported MTC period encodings
15...3 reserved
2...0 number of configurable address ranges for filtering
EBX bits description
31...16 bitmap of supported configurable PSB frequency encodings
15...0 bitmap of supported cycle threshold value encodings
ECX bits description
31...0 reserved
EDX bits description
31...0 reserved
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0015h
 
input EAX=0000_0015h get processor frequency information #1
output EAX bits description
31...0 denominator (TSC frequency = core crystal clock frequency * EBX/EAX)
EBX bits description
31...0 numerator (TSC frequency = core crystal clock frequency * EBX/EAX)
ECX bits description
31...0 core crystal clock frequency in Hz
EDX bits description
31...0 reserved
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0016h
 
input EAX=0000_0016h get processor frequency information #1
output EAX bits description
31...16 reserved
15...0 core base frequency in MHz
EBX bits description
31...16 reserved
15...0 core maximum frequency in MHz
ECX bits description
31...16 reserved
15...0 bus (reference) frequency in MHz
EDX bits description
31...0 reserved
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0017h
 
input EAX=0000_0017h get processor vendor attribute information #1
output
(main)
EAX bits description
31...0 max sub-level
EBX bits description
31...17 reserved
16 vendor ID uses industry standard enumeration scheme (0=no, 1=yes)
15...0 vendor ID
ECX bits description
31...0 project ID
EDX bits description
31...0 stepping ID
output
(1 of 3)
EAX bits description
31...0 UTF-8 encoded vendor brand string -- part 1/12
EBX bits description
31...0 UTF-8 encoded vendor brand string -- part 2/12
ECX bits description
31...0 UTF-8 encoded vendor brand string -- part 3/12
EDX bits description
31...0 UTF-8 encoded vendor brand string -- part 4/12
output
(2 of 3)
EAX bits description
31...0 UTF-8 encoded vendor brand string -- part 5/12
EBX bits description
31...0 UTF-8 encoded vendor brand string -- part 6/12
ECX bits description
31...0 UTF-8 encoded vendor brand string -- part 7/12
EDX bits description
31...0 UTF-8 encoded vendor brand string -- part 8/12
output
(3 of 3)
EAX bits description
31...0 UTF-8 encoded vendor brand string -- part 9/12
EBX bits description
31...0 UTF-8 encoded vendor brand string -- part 10/12
ECX bits description
31...0 UTF-8 encoded vendor brand string -- part 11/12
EDX bits description
31...0 UTF-8 encoded vendor brand string -- part 12/12
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_0018h
 
input EAX=0000_0018h get TLB information #1
ECX=xxxx_xxxxh sub-level to query (0...n as per EAX reported by sub-level 0)
output EAX bits description
31...0 sub-level=0: max sub-level
sub-level>0: reserved
EBX bits description
31...16 ways
15...11 reserved
10...8 partitioning (0: soft between logical processors sharing this TC)
7...4 reserved
3 1G
2 4M
1 2M
0 4K
ECX bits description
31...0 sets
EDX bits description
31...26 reserved
25...14 max. number of addressable IDs for logical processors sharing this TC - 1
13...9 reserved
8 fully associative?
7...5 TC level (starts at 1)
4...0 TC type (00000b=invalid, 00001b=data, 00010b=code, 00011b=unified)
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.

 
standard level 0000_001Bh
 
input EAX=0000_001Bh get PCONFIG information #1
ECX=xxxx_xxxxh sub-level to query (0=invalid, 1=target ID, 2...n=invalid -- see EAX bits 11...0 in output)
output
(invalid)
EAX bits description
31...12 reserved (0)
11...0 invalid (0)
EBX bits description
31...0 reserved (0)
ECX bits description
31...0 reserved (0)
EDX bits description
31...0 reserved (0)
output
(target ID)
EAX bits description
31...12 reserved (0)
11...0 target ID (1)
EBX bits description
31...0 target ID 1
ECX bits description
31...0 target ID 2
EDX bits description
31...0 target ID 3
note description
#1 This level is only enabled if MISC_ENABLE.LCMV is set to 0. This is due to a Windows NT bug.



 
Intel Xeon Phi level 2000_0000h
 
input EAX=2000_0000h get maximum supported level
output EAX=xxxx_xxxxh maximum supported level

 
Intel Xeon Phi level 2000_0001h
 
input EAX=2000_0001h get processor information
output EDX=xxxx_xxxxh feature flags description of indicated feature
bits 31...5 reserved
bit 4 (K1OM) MVEX (62h), ZMM0...31, K0...7, transform modifiers, VSIB512, disp8*N
bits 3...0 reserved



 
hypervisor level 4000_0000h
 
input EAX=4000_0000h get hypervisor information -- vendor #1
output EAX bits description
31...0 reserved
EBX-ECX-EDX bits description
Microsoft Hv Microsoft
VMwareVMware VMware
prl hyperv   Parallels
note description
#1 This level is only available if implemented by the hypervisor.

 
hypervisor level 4000_0001h
 
input EAX=4000_0001h get hypervisor information -- interface #1
output EAX bits description
31...0 interface signature (e.g. 31237648h = "Hv#1")
EBX bits description
31...0 reserved
ECX bits description
31...0 reserved
EDX bits description
31...0 reserved
note description
#1 This level is only available if implemented by the hypervisor.

 
hypervisor level 4000_0002h
 
input EAX=4000_0002h get hypervisor information -- version #1
output EAX bits description
31...0 build number
EBX bits description
31...16 major version
15...0 minor version
ECX bits description
31...0 service pack
EDX bits description
31...24 service branch
23...0 service number
note description
#1 This level is only available if implemented by the hypervisor.

 
hypervisor level 4000_0003h
 
input EAX=4000_0003h get hypervisor information -- features #1
output EAX bits description of features based on current privileges
31...13 reserved
12 debug MSRs
11 timer frequency MSRs
10 virtual guest idle state MSR
9 partition reference TSC MSR
8 access statistics pages MSRs
7 virtual system reset MSR
6 access virtual processor index MSR
5 hypercall MSRs
4 APIC access MSRs
3 synthetic timer MSRs
2 basic SyncIC MSRs
1 partition reference counter
0 VP runtime
EBX bits description of flags specified at creation time
31...14 reserved
13 ConfigureProfiler
12 CpuManagement
11 Debugging
10 reserved
9 reserved
8 AccessStats
7 ConnectPort
6 CreatePort
5 SignalEvents
4 PostMessages
3 AdjustMessageBuffers
2 AccessMemoryPool
1 AccessPartitionId
0 CreatePartition
ECX bits description of power management information
31...5 reserved
4 HPET is required to enter C3
3..0 maximum processor power state (0=C0, 1=C1, 2=C2, 3=C3)
EDX bits description of miscellaneous available features
31...12 reserved
11 debug MSRs
10 guest crash MSRs
9 inject synthetic MCs
8 determine timer frequencies
7 query NUMA distances
6 hypervisior sleep state
5 virtual guest idle state
4 hypercall input parameter block via XMM
3 physical CPU dynamic partitioning events
2 performance monitor
1 guest debugging
0 MWAIT
note description
#1 This level is only available if implemented by the hypervisor.

 
hypervisor level 4000_0004h
 
input EAX=4000_0004h get hypervisor information -- recommendations #1
output EAX bits description
31...10 reserved
9 deprecate AutoEOI
8 x2APIC MSRs
7 interrupt remapping
6 DMA remapping
5 relaxed timing -- disable watchdogs
4 MSR for system reset
3 MSRs for APIC EOI/ICR/TPR
2 hypercall for remote TLB flush
1 hypercall for local TLB flush
0 hypercall for address space switch
EBX bits description
31...0 recommended spinlock failure retries (FFFF_FFFFh = -1 = never)
ECX bits description
31...0 reserved
EDX bits description
31...0 reserved
note description
#1 This level is only available if implemented by the hypervisor.

 
hypervisor level 4000_0005h
 
input EAX=4000_0005h get hypervisor information -- limits #1
output EAX bits description
31...0 maximum supported virtual processors
EBX bits description
31...0 maximum supported logical processors
ECX bits description
31...0 maximum supported physical interrupt vectors for remapping
EDX bits description
31...0 reserved
note description
#1 This level is only available if implemented by the hypervisor.

 
hypervisor level 4000_0006h
 
input EAX=4000_0006h get hypervisor information -- hardware features detected and in use#1
output EAX bits description
31...7 reserved
6 memory patrol scrubber
5 interrupt remapping
4 DMA remapping
3 second level address translation
2 architectural performance counters
1 MSR bitmaps
0 APIC overlay assist
EBX bits description
31...0 reserved
ECX bits description
31...0 reserved
EDX bits description
31...0 reserved for future AMD-specific features
note description
#1 This level is only available if implemented by the hypervisor.



 
extended level 8000_0000h
 
input EAX=8000_0000h get maximum supported extended level and vendor ID string
output EAX=xxxx_xxxxh maximum supported extended level
EBX-EDX-ECX vendor ID string
AuthenticAMD AMD processor
reserved Cyrix processor
reserved Centaur processor
reserved Intel processor
TransmetaCPU Transmeta processor
reserved National Semiconductor processor (GX1, GXLV, GXm)
Geode by NSC National Semiconductor processor (GX2)

 
extended level 8000_0001h
 
input EAX=8000_0001h get processor family/model/stepping and features flags
output EAX=xxxx_xxxxh processor family/model/stepping
extended family
(add)
The extended processor family is encoded in bits 27...20.
00+F AMD K8 (Fam 08h)
Transmeta Efficeon
01+F AMD K8L (Fam 10h)
02+F AMD K8 (Fam 11h)
03+F AMD K8L (Fam 12h)
05+F AMD BC (Fam 14h)
06+F AMD BD (Fam 15h)
07+F AMD JG (Fam 16h)
08+F AMD ZN (Fam 17h)
extended model
(concat)
The extended processor model is encoded in bits 19...16.
AMD K8 0 130 nm Rev C
1 90 nm Rev D
2 90 nm Rev E
4 90 nm Rev F
5 90 nm Rev F
6 65 nm Rev G
7 65 nm Rev G
C 90 nm Rev F (in Fr3)
AMD Fam 15h 0 OR
1 TN/RL
3 KV/GV
6 CZ/BR
7 ST
AMD Fam 16h 0 KB/BV
3 ML
6 NL
AMD Fam 17h 0 ZP
1 RV
family The family is encoded in bits 11...8.
5 AMD K5
Geode
Centaur C2 and C3
Transmeta Crusoe
6 AMD K6
VIA C3
7 AMD K7
F refer to extended family
model The model is encoded in bits 7...4.
AMD K5 1 5k86 (PR120 or PR133)
2 5k86 (PR166)
3 5k86 (PR200)
AMD K6 6 K6 (0.30 µm)
7 K6 (0.25 µm)
8 K6-2
9 K6-III
D K6-2+ or K6-III+ (0.18 µm)
AMD K7 1 Athlon (0.25 µm)
2 Athlon (0.18 µm)
3 Duron (SF core)
4 Athlon (TB core)
6 Athlon (PM core)
7 Duron (MG core)
8 Athlon (TH/AP core)
A Athlon (BT core)
AMD K8 (Fam 08h) xx00b Socket 754 or Socket S1
xx01b Socket 940 or Socket F1207
xx10b if Rev CG, then see K8 erratum #108
xx11b Socket 939 or Socket AM2 or ASB1
01xxb SH (SC 1024 KB)
11xxb DH (SC 512 KB)
10xxb CH (SC 256 KB)
00xxb JH (DC 1024 KB)
10xxb BH (DC 512 KB)
AMD K8L (Fam 10h) 0 Rev A DR (0/1/2=A0/A1/A2)
2 Rev B DR (0/1/A/2/3=B0/B1/BA/B2/B3)
4/5/6 Rev C RB/BL/DA (0/1/2/3=C0/C1/C2/C3)
8/9 Rev D HY SCM/MCM (0/1=D0/D1)
A Rev E PH (0=E0)
AMD K8 (Fam 11h) 3 Rev B LG (1=B1)
AMD K8L (Fam 12h) 0 Rev A LN1 (0/1=A0/A1)
1 Rev B LN1 (0=B0)
2 Rev B LN2 (0=B0)
AMD BC (Fam 14h) 1 Rev B ON (0=B0)
2 Rev C ON (0=C0)
AMD BD (Fam 15h) 00 Rev A OR (0/1=A0/A1)
01 Rev B OR (0/1/2=B0/B1/B2)
02 Rev C OR (0=C0)
10 Rev A TN (1=A1)
13 Rev A RL (1=A1)
30 Rev A KV (0/1=A0/A1)
38 Rev A GV (1=A1)
60 Rev A CZ (0/1=A0/A1)
65 OSVW.ID5=0: Rev A CZ DDR4 (1=A1)
OSVW.ID5=1: Rev A BR (1=A1)
70 Rev A ST (0=A0)
AMD JG (Fam 16h) 00 Rev A KB (0/1=A0/A1)
04 Rev A BV (1=A1)
30 Rev A ML (0/1=A0/A1)
60 Rev A NL (1=A1)
AMD ZN (Fam 17h) 00 Rev A ZP (1=A1)
10 Rev A RV (1=A1)
Geode 4 GX1, GXLV, GXm
5 GX2
5 LX
Centaur 8 C2
9 C3
VIA C3 5 Cyrix M2 core
6 WinChip C5A core
7 WinChip C5B core (if stepping = 0...7)
7 WinChip C5C core (if stepping = 8...F)
8 WinChip C5N core (if stepping = 0...7)
9 WinChip C5XL core (if stepping = 0...7)
9 WinChip C5P core (if stepping = 8...F)
10 WinChip C5J core
Transmeta Crusoe 4 TM3x00 and TM5x00
Transmeta Efficeon 2 TM8000 (130 nm)
2 TM8000 (90 nm CMS 6.0)
3 TM8000 (90 nm CMS 6.1+)
stepping The stepping is encoded in bits 3...0.
The stepping values are processor-specific.
EBX=x000_xxxxh package type The package type is encoded in bits 31...28.
AMD K8L (Fam 10h) 0000b Socket F
0001b Socket AM
0010b Socket S1
0011b Socket G34
0100b Socket ASB2
0101b Socket C32
other reserved
AMD K8L (Fam 12h) 0001b Socket FS1 (µPGA)
0010b Socket FM1 (PGA)
AMD BC (Fam 14h) 0000b Socket FT1 (BGA)
AMD BD (Fam 15h)
extended model 0
0001b Socket AM3
0011b Socket G34
0101b Socket C32
AMD BD (Fam 15h)
extended model 1
0000b Socket FP2 (BGA)
0001b Socket FS1r2 (µPGA)
0010b Socket FM2 (PGA)
AMD BD (Fam 15h)
extended model 3
0000b Socket FP3 (BGA)
0001b Socket FM2r2 (µPGA)
AMD BD (Fam 15h)
extended model 6
0000b Socket FP4 (BGA)
0010b Socket AM4 (µPGA)
0011b Socket FM2r2 (µPGA)
AMD BD (Fam 15h)
extended model 7
0000b Socket FP4 (BGA)
0010b Socket AM4 (µPGA)
0100b Socket FT4 (BGA)
AMD JG (Fam 16h) extended model 0 0000b Socket FT3 (BGA)
0001b Socket FS1b
AMD JG (Fam 16h) extended model 3 0000b Socket FT3b (BGA)
0011b Socket FP4
AMD ZP (Fam 17h) extended model 0 0001b Socket SP4
0010b Socket AM4
0011b Socket SP4r2
0100b Socket SP3
0111b Socket SP3r2
AMD RV (Fam 17h) extended model 1 0000b Socket FP5
0010b Socket AM4
brand ID The brand ID is encoded in bits 15...0.
AMD K8 DDR1 ID = bits 15...6 = (value >> 6) & 3FFh
NN = bits 5...0 = value & 3Fh
 
for NN=1...63: XX = 22 + NN
for NN=1...30: YY = 38 + (2 * NN)
for NN=1...63: ZZ = 24 + NN
for NN=1...63: TT = 24 + NN
for NN=1...11: RR = 45 + (5 * NN)
for NN=1...31: EE = 9 + NN
00h engineering sample
04h AMD Athlon 64 XX00+
05h AMD Athlon 64 X2 XX00+
06h AMD Athlon 64 FX-ZZ
08h AMD Athlon 64 XX00+ mobile
09h AMD Athlon 64 XX00+ mobile, low power
0Ah AMD Turion 64 ML-XX
0Bh AMD Turion 64 MT-XX
0Ch AMD Opteron 1YY
0Dh AMD Opteron 1YY
0Eh AMD Opteron 1YY HE
0Fh AMD Opteron 1YY EE
10h AMD Opteron 2YY
11h AMD Opteron 2YY
12h AMD Opteron 2YY HE
13h AMD Opteron 2YY EE
14h AMD Opteron 8YY
15h AMD Opteron 8YY
16h AMD Opteron 8YY HE
17h AMD Opteron 8YY EE
18h AMD Athlon 64 EE00+
1Dh AMD Athlon XP-M XX00+ mobile, 32-bit
1Eh AMD Athlon XP-M XX00+ mobile, 32-bit, low power
20h AMD Athlon XP XX00+, 32-bit
21h AMD Sempron TT00+ mobile, 32-bit
23h AMD Sempron TT00+ mobile, 32-bit, low power
22h AMD Sempron TT00+, 32-bit
26h AMD Sempron TT00+, 64-bit
24h AMD Athlon 64 FX-ZZ
29h AMD Opteron DC 1RR SE
2Ah AMD Opteron DC 2RR SE
2Bh AMD Opteron DC 8RR SE
2Ch AMD Opteron DC 1RR
2Dh AMD Opteron DC 1RR
2Eh AMD Opteron DC 1RR HE
2Fh AMD Opteron DC 1RR EE
30h AMD Opteron DC 2RR
31h AMD Opteron DC 2RR
32h AMD Opteron DC 2RR HE
33h AMD Opteron DC 2RR EE
34h AMD Opteron DC 8RR
35h AMD Opteron DC 8RR
36h AMD Opteron DC 8RR HE
37h AMD Opteron DC 8RR EE
38h AMD Opteron DC 1RR
39h AMD Opteron DC 2RR
3Ah AMD Opteron DC 8RR
3Bh AMD Opteron DC 1RR
3Ch AMD Opteron DC 2RR
3Dh AMD Opteron DC 8RR
other unknown
AMD K8 DDR2 S = socket (see CPUID model bits 1...0)
CC = core count - 1 (see NB capabilities register)
ID = bits 13...9
PL = bits 8...6 and 14
NN = bits 15 and 5...0
 
RR = -1 + NN*
PP = 26 + NN
TT = 15 + (CC * 10) + NN
ZZ = 57 + NN**
YY = 29 + NN
* 000001b...000010b/100010b...111111b = 1...2/34...63 are reserved
** 100010b...111111b = 34...63 are reserved
S=any CC=? ID=00h PL=0h engineering sample
S=AM2 CC=0 ID=01h PL=5h AMD Sempron LE-1RR0
S=AM2 CC=0 ID=02h PL=6h AMD Athlon LE-1ZZ0
S=AM2 CC=0 ID=03h PL=6h AMD Athlon 1ZZ0B
S=AM2 CC=0 ID=04h PL=1h AMD Athlon 64 TT00+
S=AM2 CC=0 ID=04h PL=2h AMD Athlon 64 TT00+
S=AM2 CC=0 ID=04h PL=3h AMD Athlon 64 TT00+
S=AM2 CC=0 ID=04h PL=4h AMD Athlon 64 TT00+
S=AM2 CC=0 ID=04h PL=5h AMD Athlon 64 TT00+
S=AM2 CC=0 ID=04h PL=8h AMD Athlon 64 TT00+
S=AM2 CC=0 ID=05h PL=2h AMD Sempron RR50p
S=AM2 CC=0 ID=06h PL=4h AMD Sempron TT00+
S=AM2 CC=0 ID=06h PL=8h AMD Sempron TT00+
S=ASB1 CC=0 ID=07h PL=1h AMD Sempron TT0U
S=ASB1 CC=0 ID=07h PL=2h AMD Sempron TT0U
S=AM2 CC=0 ID=08h PL=2h AMD Athlon TT50e
S=AM2 CC=0 ID=08h PL=3h AMD Athlon TT50e
S=ASB1 CC=0 ID=09h PL=2h AMD Athlon Neo MV-TT
S=ASB1 CC=0 ID=0Ch PL=2h AMD Sempron 2RRU
S=AM2 CC=1 ID=01h PL=6h AMD Opteron DC 12RR HE
S=AM2 CC=1 ID=01h PL=Ah AMD Opteron DC 12RR
S=AM2 CC=1 ID=01h PL=Ch AMD Opteron DC 12RR SE
S=AM2 CC=1 ID=03h PL=3h AMD Athlon X2 BE-2TT0
S=AM2 CC=1 ID=04h PL=1h AMD Athlon 64 X2 TT00+
S=AM2 CC=1 ID=04h PL=2h AMD Athlon 64 X2 TT00+
S=AM2 CC=1 ID=04h PL=6h AMD Athlon 64 X2 TT00+
S=AM2 CC=1 ID=04h PL=8h AMD Athlon 64 X2 TT00+
S=AM2 CC=1 ID=04h PL=Ch AMD Athlon 64 X2 TT00+
S=AM2 CC=1 ID=05h PL=Ch AMD Athlon 64 FX-ZZ
S=AM2 CC=1 ID=06h PL=6h AMD Sempron RR00
S=AM2 CC=1 ID=07h PL=3h AMD Athlon TT50e
S=AM2 CC=1 ID=07h PL=6h AMD Athlon TT00B
S=AM2 CC=1 ID=07h PL=7h AMD Athlon TT00B
S=AM2 CC=1 ID=08h PL=3h AMD Athlon TT50B
S=AM2 CC=1 ID=09h PL=1h AMD Athlon X2 TT50e
S=AM2 CC=1 ID=0Ah PL=1h AMD Athlon Neo X2 TT50e
S=AM2 CC=1 ID=0Ah PL=2h AMD Athlon Neo X2 TT50e
S=ASB1 CC=1 ID=0Bh PL=0h AMD Turion Neo X2 L6RR
S=ASB1 CC=1 ID=0Ch PL=0h AMD Athlon Neo X2 L3RR
S=S1 CC=0 ID=01h PL=2h AMD Athlon 64 TT00+
S=S1 CC=0 ID=02h PL=Ch AMD Turion 64 MK-YY
S=S1 CC=0 ID=03h PL=1h AMD Sempron TT00+ mobile
S=S1 CC=0 ID=03h PL=6h AMD Sempron PP00+ mobile
S=S1 CC=0 ID=03h PL=Ch AMD Sempron PP00+ mobile
S=S1 CC=0 ID=04h PL=2h AMD Sempron TT00+
S=S1 CC=0 ID=06h PL=4h AMD Athlon TF-TT
S=S1 CC=0 ID=06h PL=6h AMD Athlon TF-TT
S=S1 CC=0 ID=06h PL=Ch AMD Athlon TF-TT
S=S1 CC=0 ID=07h PL=3h AMD Athlon L1RR
S=S1 CC=1 ID=01h PL=Ch AMD Sempron TJ-YY
S=S1 CC=1 ID=02h PL=Ch AMD Turion 64 X2 TL-YY
S=S1 CC=1 ID=03h PL=4h AMD Athlon 64 X2 TK-YY
S=S1 CC=1 ID=03h PL=Ch AMD Athlon 64 X2 TK-YY
S=S1 CC=1 ID=05h PL=4h AMD Athlon 64 X2 TT00+
S=S1 CC=1 ID=06h PL=2h AMD Athlon X2 L3RR
S=S1 CC=1 ID=07h PL=4h AMD Turion X2 L5RR
S=F1207 CC=0 ID=01h PL=2h AMD Opteron 22RR EE
S=F1207 CC=1 ID=00h PL=2h AMD Opteron DC 12RR EE
S=F1207 CC=1 ID=00h PL=6h AMD Opteron DC 12RR HE
S=F1207 CC=1 ID=01h PL=2h AMD Opteron DC 22RR EE
S=F1207 CC=1 ID=01h PL=6h AMD Opteron DC 22RR HE
S=F1207 CC=1 ID=01h PL=Ah AMD Opteron DC 22RR
S=F1207 CC=1 ID=01h PL=Ch AMD Opteron DC 22RR SE
S=F1207 CC=1 ID=04h PL=2h AMD Opteron DC 82RR EE
S=F1207 CC=1 ID=04h PL=6h AMD Opteron DC 82RR HE
S=F1207 CC=1 ID=04h PL=Ah AMD Opteron DC 82RR
S=F1207 CC=1 ID=04h PL=Ch AMD Opteron DC 82RR SE
S=F1207 CC=1 ID=06h PL=Eh AMD Athlon 64 FX-ZZ (Fr3)
AMD K8L (Fam 10h) PT = package type (se EBX bits 31...28)
NC = number of cores (see level 8000_0008h)
 
PG = bit 15
S1 = bits 14...11
M = bits 10...4
S2 = bits 3...0
PT=0 PG=0 NC=3 S1=0h QC AMD Opteron Processor 83
PT=0 PG=0 NC=3 S1=1h QC AMD Opteron Processor 23
PT=0 PG=0 NC=5 S1=0h 6C AMD Opteron Processor 84
PT=0 PG=0 NC=5 S1=1h 6C AMD Opteron Processor 24
PT=0 PG=1 NC=3 S1=1h Embedded AMD Opteron Processor_
PT=0 PG=1 NC=5 S1=1h Embedded AMD Opteron Processor_
PT=0 PG=0 NC=3 S2=Ah  SE
PT=0 PG=0 NC=3 S2=Bh  HE
PT=0 PG=0 NC=3 S2=Ch  EE
PT=0 PG=0 NC=5 S2=0h  SE
PT=0 PG=0 NC=5 S2=1h  HE
PT=0 PG=0 NC=5 S2=2h  EE
PT=0 PG=0 NC=x S2=Fh (empty)
PT=0 PG=1 NC=3 S2=1h GF HE
PT=0 PG=1 NC=3 S2=2h HF HE
PT=0 PG=1 NC=3 S2=3h VS
PT=0 PG=1 NC=3 S2=4h QS HE
PT=0 PG=1 NC=3 S2=5h NP HE
PT=0 PG=1 NC=3 S2=6h KH HE
PT=0 PG=1 NC=3 S2=7h KS EE
PT=0 PG=1 NC=5 S2=1h QS
PT=0 PG=1 NC=5 S2=2h KS HE
PT=1 PG=0 NC=0 S1=2h AMD Sempron 1
PT=1 PG=0 NC=0 S1=3h AMD Athlon II 1
PT=1 PG=0 NC=1 S1=1h AMD Athlon_
PT=1 PG=0 NC=1 S1=3h AMD Athlon II X2 2
PT=1 PG=0 NC=1 S1=4h AMD Athlon II X2 B
PT=1 PG=0 NC=1 S1=5h AMD Athlon II X2_
PT=1 PG=0 NC=1 S1=7h AMD Phenom II X2 5
PT=1 PG=0 NC=1 S1=Ah AMD Phenom II X2_
PT=1 PG=0 NC=1 S1=Bh AMD Phenom II X2 B
PT=1 PG=0 NC=1 S1=Ch AMD Sempron X2 1
PT=1 PG=0 NC=2 S1=0h AMD Phenom_
PT=1 PG=0 NC=2 S1=3h AMD Phenom II X3 B
PT=1 PG=0 NC=2 S1=4h AMD Phenom II X3_
PT=1 PG=0 NC=2 S1=7h AMD Athlon II X3 4
PT=1 PG=0 NC=2 S1=8h AMD Phenom II X3 7
PT=1 PG=0 NC=2 S1=Ah AMD Athlon II X3_
PT=1 PG=0 NC=3 S1=0h QC AMD Opteron Processor 13
PT=1 PG=0 NC=3 S1=2h AMD Phenom_
PT=1 PG=0 NC=3 S1=3h AMD Phenom II X4 9
PT=1 PG=0 NC=3 S1=4h AMD Phenom II X4 8
PT=1 PG=0 NC=3 S1=7h AMD Phenom II X4 B
PT=1 PG=0 NC=3 S1=8h AMD Phenom II X4_
PT=1 PG=0 NC=3 S1=Ah AMD Athlon II X4 6
PT=1 PG=0 NC=3 S1=Fh AMD Athlon II X4_
PT=1 PG=0 NC=5 S1=0h AMD Phenom II X6 1
PT=1 PG=1 NC=1 S1=1h AMD Athlon II XLT V
PT=1 PG=1 NC=1 S1=2h AMD Athlon II XL V
PT=1 PG=1 NC=3 S1=1h AMD Phenom II XLT Q
PT=1 PG=1 NC=3 S1=2h AMD Phenom II X4 9
PT=1 PG=1 NC=3 S1=3h AMD Phenom II X4 8
PT=1 PG=1 NC=3 S1=4h AMD Phenom II X4 6
PT=1 PG=0 NC=0 S2=Ah  Processor
PT=1 PG=0 NC=0 S2=Bh u Processor
PT=1 PG=0 NC=1 S2=3h 50 DC Processor
PT=1 PG=0 NC=1 S2=6h  Processor
PT=1 PG=0 NC=1 S2=7h e Processor
PT=1 PG=0 NC=1 S2=9h 0 Processor
PT=1 PG=0 NC=1 S2=Ah 0e Processor
PT=1 PG=0 NC=1 S2=Bh u Processor
PT=1 PG=0 NC=2 S2=0h 00 3C Processor
PT=1 PG=0 NC=2 S2=1h 00e 3C Processor
PT=1 PG=0 NC=2 S2=2h 00B 3C Processor
PT=1 PG=0 NC=2 S2=3h 50 3C Processor
PT=1 PG=0 NC=2 S2=4h 50e 3C Processor
PT=1 PG=0 NC=2 S2=5h 50B 3C Processor
PT=1 PG=0 NC=2 S2=6h  Processor
PT=1 PG=0 NC=2 S2=7h e Processor
PT=1 PG=0 NC=2 S2=9h 0e Processor
PT=1 PG=0 NC=2 S2=Ah 0 Processor
PT=1 PG=0 NC=3 S2=0h 00 QC Processor
PT=1 PG=0 NC=3 S2=1h 00e QC Processor
PT=1 PG=0 NC=3 S2=2h 00B QC Processor
PT=1 PG=0 NC=3 S2=3h 50 QC Processor
PT=1 PG=0 NC=3 S2=4h 50e QC Processor
PT=1 PG=0 NC=3 S2=5h 50B QC Processor
PT=1 PG=0 NC=3 S2=6h  Processor
PT=1 PG=0 NC=3 S2=7h e Processor
PT=1 PG=0 NC=3 S2=9h 0e Processor
PT=1 PG=0 NC=3 S2=Eh 0 Processor
PT=1 PG=0 NC=5 S2=0h 5T Processor
PT=1 PG=0 NC=5 S2=1h 0T Processor
PT=1 PG=0 NC=x S2=Fh (empty)
PT=1 PG=1 NC=1 S2=1h L Processor
PT=1 PG=1 NC=1 S2=2h C Processor
PT=1 PG=1 NC=3 S2=1h L Processor
PT=1 PG=1 NC=3 S2=4h T Processor
PT=2 PG=0 NC=0 S1=0h AMD Sempron M1
PT=2 PG=0 NC=0 S1=1h AMD V
PT=2 PG=0 NC=1 S1=0h AMD Turion II Ultra DC Mobile M6
PT=2 PG=0 NC=1 S1=1h AMD Turion II DC Mobile M5
PT=2 PG=0 NC=1 S1=2h AMD Athlon II DC M3
PT=2 PG=0 NC=1 S1=3h AMD Turion II P
PT=2 PG=0 NC=1 S1=4h AMD Athlon II P
PT=2 PG=0 NC=1 S1=5h AMD Phenom II X
PT=2 PG=0 NC=1 S1=6h AMD Phenom II N
PT=2 PG=0 NC=1 S1=7h AMD Turion II N
PT=2 PG=0 NC=1 S1=8h AMD Athlon II N
PT=2 PG=0 NC=1 S1=9h AMD Phenom II P
PT=2 PG=0 NC=2 S1=2h AMD Phenom II P
PT=2 PG=0 NC=2 S1=3h AMD Phenom II N
PT=2 PG=0 NC=2 S1=4h AMD Phenom II X
PT=2 PG=0 NC=3 S1=1h AMD Phenom II P
PT=2 PG=0 NC=3 S1=2h AMD Phenom II X
PT=2 PG=0 NC=3 S1=3h AMD Phenom II N
PT=2 PG=0 NC=0 S2=1h 0 Processor
PT=2 PG=0 NC=1 S2=2h 0 DC Processor
PT=2 PG=0 NC=2 S2=2h 0 3C Processor
PT=2 PG=0 NC=3 S2=1h 0 QC Processor
PT=2 PG=0 NC=x S2=Fh (empty)
PT=3 PG=0 NC=7 S1=0h AMD Opteron Processor 61
PT=3 PG=0 NC=B S1=0h AMD Opteron Processor 61
PT=3 PG=1 NC=7 S1=1h Embedded AMD Opteron Processor_
PT=3 PG=0 NC=7 S2=0h  HE
PT=3 PG=0 NC=7 S2=1h  SE
PT=3 PG=0 NC=B S2=0h  HE
PT=3 PG=0 NC=B S2=1h  SE
PT=3 PG=0 NC=x S2=Fh (empty)
PT=3 PG=1 NC=7 S2=1h QS
PT=3 PG=1 NC=7 S2=2h KS
PT=4 PG=0 NC=0 S1=1b AMD Athlon II Neo K
PT=4 PG=0 NC=0 S1=2b AMD V
PT=4 PG=0 NC=0 S1=3b AMD Athlon II Neo R
PT=4 PG=0 NC=1 S1=1b AMD Turion II Neo K
PT=4 PG=0 NC=1 S1=2b AMD Athlon II Neo K
PT=4 PG=0 NC=1 S1=3b AMD V
PT=4 PG=0 NC=1 S1=4b AMD Turion II Neo N
PT=4 PG=0 NC=1 S1=5b AMD Athlon II Neo N
PT=4 PG=0 NC=0 S2=1h 5 Processor
PT=4 PG=0 NC=0 S2=2h L Processor
PT=4 PG=0 NC=1 S2=1h 5 DC Processor
PT=4 PG=0 NC=1 S2=2h L DC Processor
PT=4 PG=0 NC=1 S2=4h H DC Processor
PT=4 PG=0 NC=x S2=Fh (empty)
PT=5 PG=0 NC=3 S1=0h AMD Opteron Processor 41
PT=5 PG=0 NC=5 S1=0h AMD Opteron Processor 41
PT=5 PG=1 NC=3 S1=1h Embedded AMD Opteron Processor_
PT=5 PG=1 NC=5 S1=1h Embedded AMD Opteron Processor_
PT=5 PG=0 NC=3 S2=0h  HE
PT=5 PG=0 NC=3 S2=1h  EE
PT=5 PG=0 NC=5 S2=0h  HE
PT=5 PG=0 NC=5 S2=1h  EE
PT=5 PG=0 NC=x S2=Fh (empty)
PT=5 PG=1 NC=3 S2=1h QS HE
PT=5 PG=1 NC=3 S2=2h LE HE
PT=5 PG=1 NC=3 S2=3h CL EE
PT=5 PG=1 NC=5 S2=1h KX HE
PT=5 PG=1 NC=5 S2=2h GL EE
AMD K8L (Fam 11h) PT = package type (se EBX bits 31...28)
NC = number of cores (see level 8000_0008h)
 
PG = bit 15
S1 = bits 14...11
M = bits 10...4
S2 = bits 3...0
PT=2 PG=0 NC=0 S1=0h AMD Sempron SI-
PT=2 PG=0 NC=0 S1=1h AMD Athlon QI-
PT=2 PG=0 NC=1 S1=0h AMD Turion X2 Ultra Dual-Core Mobile ZM-
PT=2 PG=0 NC=1 S1=1h AMD Turion X2 Dual-Core Mobile RM-
PT=2 PG=0 NC=1 S1=2h AMD Athlon X2 Dual-Core QL-
PT=2 PG=0 NC=1 S1=3h AMD Sempron X2 Dual-Core NI-
PT=2 PG=0 NC=0 S2=0h (empty)
PT=2 PG=0 NC=1 S2=0h (empty)
PT=2 PG=0 NC=x S2=Fh (empty)
AMD K8L (Fam 12h) PT = package type (se EBX bits 31...28)
NC = number of cores (see level 8000_0008h)
 
PG = bit 15
S1 = bits 14...11
M = bits 10...4
S2 = bits 3...0
PT=1 PG=0 NC=1 S1=3h AMD A4-33
PT=1 PG=0 NC=1 S1=5h AMD E2-30
PT=1 PG=0 NC=4 S1=1h AMD A8-35
PT=1 PG=0 NC=4 S1=3h AMD A6-34
PT=1 PG=0 NC=1 S2=1h M APU with Radeon HD Graphics
PT=1 PG=0 NC=1 S2=2h MX APU with Radeon HD Graphics
PT=1 PG=0 NC=3 S2=1h M APU with Radeon HD Graphics
PT=1 PG=0 NC=3 S2=2h MX APU with Radeon HD Graphics
PT=1 PG=0 NC=x S2=Fh (empty)
PT=2 PG=0 NC=1 S1=1h AMD A4-33
PT=2 PG=0 NC=1 S1=2h AMD E2-32
PT=2 PG=0 NC=1 S1=4h AMD Athlon II X2 2
PT=2 PG=0 NC=1 S1=5h AMD A4-34
PT=2 PG=0 NC=1 S1=Ch AMD Sempron X2 1
PT=2 PG=0 NC=2 S1=5h AMD A6-35
PT=2 PG=0 NC=3 S1=5h AMD A8-38
PT=2 PG=0 NC=3 S1=6h AMD A6-36
PT=2 PG=0 NC=3 S1=Dh AMD Athlon II X4 6
PT=2 PG=0 NC=1 S1=1h  APU with Radeon HD Graphics
PT=2 PG=0 NC=1 S1=2h  Dual-Core Processor
PT=2 PG=0 NC=2 S1=1h  APU with Radeon HD Graphics
PT=2 PG=0 NC=3 S1=1h  APU with Radeon HD Graphics
PT=2 PG=0 NC=3 S1=3h  Quad-Core Processor
PT=2 PG=0 NC=x S1=Fh (empty)
AMD BC (Fam 14h) PT = package type (se EBX bits 31...28)
NC = number of cores (see level 8000_0008h)
 
PG = bit 15
S1 = bits 14...11
M = bits 10...4
S2 = bits 3...0
PT=0 PG=0 NC=0 S1=1h AMD C- (client)
PT=0 PG=0 NC=0 S1=2h AMD E- (client)
PT=0 PG=0 NC=0 S1=4h AMD G-T- (embedded)
PT=0 PG=0 NC=1 S1=1h AMD C- (client)
PT=0 PG=0 NC=1 S1=2h AMD E- (client)
PT=0 PG=0 NC=1 S1=3h AMD Z- (tablet)
PT=0 PG=0 NC=1 S1=4h AMD G-T- (embedded)
PT=0 PG=0 NC=1 S1=5h AMD E1-1- (client)
PT=0 PG=0 NC=1 S1=6h AMD E2-1- (client)
PT=0 PG=0 NC=1 S1=7h AMD E2-2- (client)
PT=0 PG=0 NC=0 S2=1h  Processor
PT=0 PG=0 NC=0 S2=2h 0 Processor
PT=0 PG=0 NC=0 S2=3h 5 Processor
PT=0 PG=0 NC=0 S2=4h 0x Processor
PT=0 PG=0 NC=0 S2=5h 5x Processor
PT=0 PG=0 NC=0 S2=6h x Processor
PT=0 PG=0 NC=0 S2=7h L Processor
PT=0 PG=0 NC=0 S2=8h N Processor
PT=0 PG=0 NC=0 S2=9h R Processor
PT=0 PG=0 NC=0 S2=Ah 0 APU with Radeon HD Graphics
PT=0 PG=0 NC=0 S2=Bh 5 APU with Radeon HD Graphics
PT=0 PG=0 NC=0 S2=Ch  APU with Radeon HD Graphics
PT=0 PG=0 NC=0 S2=Dh 0D APU with Radeon HD Graphics
PT=0 PG=0 NC=1 S2=1h  Processor
PT=0 PG=0 NC=1 S2=2h 0 Processor
PT=0 PG=0 NC=1 S2=3h 5 Processor
PT=0 PG=0 NC=1 S2=4h 0x Processor
PT=0 PG=0 NC=1 S2=5h 5x Processor
PT=0 PG=0 NC=1 S2=6h x Processor
PT=0 PG=0 NC=1 S2=7h L Processor
PT=0 PG=0 NC=1 S2=8h N Processor
PT=0 PG=0 NC=1 S2=9h 0 APU with Radeon HD Graphics
PT=0 PG=0 NC=1 S2=Ah 5 APU with Radeon HD Graphics
PT=0 PG=0 NC=1 S2=Bh  APU with Radeon HD Graphics
PT=0 PG=0 NC=1 S2=Ch E Processor
PT=0 PG=0 NC=1 S2=Dh 0D APU with Radeon HD Graphics
PT=0 PG=0 NC=x S2=Fh (empty)
ECX=xxxx_xxxxh feature flags description of indicated feature
bits 31 reserved
bits 30 reserved
bits 29 (MONX) MONITORX/MWAITX
bit 28 (PCX_L2I / L3) L2I perf counter extensions (MSRs C001_023[0...7]h) (Fam 15h/16h)
L3 perf counter extensions (MSRs C001_023[0...B]h) (Fam 17h)
bit 27 (PERFTSC) performance TSC (MSR C001_0280h)
bit 26 (DBX) data breakpoint extensions (MSRs C001_1027h and C001_10[19...1B]h)
bit 25 reserved
bit 24 (PCX_NB) NB perf counter extensions (MSRs C001_024[0...7]h)
bit 23 (PCX_CORE) core perf counter extensions (MSRs C001_020[0...B]h)
bit 22 (TOPX) topology extensions: extended levels 8000_001Dh and 8000_001Eh
bit 21 (TBM) TBM
bit 20 reserved
bit 19 (NODEID) node ID: MSR C001_100Ch
bit 18 reserved
bit 17 (TCE) translation cache extension, EFER.TCE
bit 16 (FMA4) FMA4
bit 15 (LWP) LWP
bit 14 reserved
bit 13 (WDT) watchdog timer
bit 12 (SKINIT) SKINIT, STGI, DEV
bit 11 (XOP) XOP (was also used going to be used for SSE5A)
bit 10 (IBS) instruction based sampling
bit 9 (OSVW) OS-visible workaround
bit 8 (3DNow!P) PREFETCH and PREFETCHW (K8 Rev G and K8L+)
bit 7 (MSSE) misaligned SSE, MXCSR.MM
bit 6 (SSE4A) SSE4A
bit 5 (LZCNT) LZCNT
bit 4 (CR8D) MOV from/to CR8D by means of LOCK-prefixed MOV from/to CR0
bit 3 (EAS) extended APIC space (APIC_VER.EAS, EXT_APIC_FEAT, etc.)
bit 2 (SVM) EFER.SVME
VMRUN, VMMCALL, VMLOAD and VMSAVE, STGI and CLGI,
SKINIT, INVLPGA
bit 1 (CMP) HTT=1 indicates HTT (0) or CMP (1)
bit 0 (AHF64) LAHF and SAHF in PM64
EDX=xxxx_xxxxh feature flags description of indicated feature
bit 31 (3DNow!) 3DNow!
bit 30 (3DNow!+) extended 3DNow!
bit 29 (LM) AMD64/EM64T, Long Mode
bit 28 reserved
bit 27 (TSCP) TSC, TSC_AUX, RDTSCP, CR4.TSD
bit 26 (PG1G) PML3E.PS
bit 25 (FFXSR) EFER.FFXSR
bit 24 (MMX+)
bit 24 (FXSR)
Cyrix specific: extended MMX
AMD K7: FXSAVE/FXRSTOR, CR4.OSFXSR
bit 23 (MMX) MMX
bit 22 (MMX+) AMD specific: MMX-SSE and SSE-MEM
bit 21 reserved
bit 20 (NX) EFER.NXE, P?E.NX, #PF(1xxxx)
bit 19 (MP) MP-capable #3
bit 18 reserved
bit 17 (PSE36) 4 MB PDE bits 16...13, CR4.PSE
bit 16 (FCMOV)
bit 16 (PAT)
FCMOVcc/F(U)COMI(P) (implies FPU=1)
AMD K7: PAT MSR, PDE/PTE.PAT
bit 15 (CMOV) CMOVcc
bit 14 (MCA) MCG_*/MCn_* MSRs, CR4.MCE, #MC
bit 13 (PGE) PDE/PTE.G, CR4.PGE
bit 12 (MTRR) MTRR* MSRs
bit 11 (SEP) SYSCALL/SYSRET, EFER/STAR MSRs #1
bit 10 reserved #1
bit 9 (APIC) APIC #2
bit 8 (CX8) CMPXCHG8B
bit 7 (MCE) MCAR/MCTR MSRs, CR4.MCE, #MC
bit 6 (PAE) 64-bit PDPTE/PDE/PTEs, CR4.PAE
bit 5 (MSR) MSRs, RDMSR/WRMSR
bit 4 (TSC) TSC, RDTSC, CR4.TSD (doesn't imply MSR=1)
bit 3 (PSE) PDE.PS, PDE/PTE.res, CR4.PSE, #PF(1xxxb)
bit 2 (DE) CR4.DE, DR7.RW=10b, #UD on MOV from/to DR4/5
bit 1 (VME) CR4.VME/PVI, EFLAGS.VIP/VIF, TSS32.IRB
bit 0 (FPU) FPU
notes descriptions
#1 The AMD K6 processor, model 6, uses bit 10 to indicate SEP. Beginning with model 7, bit 11 is used instead.
Intel processors only report SEP when CPUID is executed in PM64.
#2 If the APIC has been disabled, then the APIC feature flag will read as 0.
#3 AMD K7 processors prior to CPUID=0662h may report 0 even if they are MP-capable.

 
extended levels 8000_0002h, 8000_0003h, and 8000_0004h
 
input EAX=8000_0002h get processor name string (part 1)
EAX=8000_0003h get processor name string (part 2)
EAX=8000_0004h get processor name string (part 3)
output EAX
EBX
ECX
EDX
processor name string #1
AMD K5 AMD-K5(tm) Processor
AMD K6 AMD-K6tm w/ multimedia extensions
AMD K6-2 AMD-K6(tm) 3D processor
AMD-K6(tm)-2 Processor
AMD K6-III AMD-K6(tm) 3D+ Processor
AMD-K6(tm)-III Processor
AMD K6-2+ AMD-K6(tm)-III Processor (?)
AMD K6-III+ AMD-K6(tm)-III Processor (?)
AMD K7 AMD-K7(tm) Processor (model 1)
AMD Athlon(tm) Processor (model 2)
newer models: programmable
AMD K8 programmable via MSRs C001_0030h...C001_0035h, default is 48x 0
AMD K8L programmable via MSRs C001_0030h...C001_0035h, default is 48x 0
AMD BC programmable via MSRs C001_0030h...C001_0035h, default is 48x 0
Geode GX2 Geode(TM) Integrated Processor by National Semi
programmable via MSRs 0000_300Ah...0000_300Fh
Geode LX Geode(TM) Integrated Processor by AMD PCS
programmable via MSRs 0000_300Ah...0000_300Fh
Centaur C2 #2 IDT WinChip 2
IDT WinChip 2-3D
Centaur C3 IDT WinChip 3
VIA C3 CYRIX III(tm) (?)
VIA Samuel (?)
VIA Ezra (?)
VIA C3 Nehemiah (?)
Intel PM #3 Intel(R) Pentium(R) M processor xxxxMHz
Intel P4 #3 Intel(R) Pentium(R) 4 CPU xxxxMHz
Intel Core 2 Intel(R) Xeon(R) CPU            xxxx  @ x.xxGHz
Transmeta Crusoe Transmeta(tm) Crusoe(tm) Processor TMxxxx
Transmeta Efficeon Transmeta Efficeon(tm) Processor TM8000
notes descriptions
#1 Unused characters at the end of the string are filled with 00h.
#2 The string depends on whether 3DNow! is disabled or enabled.
#3 The string is right-justified, with leading whitespaces.

 
extended level 8000_0005h
 
input EAX=8000_0005h get L1 cache and L1 TLB configuration descriptors #1
output EAX 4/2 MB L1 TLB configuration descriptor
bits description
31...24 data TLB associativity (FFh=full)
23...16 data TLB entries
15...8 code TLB associativity (FFh=full)
7...0 code TLB entries
EBX 4 KB L1 TLB configuration descriptor #2
bits description
31...24 data TLB associativity (FFh=full)
23...16 data TLB entries
15...8 code TLB associativity (FFh=full)
7...0 code TLB entries
ECX data L1 cache configuration descriptor
bits description
31...24 data L1 cache size in KBs
23...16 data L1 cache associativity (FFh=full)
15...8 data L1 cache lines per tag
7...0 data L1 cache line size in bytes
EDX code L1 cache configuration descriptor
bits description
31...24 code L1 cache size in KBs
23...16 code L1 cache associativity (FFh=full)
15...8 code L1 cache lines per tag
7...0 code L1 cache line size in bytes
notes descriptions
#1 Cyrix processors return CPUID level 0000_0002h-like descriptors instead. (Though the NS Geode GX2 does not.)
#2 While Transmeta Crusoe processors have 256 entries, the CPUID definition constrains them to reporting only 255.
For compatibility reasons they report their unified TLB twice: once for the code TLB, and once for the data TLB.

 
extended level 8000_0006h
 
input EAX=8000_0006h get L2/L3 cache and L2 TLB configuration descriptors
output EAX 4/2 MB L2 TLB configuration descriptor #1
bits description
31...28 data TLB associativity #2
27...16 data TLB entries
15...12 code TLB associativity #2
11...0 code TLB entries
EBX 4 KB L2 TLB configuration descriptor #1
bits description
31...28 data TLB associativity #2
27...16 data TLB entries
15...12 code TLB associativity #2
11...0 code TLB entries
ECX unified L2 cache configuration descriptor #3
bits description
31...16 #5 unified L2 cache size in KBs #4
15...12 #5 unified L2 cache associativity #2, #6
11...8 #5 unified L2 cache lines per tag
7...0 unified L2 cache line size in bytes
EDX unified L3 cache configuration descriptor
bits description
31...18 unified L3 cache size in 512 KB chunks
17...16 reserved
15...12 unified L3 cache associativity #2
11...8 unified L3 cache lines per tag
7...0 unified L3 cache line size in bytes
notes descriptions
#1 A unified L2 TLB is indicated by a value of 0000h in the upper 16 bits.
#2 0000b=disabled,
0001b=1-way, 0010b=2-way, 0011b=3-way, 0100b=4-way, 0101b=6-way, 0110b=8-way, 1000b=16-way,
1001b=see level 8000_001Dh instead,
1010b=32-way, 1011b=48-way, 1100b=64-way, 1101b=96-way, 1110b=128-way, 1111b=full
#3 The AMD K7 processor's L2 cache must be configured prior to relying upon this information, if the model is 1 or 2.
#4 AMD K7 processors with CPUID=0630h (Duron) inadvertently report 1 KB instead of 64 KB.
#5 VIA C3 processors with CPUID=0670...068Fh (C5B/C5C) inadvertently use bits 31...24, 23...16, and 15...8 instead.
#6 VIA C3 processors with CPUID=069x (C5XL) and stepping 1 inadvertently report 0 ways instead of 16 ways.

 
extended level 8000_0007h
 
input EAX=8000_0007h get capabilities
output EAX processor feedback capabilities
bits description
31...16 maximum wrap time in ms
15...8 version (01h)
7...0 number of monitors (MSR C001_008[01]h etc.)
EBX RAS capabilities
bits description
31...5 reserved
4 reserved
3 (SCMCA) scalable MCA (more banks, MCA ext regs, DOER/SEER roles)
2 (HWA) hardware assert (MSR C001_10[DF...C0]h)
1 (SUCCOR) software uncorrectable error containment and recovery
0 (MCAOVR) MCA overflow recovery
ECX advanced power monitoring interface
bits description
31...0
(CmpUnitPwrSampleTimeRatio)
ratio of power accumulator sample period to GTSC counter period
EDX enhanced power management capabilities
bits description
31...15 reserved
14 (RAPL) running average power limit
13 (CSB) connected standby
12 (PA) processor accumulator (MSR C001_007Ah)
11 (PFI) processor feedback interface (see EAX)
10 (EFRO) read-only MPERF/APERF (MSR C000_00E[78]h)
9 (CPB) core performance boost
8 (ITSC) invariant TSC
7 (HWPS) hardware P-state support
6 (MUL100) 100 MHz multiplier steps
5 (STC) software thermal control
4 (TM) thermal monitoring
3 (TTP) thermal trip
2 (VID) voltage ID control
1 (FID) frequency ID control
0 (TS) temperature sensor

 
extended level 8000_0008h
 
input EAX=8000_0008h get miscellaneous information
output EAX address size information
bits description
31...24 reserved
23...16 guest physical address bits (if 0, then see bits 7...0)
15...8 virtual address bits
7...0 physical address bits
EBX feature flags
bits description
31...19 reserved
18 (IBRS_PREF) IBRS preferred
17 (STIBP_ALL) STIBP always on mode
16 (IBRS_ALL) IBRS always on mode
15 (STIBP) SPEC_CTRL.STIBP
14 (IBRS) SPEC_CTRL.IBRS
13 reserved
12 (IBPB) PRED_CMD.IBPB
11...10 reserved
9 (WBNOINVD) WBNOINVD
8 (MCOMMIT) EFER.MCOMMIT, MCOMMIT
7...5 reserved
4 (RDPRU) CR4.TSD, RDPRU
3 reserved
2 (ASRFPEP) always save/restore FP error pointers
1 (IRPERF) read-only IRPERF (MSR C000_00E9h)
0 (CLZERO) CLZERO
ECX processor count information
bits description
31...18 reserved
17...16 performance TSC size (00b=40-bit, 01b=48-bit, 10b=56-bit, 11b=64-bit)
15...12 number of LSBs in APIC ID that indicate core ID
11...8 reserved
7...0 cores per die - 1
EDX miscellaneous information
bits description
31...16 maximum valid ECX value for RDPRU (0=MPERF, 1=APERF)
15...0 reserved

 
extended level 8000_000Ah
 
input EAX=8000_000Ah get SVM information
output EAX revision and presence information
bits description
31...9 reserved
8 hypervisor present (and intercepting this bit, to advertise its presence)
7...0 revision, starting at 1
EBX address space information
bits description
31...0 number of ASIDs
EDX sub-feature information
bits description
31...17 reserved
16 (VGIF) virtualized GIF
15 (VLS) virtualized VMLOAD/VMSAVE
14 reserved
13 (AVIC) AVIC
12 (PAUSEFILTERTHR.) PAUSE filter threshold
11 reserved
10 (PAUSEFILTER) PAUSE intercept filter
9 (SSSE3SSE5ADIS) SSSE3 and SSE5A disable
8 reserved
7 (DECODEASSISTS) decode assists
6 (FLUSHBYASID) flush by ASID
5 (VMCBCLEAN) VMCB clean bits
4 (TSCRATEMSR) MSR-based TSC rate control
3 (NRIPS) NRIP save on #VMEXIT
2 (SVML) SVM lock
1 (LBRV) LBR virtualization
0 (NP) nested paging

 
extended level 8000_0019h
 
input EAX=8000_0019h get TLB configuration descriptors
output EAX 1 GB L1 TLB configuration descriptor #1
bits description
31...28 data TLB associativity #2
27...16 data TLB entries
15...12 code TLB associativity #2
11...0 code TLB entries
EBX 1 GB L2 TLB configuration descriptor #1
bits description
31...28 data TLB associativity #2
27...16 data TLB entries
15...12 code TLB associativity #2
11...0 code TLB entries
notes descriptions
#1 A unified TLB is indicated by a value of 0000h in the upper 16 bits.
#2 0000b=disabled, 0001b=1-way, 0010b=2-way, 0100b=4-way, 0110b=8-way, 1000b=16-way,
1010b=32-way, 1011b=48-way, 1100b=64-way, 1101b=96-way, 1110b=128-way, 1111b=full

 
extended level 8000_001Ah
 
input EAX=8000_001Ah get performance optimization identifiers
output EAX performance optimization identifiers
bits description
31...3 reserved
2 (FP256) 1x 256-bit instead of 2x 128-bit processing
1 (MOVU) prefer unaligned MOV over MOVL/MOVH
0 (FP128) 1x 128-bit instead of 2x 64-bit processing

 
extended level 8000_001Bh
 
input EAX=8000_001Bh get IBS information
output EAX IBS feature flags
bits description
31...11 reserved
10 IBS op data 4 MSR
9 IBS fetch control extended MSR
8 fused branch micro-op indication
7 invalid RIP indication
6 IbsOpCurCnt and IbsOpMaxCnt extend by 7 bits
5 branch target address reporting
4 op counting mode
3 read write of op counter
2 IBS execution sampling
1 IBS fetch sampling
0 IBS feature flags valid

 
extended level 8000_001Ch
 
input EAX=8000_001Ch get LWP information
output EAX bits description
31 interrupt on threshold overflow available
30 performance time stamp counter in event record available
29 sampling in continuous mode available
28...7 reserved
6 core reference clocks not halted event available
5 core clocks not halted event available
4 DC miss event available
3 branch retired event available
2 instructions retired event available
1 LWPVAL instruction available
0 LWP available (copy of XCR0.LWP)
EBX bits description
31...24 EventInterval1 field offset
23...16 maximum EventId
15...8 event record size
7...0 control block size
ECX bits description
31 cache latency filtering supported
30 cache level filtering supported
29 IP filtering supported
28 branch prediction filtering supported
27...24 reserved
23...16 event ring buffer size
15...9 version
8...6 amount by which cache latency is rounded
5 data cache miss address valid
4...0 latency counter bit size
EDX bits description
31 interrupt on threshold overflow supported
30 performance time stamp counter in event record supported
29 sampling in continuous mode supported
28...7 reserved
6 core reference clocks not halted event supported
5 core clocks not halted event supported
4 DC miss event supported
3 branch retired event supported
2 instructions retired event supported
1 LWPVAL instruction supported
0 LWP supported (copy of LWP feature flag in extended level 8000_0001h)

 
extended level 8000_001Dh
 
input EAX=8000_001Dh get cache configuration descriptors
ECX=xxxx_xxxxh cache level to query (until EAX reports cache type = 0)
output EAX bits description
31...26 reserved
25...14 cores per cache - 1
13...10 reserved
9 fully associative?
8 self-initializing?
7...5 cache level (starts at 1)
4...0 cache type (0=null, 1=data, 2=code, 3=unified, 4...31=reserved)
EBX bits description
31...22 ways of associativity - 1
21...12 physical line partitions - 1
11...0 system coherency line size - 1
ECX bits description
31...0 sets - 1
EDX bits description
31...2 reserved
1 inclusive of lower levels?
0 write-back invalidate?

 
extended level 8000_001Eh
 
input EAX=8000_001Eh get APIC/unit/node information
output EAX extended APIC ID
bits description
31...0 extended APIC ID
EBX compute unit identifiers (Fam 15h)
core identifiers (Fam 17h)
bits description
31...16 reserved
15...8 cores per compute unit - 1 (Fam 15h)
threads per core - 1 (Fam 17h)
7...0 compute unit ID (Fam 15h)
core ID (Fam 17h)
ECX node identifiers
bits description
31...11 reserved
10...8 nodes per processor - 1
7...0 node ID

 
extended level 8000_001Fh
 
input EAX=8000_001Fh get SME/SEV information
output EAX bits description
31...5 reserved
4 reserved
3 SEV-ES, VMGEXIT, #VC, GHCB MSR (C001_0130h)
2 VMPAGE_FLUSH MSR (C001_011Eh)
1 SEV
0 SME
EBX bits description
31...12 reserved
11...6 hPA bit count reduction when memory encryption is active
5...0 page table bit position used to indicate memory encryption
ECX bits description
31...0 number of simultaneously supported encrypted guests
EDX bits description
31...0 minimum SEV enabled, SEV-ES disabled ASID



 
Transmeta level 8086_0000h
 
input EAX=8086_0000h get maximum supported level and vendor ID string
output EAX=xxxx_xxxxh maximum supported level
EBX-EDX-ECX vendor ID string
TransmetaCPU Transmeta processor

 
Transmeta level 8086_0001h
 
input EAX=8086_0001h get processor information
output EAX=xxxx_xxxxh processor family/model/stepping
extended family
(add)
The extended processor family is encoded in bits 27...20.
00+0 Transmeta Efficeon
extended model
(concat)
The extended processor model is encoded in bits 19...16.
Transmeta Crusoe 0 TM3x00 and TM5x00
Transmeta Efficeon 0 TM8000
family The family is encoded in bits 11...8.
5 Transmeta Crusoe
F refer to extended family
model The model is encoded in bits 7...4.
Transmeta Crusoe 4 TM3x00 and TM5x00
Transmeta Efficeon 2 TM8000 (130 nm)
2 TM8000 (90 nm CMS 6.0)
3 TM8000 (90 nm CMS 6.1+)
stepping The stepping is encoded in bits 3...0.
The stepping values are processor-specific.
EBX=aabb_ccddh hardware revision (a.b-c.d)
0101_xxyyh = TM3200
0102_xxyyh = TM5400
0103_xxyyh = TM5400 or TM5600
0103_00yyh = TM5500 or TM5800
0104_xxyyh = TM5500 or TM5800
0105_xxyyh = TM5500 or TM5800
0200_0000h = see level 8086_0002h register EAX
ECX=xxxx_xxxxh nominal core clock frequency (MHz)
EDX=xxxx_xxxxh feature flags description of indicated feature
bits 31...4 reserved
bit 3 (LRTI) LongRun Table Interface
bit 2 (???) unknown
bit 1 (LR) LongRun
bit 0 (BAD) recovery CMS active (due to a failed upgrade)

 
Transmeta level 8086_0002h
 
input EAX=8086_0002h get processor information
output EAX xxxx_xxxxh reserved or hardware revision (xxxxxxxxh)
see level 8086_0001h register EBX
EBX aabb_ccddh software revision, part 1/2 (a.b.c-d-x)
ECX xxxx_xxxxh software revision, part 2/2 (a.b.c-d-x)

 
Transmeta levels 8086_0003h, 8086_0004h, 8086_0005h, and 8086_0006h
 
input EAX=8086_0003h get information string (part 1)
EAX=8086_0004h get information string (part 2)
EAX=8086_0005h get information string (part 3)
EAX=8086_0006h get information string (part 4)
output EAX-EBX-ECX-EDX information string #1
Transmeta 20000805 23:30 official release 4.1.4#2 (example)
note description
#1 Unused characters at the end of the string are filled with 00h.

 
Transmeta level 8086_0007h
 
input EAX=8086_0007h get processor information
output EAX xxxx_xxxxh current core clock frequency (MHz)
EBX xxxx_xxxxh current core clock voltage (mV)
ECX xxxx_xxxxh current (LongRun) performance level (0...100%)
EDX xxxx_xxxxh current gate delay (fs)



 
Centaur level C000_0000h
 
input EAX=C000_0000h get maximum supported level
output EAX=xxxx_xxxxh maximum supported level

 
Centaur level C000_0001h
 
input EAX=C000_0001h get processor information
output EDX=xxxx_xxxxh feature flags description of indicated feature
bits 31...10 reserved
bit 9 (MM/HE-E) Montgomery Multiplier and Hash Engine enabled
bit 8 (MM/HE) Montgomery Multiplier and Hash Engine
bit 7 (ACE-E) Advanced Cryptography Engine enabled
bit 6 (ACE) Advanced Cryptography Engine
bit 5 (FEMMS) FEMMS
bit 4 (LH) LongHaul MSR 0000_110Ah
bit 3 (RNG-E) Random Number Generator enabled
bit 2 (RNG) Random Number Generator
bit 1 (AIS-E) Alternate Instruction Set enabled
bit 0 (AIS) Alternate Instruction Set



 
mystery level 8FFF_FFFEh
 
input EAX=8FFF_FFFEh unknown #1
output EAX 0049_4544h DEI
EBX 0000_0000h reserved
ECX 0000_0000h reserved
EDX 0000_0000h reserved
note description
#1 This level is only supported by the AMD K6 processor family.

 
mystery level 8FFF_FFFFh
 
input EAX=8FFF_FFFFh unknown #1
output EAX
EBX
ECX
EDX
string NexGenerationAMD (K6)
IT'S HAMMER TIME (K8)
HELLO KITTY! ^-^ (KB)
note description
#1 This level is only supported by the indicated processor families.



 
AMD SimNow! level BACC_D00Ah
 
input EAX=BACC_D00Ah backdoor call #1
EDI=CA11_xxxxh function number
EBX=xxxx_xxxxh 1st argument
ECX=xxxx_xxxxh 2nd argument
EDX=xxxx_xxxxh 3rd argument
output EAX=xxxx_xxxxh return value
note description
#1 This level is only supported by the AMD SimNow! simulator.



 
all other levels
 
input EAX=xxxx_xxxxh desired CPUID level
output EAX=xxxx_xxxxh
EBX=xxxx_xxxxh
ECX=xxxx_xxxxh
EDX=xxxx_xxxxh
undefined



main page