1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
|
# The basic row format is:
# LEAF, SUBLEAF, register_name, bits, short_name, long_description
# Leaf 00H
0, 0, EAX, 31:0, max_basic_leafs, Max input value for supported subleafs
# Leaf 01H
1, 0, EAX, 3:0, stepping, Stepping ID
1, 0, EAX, 7:4, model, Model
1, 0, EAX, 11:8, family, Family ID
1, 0, EAX, 13:12, processor, Processor Type
1, 0, EAX, 19:16, model_ext, Extended Model ID
1, 0, EAX, 27:20, family_ext, Extended Family ID
1, 0, EBX, 7:0, brand, Brand Index
1, 0, EBX, 15:8, clflush_size, CLFLUSH line size (value * 8) in bytes
1, 0, EBX, 23:16, max_cpu_id, Maxim number of addressable logic cpu in this package
1, 0, EBX, 31:24, apic_id, Initial APIC ID
1, 0, ECX, 0, sse3, Streaming SIMD Extensions 3(SSE3)
1, 0, ECX, 1, pclmulqdq, PCLMULQDQ instruction supported
1, 0, ECX, 2, dtes64, DS area uses 64-bit layout
1, 0, ECX, 3, mwait, MONITOR/MWAIT supported
1, 0, ECX, 4, ds_cpl, CPL Qualified Debug Store which allows for branch message storage qualified by CPL
1, 0, ECX, 5, vmx, Virtual Machine Extensions supported
1, 0, ECX, 6, smx, Safer Mode Extension supported
1, 0, ECX, 7, eist, Enhanced Intel SpeedStep Technology
1, 0, ECX, 8, tm2, Thermal Monitor 2
1, 0, ECX, 9, ssse3, Supplemental Streaming SIMD Extensions 3 (SSSE3)
1, 0, ECX, 10, l1_ctx_id, L1 data cache could be set to either adaptive mode or shared mode (check IA32_MISC_ENABLE bit 24 definition)
1, 0, ECX, 11, sdbg, IA32_DEBUG_INTERFACE MSR for silicon debug supported
1, 0, ECX, 12, fma, FMA extensions using YMM state supported
1, 0, ECX, 13, cmpxchg16b, 'CMPXCHG16B - Compare and Exchange Bytes' supported
1, 0, ECX, 14, xtpr_update, xTPR Update Control supported
1, 0, ECX, 15, pdcm, Perfmon and Debug Capability present
1, 0, ECX, 17, pcid, Process-Context Identifiers feature present
1, 0, ECX, 18, dca, Prefetching data from a memory mapped device supported
1, 0, ECX, 19, sse4_1, SSE4.1 feature present
1, 0, ECX, 20, sse4_2, SSE4.2 feature present
1, 0, ECX, 21, x2apic, x2APIC supported
1, 0, ECX, 22, movbe, MOVBE instruction supported
1, 0, ECX, 23, popcnt, POPCNT instruction supported
1, 0, ECX, 24, tsc_deadline_timer, LAPIC supports one-shot operation using a TSC deadline value
1, 0, ECX, 25, aesni, AESNI instruction supported
1, 0, ECX, 26, xsave, XSAVE/XRSTOR processor extended states (XSETBV/XGETBV/XCR0)
1, 0, ECX, 27, osxsave, OS has set CR4.OSXSAVE bit to enable XSETBV/XGETBV/XCR0
1, 0, ECX, 28, avx, AVX instruction supported
1, 0, ECX, 29, f16c, 16-bit floating-point conversion instruction supported
1, 0, ECX, 30, rdrand, RDRAND instruction supported
1, 0, EDX, 0, fpu, x87 FPU on chip
1, 0, EDX, 1, vme, Virtual-8086 Mode Enhancement
1, 0, EDX, 2, de, Debugging Extensions
1, 0, EDX, 3, pse, Page Size Extensions
1, 0, EDX, 4, tsc, Time Stamp Counter
1, 0, EDX, 5, msr, RDMSR and WRMSR Support
1, 0, EDX, 6, pae, Physical Address Extensions
1, 0, EDX, 7, mce, Machine Check Exception
1, 0, EDX, 8, cx8, CMPXCHG8B instr
1, 0, EDX, 9, apic, APIC on Chip
1, 0, EDX, 11, sep, SYSENTER and SYSEXIT instrs
1, 0, EDX, 12, mtrr, Memory Type Range Registers
1, 0, EDX, 13, pge, Page Global Bit
1, 0, EDX, 14, mca, Machine Check Architecture
1, 0, EDX, 15, cmov, Conditional Move Instrs
1, 0, EDX, 16, pat, Page Attribute Table
1, 0, EDX, 17, pse36, 36-Bit Page Size Extension
1, 0, EDX, 18, psn, Processor Serial Number
1, 0, EDX, 19, clflush, CLFLUSH instr
# 1, 0, EDX, 20,
1, 0, EDX, 21, ds, Debug Store
1, 0, EDX, 22, acpi, Thermal Monitor and Software Controlled Clock Facilities
1, 0, EDX, 23, mmx, Intel MMX Technology
1, 0, EDX, 24, fxsr, XSAVE and FXRSTOR Instrs
1, 0, EDX, 25, sse, SSE
1, 0, EDX, 26, sse2, SSE2
1, 0, EDX, 27, ss, Self Snoop
1, 0, EDX, 28, hit, Max APIC IDs
1, 0, EDX, 29, tm, Thermal Monitor
# 1, 0, EDX, 30,
1, 0, EDX, 31, pbe, Pending Break Enable
# Leaf 02H
# cache and TLB descriptor info
# Leaf 03H
# Precessor Serial Number, introduced on Pentium III, not valid for
# latest models
# Leaf 04H
# thread/core and cache topology
4, 0, EAX, 4:0, cache_type, Cache type like instr/data or unified
4, 0, EAX, 7:5, cache_level, Cache Level (starts at 1)
4, 0, EAX, 8, cache_self_init, Cache Self Initialization
4, 0, EAX, 9, fully_associate, Fully Associative cache
# 4, 0, EAX, 13:10, resvd, resvd
4, 0, EAX, 25:14, max_logical_id, Max number of addressable IDs for logical processors sharing the cache
4, 0, EAX, 31:26, max_phy_id, Max number of addressable IDs for processors in phy package
4, 0, EBX, 11:0, cache_linesize, Size of a cache line in bytes
4, 0, EBX, 21:12, cache_partition, Physical Line partitions
4, 0, EBX, 31:22, cache_ways, Ways of associativity
4, 0, ECX, 31:0, cache_sets, Number of Sets - 1
4, 0, EDX, 0, c_wbinvd, 1 means WBINVD/INVD is not ganranteed to act upon lower level caches of non-originating threads sharing this cache
4, 0, EDX, 1, c_incl, Whether cache is inclusive of lower cache level
4, 0, EDX, 2, c_comp_index, Complex Cache Indexing
# Leaf 05H
# MONITOR/MWAIT
5, 0, EAX, 15:0, min_mon_size, Smallest monitor line size in bytes
5, 0, EBX, 15:0, max_mon_size, Largest monitor line size in bytes
5, 0, ECX, 0, mwait_ext, Enum of Monitor-Mwait extensions supported
5, 0, ECX, 1, mwait_irq_break, Largest monitor line size in bytes
5, 0, EDX, 3:0, c0_sub_stats, Number of C0* sub C-states supported using MWAIT
5, 0, EDX, 7:4, c1_sub_stats, Number of C1* sub C-states supported using MWAIT
5, 0, EDX, 11:8, c2_sub_stats, Number of C2* sub C-states supported using MWAIT
5, 0, EDX, 15:12, c3_sub_stats, Number of C3* sub C-states supported using MWAIT
5, 0, EDX, 19:16, c4_sub_stats, Number of C4* sub C-states supported using MWAIT
5, 0, EDX, 23:20, c5_sub_stats, Number of C5* sub C-states supported using MWAIT
5, 0, EDX, 27:24, c6_sub_stats, Number of C6* sub C-states supported using MWAIT
5, 0, EDX, 31:28, c7_sub_stats, Number of C7* sub C-states supported using MWAIT
# Leaf 06H
# Thermal & Power Management
6, 0, EAX, 0, dig_temp, Digital temperature sensor supported
6, 0, EAX, 1, turbo, Intel Turbo Boost
6, 0, EAX, 2, arat, Always running APIC timer
# 6, 0, EAX, 3, resv, Reserved
6, 0, EAX, 4, pln, Power limit notifications supported
6, 0, EAX, 5, ecmd, Clock modulation duty cycle extension supported
6, 0, EAX, 6, ptm, Package thermal management supported
6, 0, EAX, 7, hwp, HWP base register
6, 0, EAX, 8, hwp_notify, HWP notification
6, 0, EAX, 9, hwp_act_window, HWP activity window
6, 0, EAX, 10, hwp_energy, HWP energy performance preference
6, 0, EAX, 11, hwp_pkg_req, HWP package level request
# 6, 0, EAX, 12, resv, Reserved
6, 0, EAX, 13, hdc, HDC base registers supported
6, 0, EAX, 14, turbo3, Turbo Boost Max 3.0
6, 0, EAX, 15, hwp_cap, Highest Performance change supported
6, 0, EAX, 16, hwp_peci, HWP PECI override is supported
6, 0, EAX, 17, hwp_flex, Flexible HWP is supported
6, 0, EAX, 18, hwp_fast, Fast access mode for the IA32_HWP_REQUEST MSR is supported
# 6, 0, EAX, 19, resv, Reserved
6, 0, EAX, 20, hwp_ignr, Ignoring Idle Logical Processor HWP request is supported
6, 0, EBX, 3:0, therm_irq_thresh, Number of Interrupt Thresholds in Digital Thermal Sensor
6, 0, ECX, 0, aperfmperf, Presence of IA32_MPERF and IA32_APERF
6, 0, ECX, 3, energ_bias, Performance-energy bias preference supported
# Leaf 07H
# ECX == 0
# AVX512 refers to https://en.wikipedia.org/wiki/AVX-512
# XXX: Do we really need to enumerate each and every AVX512 sub features
7, 0, EBX, 0, fsgsbase, RDFSBASE/RDGSBASE/WRFSBASE/WRGSBASE supported
7, 0, EBX, 1, tsc_adjust, TSC_ADJUST MSR supported
7, 0, EBX, 2, sgx, Software Guard Extensions
7, 0, EBX, 3, bmi1, BMI1
7, 0, EBX, 4, hle, Hardware Lock Elision
7, 0, EBX, 5, avx2, AVX2
# 7, 0, EBX, 6, fdp_excp_only, x87 FPU Data Pointer updated only on x87 exceptions
7, 0, EBX, 7, smep, Supervisor-Mode Execution Prevention
7, 0, EBX, 8, bmi2, BMI2
7, 0, EBX, 9, rep_movsb, Enhanced REP MOVSB/STOSB
7, 0, EBX, 10, invpcid, INVPCID instruction
7, 0, EBX, 11, rtm, Restricted Transactional Memory
7, 0, EBX, 12, rdt_m, Intel RDT Monitoring capability
7, 0, EBX, 13, depc_fpu_cs_ds, Deprecates FPU CS and FPU DS
7, 0, EBX, 14, mpx, Memory Protection Extensions
7, 0, EBX, 15, rdt_a, Intel RDT Allocation capability
7, 0, EBX, 16, avx512f, AVX512 Foundation instr
7, 0, EBX, 17, avx512dq, AVX512 Double and Quadword AVX512 instr
7, 0, EBX, 18, rdseed, RDSEED instr
7, 0, EBX, 19, adx, ADX instr
7, 0, EBX, 20, smap, Supervisor Mode Access Prevention
7, 0, EBX, 21, avx512ifma, AVX512 Integer Fused Multiply Add
# 7, 0, EBX, 22, resvd, resvd
7, 0, EBX, 23, clflushopt, CLFLUSHOPT instr
7, 0, EBX, 24, clwb, CLWB instr
7, 0, EBX, 25, intel_pt, Intel Processor Trace instr
7, 0, EBX, 26, avx512pf, Prefetch
7, 0, EBX, 27, avx512er, AVX512 Exponent Reciproca instr
7, 0, EBX, 28, avx512cd, AVX512 Conflict Detection instr
7, 0, EBX, 29, sha, Intel Secure Hash Algorithm Extensions instr
7, 0, EBX, 30, avx512bw, AVX512 Byte & Word instr
7, 0, EBX, 31, avx512vl, AVX512 Vector Length Extentions (VL)
7, 0, ECX, 0, prefetchwt1, X
7, 0, ECX, 1, avx512vbmi, AVX512 Vector Byte Manipulation Instructions
7, 0, ECX, 2, umip, User-mode Instruction Prevention
7, 0, ECX, 3, pku, Protection Keys for User-mode pages
7, 0, ECX, 4, ospke, CR4 PKE set to enable protection keys
# 7, 0, ECX, 16:5, resvd, resvd
7, 0, ECX, 21:17, mawau, The value of MAWAU used by the BNDLDX and BNDSTX instructions in 64-bit mode
7, 0, ECX, 22, rdpid, RDPID and IA32_TSC_AUX
# 7, 0, ECX, 29:23, resvd, resvd
7, 0, ECX, 30, sgx_lc, SGX Launch Configuration
# 7, 0, ECX, 31, resvd, resvd
# Leaf 08H
#
# Leaf 09H
# Direct Cache Access (DCA) information
9, 0, ECX, 31:0, dca_cap, The value of IA32_PLATFORM_DCA_CAP
# Leaf 0AH
# Architectural Performance Monitoring
#
# Do we really need to print out the PMU related stuff?
# Does normal user really care about it?
#
0xA, 0, EAX, 7:0, pmu_ver, Performance Monitoring Unit version
0xA, 0, EAX, 15:8, pmu_gp_cnt_num, Numer of general-purose PMU counters per logical CPU
0xA, 0, EAX, 23:16, pmu_cnt_bits, Bit wideth of PMU counter
0xA, 0, EAX, 31:24, pmu_ebx_bits, Length of EBX bit vector to enumerate PMU events
0xA, 0, EBX, 0, pmu_no_core_cycle_evt, Core cycle event not available
0xA, 0, EBX, 1, pmu_no_instr_ret_evt, Instruction retired event not available
0xA, 0, EBX, 2, pmu_no_ref_cycle_evt, Reference cycles event not available
0xA, 0, EBX, 3, pmu_no_llc_ref_evt, Last-level cache reference event not available
0xA, 0, EBX, 4, pmu_no_llc_mis_evt, Last-level cache misses event not available
0xA, 0, EBX, 5, pmu_no_br_instr_ret_evt, Branch instruction retired event not available
0xA, 0, EBX, 6, pmu_no_br_mispredict_evt, Branch mispredict retired event not available
0xA, 0, ECX, 4:0, pmu_fixed_cnt_num, Performance Monitoring Unit version
0xA, 0, ECX, 12:5, pmu_fixed_cnt_bits, Numer of PMU counters per logical CPU
# Leaf 0BH
# Extended Topology Enumeration Leaf
#
0xB, 0, EAX, 4:0, id_shift, Number of bits to shift right on x2APIC ID to get a unique topology ID of the next level type
0xB, 0, EBX, 15:0, cpu_nr, Number of logical processors at this level type
0xB, 0, ECX, 15:8, lvl_type, 0-Invalid 1-SMT 2-Core
0xB, 0, EDX, 31:0, x2apic_id, x2APIC ID the current logical processor
# Leaf 0DH
# Processor Extended State
0xD, 0, EAX, 0, x87, X87 state
0xD, 0, EAX, 1, sse, SSE state
0xD, 0, EAX, 2, avx, AVX state
0xD, 0, EAX, 4:3, mpx, MPX state
0xD, 0, EAX, 7:5, avx512, AVX-512 state
0xD, 0, EAX, 9, pkru, PKRU state
0xD, 0, EBX, 31:0, max_sz_xcr0, Maximum size (bytes) required by enabled features in XCR0
0xD, 0, ECX, 31:0, max_sz_xsave, Maximum size (bytes) of the XSAVE/XRSTOR save area
0xD, 1, EAX, 0, xsaveopt, XSAVEOPT available
0xD, 1, EAX, 1, xsavec, XSAVEC and compacted form supported
0xD, 1, EAX, 2, xgetbv, XGETBV supported
0xD, 1, EAX, 3, xsaves, XSAVES/XRSTORS and IA32_XSS supported
0xD, 1, EBX, 31:0, max_sz_xcr0, Maximum size (bytes) required by enabled features in XCR0
0xD, 1, ECX, 8, pt, PT state
0xD, 1, ECX, 11, cet_usr, CET user state
0xD, 1, ECX, 12, cet_supv, CET supervisor state
0xD, 1, ECX, 13, hdc, HDC state
0xD, 1, ECX, 16, hwp, HWP state
# Leaf 0FH
# Intel RDT Monitoring
0xF, 0, EBX, 31:0, rmid_range, Maximum range (zero-based) of RMID within this physical processor of all types
0xF, 0, EDX, 1, l3c_rdt_mon, L3 Cache RDT Monitoring supported
0xF, 1, ECX, 31:0, rmid_range, Maximum range (zero-based) of RMID of this types
0xF, 1, EDX, 0, l3c_ocp_mon, L3 Cache occupancy Monitoring supported
0xF, 1, EDX, 1, l3c_tbw_mon, L3 Cache Total Bandwidth Monitoring supported
0xF, 1, EDX, 2, l3c_lbw_mon, L3 Cache Local Bandwidth Monitoring supported
# Leaf 10H
# Intel RDT Allocation
0x10, 0, EBX, 1, l3c_rdt_alloc, L3 Cache Allocation supported
0x10, 0, EBX, 2, l2c_rdt_alloc, L2 Cache Allocation supported
0x10, 0, EBX, 3, mem_bw_alloc, Memory Bandwidth Allocation supported
# Leaf 12H
# SGX Capability
#
# Some detailed SGX features not added yet
0x12, 0, EAX, 0, sgx1, L3 Cache Allocation supported
0x12, 1, EAX, 0, sgx2, L3 Cache Allocation supported
# Leaf 14H
# Intel Processor Tracer
#
# Leaf 15H
# Time Stamp Counter and Nominal Core Crystal Clock Information
0x15, 0, EAX, 31:0, tsc_denominator, The denominator of the TSC/”core crystal clock” ratio
0x15, 0, EBX, 31:0, tsc_numerator, The numerator of the TSC/”core crystal clock” ratio
0x15, 0, ECX, 31:0, nom_freq, Nominal frequency of the core crystal clock in Hz
# Leaf 16H
# Processor Frequency Information
0x16, 0, EAX, 15:0, cpu_base_freq, Processor Base Frequency in MHz
0x16, 0, EBX, 15:0, cpu_max_freq, Maximum Frequency in MHz
0x16, 0, ECX, 15:0, bus_freq, Bus (Reference) Frequency in MHz
# Leaf 17H
# System-On-Chip Vendor Attribute
0x17, 0, EAX, 31:0, max_socid, Maximum input value of supported sub-leaf
0x17, 0, EBX, 15:0, soc_vid, SOC Vendor ID
0x17, 0, EBX, 16, std_vid, SOC Vendor ID is assigned via an industry standard scheme
0x17, 0, ECX, 31:0, soc_pid, SOC Project ID assigned by vendor
0x17, 0, EDX, 31:0, soc_sid, SOC Stepping ID
# Leaf 18H
# Deterministic Address Translation Parameters
# Leaf 19H
# Key Locker Leaf
# Leaf 1AH
# Hybrid Information
0x1A, 0, EAX, 31:24, core_type, 20H-Intel_Atom 40H-Intel_Core
# Leaf 1FH
# V2 Extended Topology - A preferred superset to leaf 0BH
# According to SDM
# 40000000H - 4FFFFFFFH is invalid range
# Leaf 80000001H
# Extended Processor Signature and Feature Bits
0x80000001, 0, ECX, 0, lahf_lm, LAHF/SAHF available in 64-bit mode
0x80000001, 0, ECX, 5, lzcnt, LZCNT
0x80000001, 0, ECX, 8, prefetchw, PREFETCHW
0x80000001, 0, EDX, 11, sysret, SYSCALL/SYSRET supported
0x80000001, 0, EDX, 20, exec_dis, Execute Disable Bit available
0x80000001, 0, EDX, 26, 1gb_page, 1GB page supported
0x80000001, 0, EDX, 27, rdtscp, RDTSCP and IA32_TSC_AUX are available
#0x80000001, 0, EDX, 29, 64b, 64b Architecture supported
# Leaf 80000002H/80000003H/80000004H
# Processor Brand String
# Leaf 80000005H
# Reserved
# Leaf 80000006H
# Extended L2 Cache Features
0x80000006, 0, ECX, 7:0, clsize, Cache Line size in bytes
0x80000006, 0, ECX, 15:12, l2c_assoc, L2 Associativity
0x80000006, 0, ECX, 31:16, csize, Cache size in 1K units
# Leaf 80000007H
0x80000007, 0, EDX, 8, nonstop_tsc, Invariant TSC available
# Leaf 80000008H
0x80000008, 0, EAX, 7:0, phy_adr_bits, Physical Address Bits
0x80000008, 0, EAX, 15:8, lnr_adr_bits, Linear Address Bits
0x80000007, 0, EBX, 9, wbnoinvd, WBNOINVD
# 0x8000001E
# EAX: Extended APIC ID
0x8000001E, 0, EAX, 31:0, extended_apic_id, Extended APIC ID
# EBX: Core Identifiers
0x8000001E, 0, EBX, 7:0, core_id, Identifies the logical core ID
0x8000001E, 0, EBX, 15:8, threads_per_core, The number of threads per core is threads_per_core + 1
# ECX: Node Identifiers
0x8000001E, 0, ECX, 7:0, node_id, Node ID
0x8000001E, 0, ECX, 10:8, nodes_per_processor, Nodes per processor { 0: 1 node, else reserved }
# 8000001F: AMD Secure Encryption
0x8000001F, 0, EAX, 0, sme, Secure Memory Encryption
0x8000001F, 0, EAX, 1, sev, Secure Encrypted Virtualization
0x8000001F, 0, EAX, 2, vmpgflush, VM Page Flush MSR
0x8000001F, 0, EAX, 3, seves, SEV Encrypted State
0x8000001F, 0, EBX, 5:0, c-bit, Page table bit number used to enable memory encryption
0x8000001F, 0, EBX, 11:6, mem_encrypt_physaddr_width, Reduction of physical address space in bits with SME enabled
0x8000001F, 0, ECX, 31:0, num_encrypted_guests, Maximum ASID value that may be used for an SEV-enabled guest
0x8000001F, 0, EDX, 31:0, minimum_sev_asid, Minimum ASID value that must be used for an SEV-enabled, SEV-ES-disabled guest
|