background image

CPUID—CPU Identification

INSTRUCTION SET REFERENCE, A-L

Vol. 2A 3-213

Which means:

The least-significant byte (byte 0) of register EAX is set to 01H. This value should be ignored.

The most-significant bit of all four registers (EAX, EBX, ECX, and EDX) is set to 0, indicating that each register 
contains valid 1-byte descriptors.

Bytes 1, 2, and 3 of register EAX indicate that the processor has:
— 50H - a 64-entry instruction TLB, for mapping 4-KByte and 2-MByte or 4-MByte pages.
— 5BH - a 64-entry data TLB, for mapping 4-KByte and 4-MByte pages.
— 66H - an 8-KByte 1st level data cache, 4-way set associative, with a 64-Byte cache line size.

The descriptors in registers EBX and ECX are valid, but contain NULL descriptors.

Bytes 0, 1, 2, and 3 of register EDX indicate that the processor has:
— 00H - NULL descriptor.
— 70H - Trace cache: 12 K-μop, 8-way set associative.
— 7AH - a 256-KByte 2nd level cache, 8-way set associative, with a sectored, 64-byte cache line size.
— 00H - NULL descriptor.

INPUT EAX = 04H: Returns Deterministic Cache Parameters for Each Level

When CPUID executes with EAX set to 04H and ECX contains an index value, the processor returns encoded data 
that describe a set of deterministic cache parameters (for the cache level associated with the input in ECX). Valid 
index values start from 0.
Software can enumerate the deterministic cache parameters for each level of the cache hierarchy starting with an 
index value of 0, until the parameters report the value associated with the cache type field is 0. The architecturally 
defined fields reported by deterministic cache parameters are documented in Table 3-8.
This Cache Size in Bytes
= (Ways + 1) * (Partitions + 1) * (Line_Size + 1) * (Sets + 1)
= (EBX[31:22] + 1) * (EBX[21:12] + 1) * (EBX[11:0] + 1) * (ECX + 1)

The CPUID leaf 04H also reports data that can be used to derive the topology of processor cores in a physical 
package. This information is constant for all valid index values. Software can query the raw data reported by 
executing CPUID with EAX=04H and ECX=0 and use it as part of the topology enumeration algorithm described in 
Chapter 8, “Multiple-Processor Management,” in the Intel® 64 and IA-32 Architectures Software Developer’s 
Manual, Volume 3A
.

INPUT EAX = 05H: Returns MONITOR and MWAIT Features

When CPUID executes with EAX set to 05H, the processor returns information about features available to 
MONITOR/MWAIT instructions. The MONITOR instruction is used for address-range monitoring in conjunction with 
MWAIT instruction. The MWAIT instruction optionally provides additional extensions for advanced power manage-
ment. See Table 3-8. 

INPUT EAX = 06H: Returns Thermal and Power Management Features

When CPUID executes with EAX set to 06H, the processor returns information about thermal and power manage-
ment features. See Table 3-8. 

INPUT EAX = 07H: Returns Structured Extended Feature Enumeration Information

When CPUID executes with EAX set to 07H and ECX = 0, the processor returns information about the maximum 
input value for sub-leaves that contain extended feature flags. See Table 3-8

When CPUID executes with EAX set to 07H and the input value of ECX is invalid (see leaf 07H entry in Table 3-8), 

the processor returns 0 in EAX/EBX/ECX/EDX. In subleaf 0, EAX returns the maximum input value of the highest