background image

CPUID—CPU Identification

INSTRUCTION SET REFERENCE, A-L

3-204 Vol. 2A

NOTE

See Chapter 19 in the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1
for information on identifying earlier IA-32 processors.

The Extended Family ID needs to be examined only when the Family ID is 0FH. Integrate the fields into a display 
using the following rule:

IF Family_ID 

≠

 0FH

THEN DisplayFamily = Family_ID;
ELSE DisplayFamily = Extended_Family_ID + Family_ID;
(* Right justify and zero-extend 4-bit field. *)

FI;
(* Show DisplayFamily as HEX field. *)

The Extended Model ID needs to be examined only when the Family ID is 06H or 0FH. Integrate the field into a 
display using the following rule:

IF (Family_ID = 06H or Family_ID = 0FH)

THEN DisplayModel = (Extended_Model_ID « 4) + Model_ID;
(* Right justify and zero-extend 4-bit field; display Model_ID as HEX field.*)
ELSE DisplayModel = Model_ID;

FI;
(* Show DisplayModel as HEX field. *)

INPUT EAX = 01H: Returns Additional Information in EBX

When CPUID executes with EAX set to 01H, additional information is returned to the EBX register: 

•

Brand index (low byte of EBX) — this number provides an entry into a brand string table that contains brand 
strings for IA-32 processors. More information about this field is provided later in this section. 

•

CLFLUSH instruction cache line size (second byte of EBX) — this number indicates the size of the cache line 
flushed by the CLFLUSH and CLFLUSHOPT instructions in 8-byte increments. This field was introduced in the 
Pentium 4 processor.

•

Local APIC ID (high byte of EBX) â€” this number is the 8-bit ID that is assigned to the local APIC on the 
processor during power up. This field was introduced in the Pentium 4 processor.

INPUT EAX = 01H: Returns Feature Information in ECX and EDX

When CPUID executes with EAX set to 01H, feature information is returned in ECX and EDX.

•

Figure 3-7 and Table 3-10 show encodings for ECX.

•

Figure 3-8 and Table 3-11 show encodings for EDX.

For all feature flags, a 1 indicates that the feature is supported. Use Intel to properly interpret feature flags.

NOTE

Software must confirm that a processor feature is present using feature flags returned by CPUID 
prior to using the feature. Software should not depend on future offerings retaining all features.

Table 3-9.  Processor Type Field

Type

Encoding

Original OEM Processor

00B

Intel OverDrive

®

 

Processor

01B

Dual processor (not applicable to Intel486 processors)

10B

Intel reserved

11B