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.
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.
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.
[adrotate group=”1″]
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.
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
- Bank Swizzle Mode from The Tech ARP BIOS Guide
- Master Priority Rotation from The Tech ARP BIOS Guide!
- RW Queue Bypass from The Tech ARP BIOS Guide
- AGP Capability from The Tech ARP BIOS Guide
- PCI Clock Synchronization Mode – The Tech ARP BIOS Guide
- The Intel Core Processor Number Guide – What They Mean!
- 10th Gen Intel Comet Lake : 1 Step Forward, 1 Step Back!
- 10th Gen Intel Ice Lake Mobile CPU Features + Specifications!
- The 10th Gen Intel Core Processor Number Guide!
- NVIDIA GeForce RTX SUPER : Everything You Need To Know!
- AMD Ryzen 7 3700X 8-Core Processor In-Depth Review!
Go Back To > Tech ARP BIOS Guide | Computer | 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!