CPUMSR help
Version: 0.88

Prepared by: Petr Koc

 

Intel NetBurst (Pentium 4) class
Supported CPU cores: Willamette, FosterMP, Northwood, Gallatin, Prescott

Note: Some features are supported only on newer CPU cores.

 

In Order Queue Depth
Informs whether In Order Queue is 1 entry or 12 entry deep. 12 entry gives much better performance but chipset must set it.

System Bus Frequency (Factory Settings)
This is how CPU identifies it's frequency to BIOS. When BIOS doesn't know that frequency, problems with compatibility may occur.

Multiplier Information
Nominal - the default multiplier CPU runs at.
Maximum - the minimum multiplier CPU runs at (on locked CPUs this equals to nominal)
Minimum - the minimum multiplier CPU runs at (on locked CPUs this equals to nominal)
Frequency locked - Does this CPU have multiplier fixed to one value?
SpeedStep Supported - Is the power saving technology (both AC and battery modes) supported?
ES - Is this chip an engineering, non public version used for testing purposes?

Microcode Update Signature
A version of microcode update, a binary code loaded by BIOS or 3rd party software to CPU's internal memory to fix errors found after CPU was manufactured.

Data Error Checking
I am not exactly sure what this does and if this can be changed (and on what CPUs).

Response Error Checking
I am not exactly sure what this does and if this can be changed (and on what CPUs).

Address / Request Error Checking
I am not exactly sure what this does and if this can be changed (and on what CPUs).

Fast Strings
This allows the CPU to somehow better manipulate strings. Enabled improves performance but some software may be incompatible with that.

x87 FPU OP-code Compatibility Mode
NetBurst class CPUs violate x87 instruction set (FPU) specification by implementing some performance enhancing features. Enable for better performance, disable to address problems with some programs.

Third-Level Cache
Allows to turn off L3 cache on CPUs implementing it (FosterMP cores and Gallatin cores).

Performance Monitoring
Under normal conditions, the CPU monitors instructions execution for later debug purposes. By disabling this, you may improve performance a bit at the expense of missing failure information report when some program crashes (you do not need that when you are not an assembly programmer, do you?).

Hardware Data Prefetch
This is a technology that loads data into internal caches before they are needed so that when they are needed, they are accessed very quickly. You can turn this mechanism on or off. Systems containing FosterMP (CPUID F11) and Gallatin A0 (CPUID F22) are required to have this set to off because of serious bug Intel wasn't able to fix for two years.

By enabling this, you can get as much as 50 percent improvement in performance in memory intensive applications. In common applications this can result in 0 to 30 percent increase of performance. But please understand that Hardware Data Prefetch requires high-bandwidth RAM memory and large L2 / L3 caches. For Celerons incorporating only 128 kBytes of L2 cache or systems running SDRAM PC133 memory, it may be a good idea to turn this off. On the other hand, turning this off on Pentium 4 with high-bandwidth but high-latency memory, you will get much worse performance because Hardware Data Prefetch is a trade-off : you saturate the FSB and RAM by long sustained data transfers and with that you decrease access latency to those data when required. So if you have low-bandwidth low-latency memory, this may decrease performance.

Adjacent Cache Line Prefetch
This controls whether NetBurst architecture processor should prefetch one cache line (64 bytes) or 2 cache lines (128 bytes). The later takes more time to complete and requires high-bandwidth memory. For example a DDR SDRAM memory has quite high initiation latencies and then 4 or 8 byte burst transfer. That is it must conduct high latency initiation procedure every 4 or 8 bytes transferred. If you transfer more bytes at once, it will take longer and if you do not have dual-channel DDR SDRAM system, it may be too slow to get any performance improvement of it. Also, in multiprocessor systems, the longer the prefetch, the longer the CPU occupies FSB not allowing other CPU to get data for itself. Intel recommends this to be set to 1 line for multiprocessor systems and to 2 lines for regular one CPU desktops. But the result actually depend also on application behavior, RAM memory used and on cache size.

L1 Data Cache Context Mode
On HyperThreading enabled CPUs, there are two logical processors - just like in multiprocessor systems. The difference is that resources like cache and execution units are shared. This allows you to decide whether Level 1 cache should be shared between both logical processors or whether each CPU should be assigned a part of the cache which size is dynamically changed according to requirements. The best settings is application mix dependant.

MONITOR and MWAIT Instructions Support
A Prescott CPU includes support for thread synchronization instructions. This allows to turn that support off until reset.

Limit CPUID Supported Standard Level
CPUID stands for Central Processor Unit Identification. This is the instruction used by programs to detect CPU type and supported features (if the CPU supports instruction sets like MMX, SSE ect.). Intel used standard CPUID instruction level 3 since Pentium III processor. This 3rd level was used for serial number. But because of legal issues, this had to be turned off and totally omitted since Pentium III on Tualatin core. Now Intel introduced in Pentium 4 Prescott CPUs level 4. Some poorly programmed software may be confused by detecting level 4 presence and by the fact level 3 provides no data on modern processors. That may result in such a software to crash. This limits the CPUID to level 3, what may fix compatibility problems with those poorly programmed programs at the expense of new features being not available to advanced CPUID detection applications.

Slow Down When Overheating Protection
Disable - When internal temperature sensor detects CPU is overheating (that is temperature of 75 - 80 degrees Celsius), nothing is done. This setting violates Intel's requirements for processor operating conditions, so warranty is void.

Thermal Monitor 1 - On the same conditions CPU will begin to enforce 50% duty cycle. Performance is decreased to halt but power consumption (and temperature) decreases also. This is sometimes called throttling.

Thermal Monitor 2 - Supported only on Prescott CPUs (but not on socket 478 versions), this mode when overheating changes on the fly frequency according to predefined multiplier and voltage combination. This is slower than Thermal Monitor 1 but also much more efficient in decreasing temperature.

Note: Thermal Monitor 2 is supported only on Prescott CPUs while Disable and Thermal Monitor 1 are supported on all chips.

Overheating Status
Overheat Occured Since Last Check - CPU has a flag in Model Specific Registers that is set when CPU is overheating. Software can clear it. "Yes" means flag is set, that is since last time software cleared the flag, overheating occured. By clicking on New overheat check, you clear the flag, so that status changes to "No" until overheating occurs. The flag is set independently of any software, you can clear it, close CPUMSR, play the game (or whatever), then run CPUMSR again and you get the same results as if you would not close it.

Current Temperature - "Too High" means CPU is overheating now, that is duty cycles or frequency decrease are active now.

On-Demand Clock Modulation
This is like Thermal  Monitor 1 automatic duty cycles, except this is done because of a request. Different ratios result in different performance drops and different decrease of temperature. Under the worst performance settings, it is possible to run some processors with only passive cooling even under full load. The decrease of performance on-demand ensures CPU won't run too fast to heat itself too much.

On HyperThreading enabled CPUs, each logical CPU has this setting unique. Setting it to different values, however, can cause some stability issues in very rare situations. Also, on HyperThreading enabled CPUs, it may not be as effective in decreasing temperature as on single CPU systems. The good advantage of this feature on HyperThreading systems is you can slow down one CPU while the other is running full speed - you can effectively slow down those programs you do not want to steal many of processor's resources.

Important notice for notebook users: I was informed this feature is used by many notebooks with regular desktop Pentium 4 processors or Mobile Pentium 4 processors (that are in fact the same as desktop Pentium 4s because they have the same thermal characteristics - please do not confuse those with Mobile Pentium 4-Ms that have reduced power consumption and are true mobiles). The BIOS, in order to prevent notebook from blowing up due to enormous heat (Pentium 4 and Mobile Pentium 4 consume up to 96W) uses On-Demand Clock Modulation immediately after you run a software that loads the CPU. The effect is that a processor runs at full speed ONLY when idling. So you have a 3 GHz Pentium 4 that runs at 3 GHz only when doing nothing and that when it is loaded runs only at 1.5 GHz. Because the frequency doesn't decrease (two clock ticks are joined inside the CPU to one or so - the number depends on clock modulation ratio), it is hard for end-users to recognize CPU is slowing down. With this test, you can easily recognize this happened and RMA the notebook - do you want what you paid for, don't you?

Thermal Monitor 2 Target
This informs about what is the target multiplier and voltage for Thermal Monitor 2 overheating slow down. Because Intel's documents lack enough information, I am not sure whether this can be changed or not.