CPU temp very hot in BIOS but okay in RealTemp/Speedfan

bioscpuintel-core-i7motherboard

I just built myself a new i7 2600k system with an Intel DP67BA motherboard. Booted into BIOS and was alarmed to find Processor temp reported at 75 C, and steadily rising… sat there while it rose to 91 C. Updated BIOS… same thing. Removed the heat sink, removed stock thermal compound and applied Arctic Silver 5 (carefully following all instructions form Arctic Silver's website). Booted into BIOS… same thing. Temps seemed even a bit hotter.

Decided to go ahead and install Windows anyway, and see what RealTemp/Speedfan had to say. Install successful, ran RealTemp, and it's telling me my core temps are sitting at 36 C. Same thing in Speedfan. Ran a stress test in Prime 95, and temps did indeed rise, up to 90 C. But obviously they couldn't have been at 90 C to begin with, then.

90 C under load is obviously quite high, but I'm sitting in the desert with no AC, with room temperature sitting around 30 C, so 90 under load (with Turbo Boost doing some automatic overclocking, I assume) doesn't really surprise me that much (though it's still high). It's the BIOS temp that had me really worried, and still concerns me.

So… what should I make of all this? Doing a little research online seems to indicate that cpu load in BIOS can range from 80-100% depending on the mobo, which surprised me (I thought the cpu would be sitting close to idle in BIOS). Do Intel's boards run CPUs at 100% in BIOS? If that's the case, then I guess that would explain the high temps corresponding on the RealTemp temps under Prime 95 stress…

Anyway, any advise/help/thoughts/recommendations are much appreciated. Need to decide whether everything's A-Okay (based on the RealTemp findings, basically), or whether I need to replace my cpu and/or mobo. I'm leaning towards thinking that the BIOS is just screwy, running the CPU on full load… but perhaps that's a bad conclusion?

Best Answer

cpu load in bios can range from 80-100% depending on the mobo, which surprised me (I thought the cpu would be sitting close to idle in Bios

This is easily explainable. If you boot into DOS, you will also see the temperature rise. Why? Because back in the days that DOS and BIOSes were first written, overheating was not really a problem, so there was no need to idle the CPU. (Like Hennes said, it is somewhat lazy because one would think that BIOS developers would be writing them properly these days, but I suppose that it is hard to justify re-writing the whole thing from scratch when they can just modify the existing one.)

What this means is that the BIOS (basically just a program), like programs running DOS mode, just runs in an infinite loop to accept user input. Again, this was not a problem way back when, but with more modern systems, it can cause the CPU to heat up unnecessarily.

If you run DOS in a virtual machine, the CPU of the host system will shoot up to ~100% (at least for the core the VM is running on if there are more than one). That is why you are advised to run a little program called idle.com in your DOS VMs. It first came with VirtualPC, but has since spread for use by anyone using DOS in a VM. In fact, some even use it to keep their CPU idle while booting into actual DOS (though whether that works remains open to debate until someone can get around to disassembling it to see how it works—hmm, new project!)

So what does this have to do with you? Well like I said, the BIOS is no different. It has no idle loop to send HALT instructions to the CPU to keep it from overheating; it too runs in a simple, basic, infinite loop (e.g., while done=0 {readkeyboard ... if key=q then done=1})

Therefore, while you are in the BIOS (or even in the pre-boot sequence), the CPU can indeed heat up. This is confined by the fact that your BIOS temperatures were high, but less than a full CPU load. (The BIOS is a simple, single-threaded program, so only a single core gets blasted to 100%. I suppose this could be considered lazy, but then again, it's not like there would be any benefit to updating it to be multi-threaded.)

Because of this, it is advisable to spend as little time in the BIOS as possible if heat is a problem (e.g., when you are in the middle of the desert). Also, try not to pause during the pre-boot sequence. The fast that you can get an operating system up and running (and sending HALT instructions to the CPU), the better.

If you connect your system to a power-meter like the Kill-a-Watt, you can observe this numerically as the system will draw significantly more power while in the BIOS editor or DOS, paused POST, or even the OS boot-menu. However, when a power-aware OS loads, the power usage drops (in fact, even running idle.com in DOS will drop it to the same amount). The specific difference will vary, but 30-50W is not uncommon.

Another way you can see this in action is with a virtual machine. If you pause the VM at the POST or enter the BIOS configuration tool, you will see the CPU load on the host being high (100% on a single-core processor, 50% on a dual-core/threaded, etc.) If you boot into DOS in the VM, the host’s CPU load remains high until you execute idle.com, at which point, it drops to ~0%. It also drops when you boot the guest into Windows or other modern OS.

Related Question