CPUID Maximum Value Limit from The Tech ARP BIOS Guide!

CPUID Maximum Value Limit

Common Options : Enabled, Disabled

 

Quick Review of CPUID Maximum Value Limit

When the computer is booted up, the operating system executes the CPUID instruction to identify the processor and its capabilities.

The first step is to query the processor to find out the highest input value CPUID recognises, by executing CPUID with the EAX register set to 0. This determines the kind of basic information CPUID can provide the operating system.

The maximum CPUID input value determines the values that the operating system can write to the CPUID’s EAX register to obtain information about the processor.

However, if you attempt to use a new processor with an old operating system, that operating system may not be able to handle the extra CPUID information provided by the processor.

CPUID Maximum Value Limit from The Tech ARP BIOS Guide!

This is where the CPUID Maximum Value Limit BIOS feature comes in. It allows you to circumvent problems with older operating systems that do not support newer processors with extended CPUID information.

When enabled, the processor will limit the maximum CPUID input value to 03h when queried, even if the processor supports a higher CPUID input value.

When disabled, the processor will return the actual maximum CPUID input value of the processor when queried.

It is recommended that you leave it at the default setting of Disabled. You should only enable it if you intend to use a newer processor with an operating system that does not support it.

 

Details of CPUID Maximum Value Limit

When the computer is booted up, the operating system executes the CPUID instruction to identify the processor and its capabilities.

The first step is to query the processor to find out the highest input value CPUID recognises, by executing CPUID with the EAX register set to 0. This determines the kind of basic information CPUID can provide the operating system.

Here’s a table of the maximum CPUID input values the operating system will obtain from Intel processors when CPUID is executed with the EAX register set to 0.

IA-32 Processors Maximum CPUID
Input Value
Earlier Intel486 Processors CPUID Not Implemented
Later Intel486 Processors 01h
Pentium Processors 01h
Pentium Pro Processors 02h
Pentium II Processors 02h
Celeron Processors 02h
Pentium III Processors 03h
Pentium 4 Processors 02h
Xeon Processors 02h
Pentium M Processors 02h
Pentium 4 Processors
with Hyper-Threading Technology
05h

Now that it knows the maximum CPUID input value, the operating system can now write the correct values to the CPUID’s EAX register to obtain information about the processor.

Maximum CPUID
Input Value
EAX Input Values
Supported
01h 00h, 01h
02h 00h, 01h, 02h
03h 00h, 01h, 02h, 03h
05h 00h, 01h, 02h, 03h, 04h, 05h

Using those EAX input values, the operating system queries the processor for the following basic information.

EAX
Input Value
Possible Basic Information Provided by CPUID
00h EAX : Maximum input value for basic CPUID information
EBX : “Genu”
ECX : “ntel”
EDX : ineI”
01h EAX
– 
32-bit Processor Signature
– last 32 bits of the 96-bit processor serial numberEBX
– 
Brand Index
– CLFLUSH line size
– count of logical processors
– processor local APIC physical IDECX
– Processor feature flagsEDX
– Processor feature flags
02h EAX : Cache and TLB descriptors
EBX : Cache and TLB descriptors
ECX : Cache and TLB descriptors
EDX : Cache and TLB descriptors
03h EAX : Reserved
EBX : Reserved
ECX : First 32 bits of the 96-bit processor serial number
EDX : Second 32 bits of the 96-bit processor serial number
04h EAX
– Cache type
– Cache level
– Self-initializing cache level
– Presence of fully associative cache
– Number of threads sharing this cache
– Number of processor cores on this dieEBX
– System coherency line size
– Physical line partitions
– Ways of associativity
ECX : Number of sets
EDX : Reserved
05h EAX : MONITOR/MWAIT function
EBX : MONITOR/MWAIT function
ECX : Reserved
EDX : Reserved

 

Why Does CPUID Maximum Value Limit Matter?

However, if you attempt to use a new processor with an old operating system, that operating system may not be able to handle the extra CPUID information provided by the processor.

This is where the CPUID Maximum Value Limit BIOS feature comes in. It allows you to circumvent problems with older operating systems that do not support newer processors with extended CPUID information.

When enabled, the processor will limit the maximum CPUID input value to 03h when queried, even if the processor supports a higher CPUID input value. The operating system will only query the processor with EAX input values of up to 03h.

When disabled, the processor will return the actual maximum CPUID input value of the processor when queried.

By default, it is set to Disabled because all new operating systems are aware of current processors, and have no problem handling the additional CPUID information.

1st Gen Intel Core CPU die

Irrespective of what you set this BIOS feature to, the operating system will first query the processor.

Only if the processor returns a maximum CPUID input value greater than 03h, will this BIOS feature be taken into account. If the processor returns a maximum CPUID input value of 03h or less, this BIOS feature will be ignored.

It is recommended that you leave it at the default setting of Disabled. You should only enable it if you intend to use a newer processor with an operating system that does not support it.

 

A Little History Lesson

Historically, Intel processors from the Pentium Pro onwards have a maximum CPUID input value of only 02h or 03h. The only exception is the Intel Pentium 4 with Hyper-Threading Technology (HTT).

Older operating systems like Windows 95/98 and Windows Me were released before the Intel Pentium 4 with HTT, and are therefore not aware of such a processor.

Intel Pentium 4 die

This would not have been a problem if the Pentium 4 with HTT did not come with additional CPUID capabilities. Unfortunately, it has a maximum CPUID input value of 05h, as well as support for additional EAX input values of 04h and 05h.

When these operating systems boot up, they would receive a maximum CPUID input value of 05h from the processor – which they were not programmed to handle. Therefore, they were not able to initialise the processor properly.

 

Recommended Reading

Go Back To > Tech ARP BIOS GuideComputer | Home

 

Support Tech ARP!

If you like our work, you can help support our work by visiting our sponsors, participating in the Tech ARP Forums, or even donating to our fund. Any help you can render is greatly appreciated!


Comments

comments

About The Author

Leave a Reply

%d bloggers like this: