Tag Archives: CPUID

CPUID Maximum Value Limit from The Tech ARP BIOS Guide!

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.

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

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!


MP Capable Bit Identify from The Tech ARP BIOS Guide

MP Capable Bit Identify

Common Options : Enabled, Disabled

 

Quick Review of MP Capable Bit Identify

This BIOS feature determines if the BIOS should query the MP Capable bit to correctly identify an AMD Athlon MP processor.

When set to Enabled, the BIOS will query the MP Capable bit at boot-up. If it detects a MP Capable bit setting of 1, it writes the Athlon MP processor string name into the appropriate registers.

When set to Disabled, the BIOS will not query the MP Capable bit at boot-up. The Athlon MP processor will be indistinguishable from the Athlon XP processor, as far as the processor identification is concerned.

If you are using an AMD Athlon MP processor, it is recommended that you enable this BIOS feature to allow proper identification of the processor.

If you are using other Athlon processors, you should disable this BIOS feature as there is no need to identify multi-processing capability.

 

Details of MP Capable Bit Identify

There are a few flavours of the AMD Athlon processor, namely the Duron, Athlon XP, Athlon MP and the mobile Athlon XP (Athlon XP-M). However, they all have the same CPUID. So, processor identification has to be done on the basis of clock speed and L2 cache size variations. This is not a problem for the Duron and Athlon XP-M processors.

Unfortunately, there is nothing to distinguish the Athlon MP from the Athlon XP. Neither clock speed or L2 cache size can be used to differentiate the two processors.

In addition, AMD did not hardcode the processor name string into the AMD Athlon processors. The BIOS actually detects the processor model during the boot-up process and writes the appropriate name string into the processor. So, the Athlon MP cannot be detected by querying the processor name string.

The only thing that truly distinguishes the Athlon MP processor from the Athlon XP processor is its multi-processing capability.

[adrotate group=”1″]

To solve this problem, AMD used bit 19 of Athlon’s Extended Feature Flags to denote multi-processing capability. That’s why it is also known as the MP Capable bit, MP being short for multi-processing.

This bit is set to 0 in the Athlon XP processors and set to 1 in the Athlon MP processors. Below is a table of the MP Capable bit settings for the different AMD Athlon processors.

Therefore, if the BIOS detects a processor with the MP Capable bit set to 1, it writes the processor name string of AMD Athlon ™ MP into the processor.

This BIOS feature determines if the BIOS should query the MP Capable bit to correctly identify an AMD Athlon MP processor.

When set to Enabled, the BIOS will query the MP Capable bit at boot-up. If it detects a MP Capable bit setting of 1, it writes the Athlon MP processor string name into the appropriate registers.

When set to Disabled, the BIOS will not query the MP Capable bit at boot-up. The Athlon MP processor will be indistinguishable from the Athlon XP processor, as far as the processor identification is concerned.

If you are using an AMD Athlon MP processor, it is recommended that you enable this BIOS feature to allow proper identification of the processor.

If you are using other Athlon processors, you should disable this BIOS feature as there is no need to identify multi-processing capability.

Go Back To > The Tech ARP BIOS Guide | 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!