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.
The fan is doing it's job by brining down and stabailizing, but the temps seem high. The hard part is that you may not get an accurate read from third party temp monitors.
As this is a custom built rig, there are a few things you should review and wipe off the list of potential culprates (if in fact the temps run this hot):
- Check that the heat sink is attached properly (all corners are down and attached to the board).
- Check for BIOS update. Could be a fan/temp/CPU update for your board.
- Thermal grease - you used not too much and not too little?
- Be sure case is clean and heat sink free of dust.
The cpu may be running hot but it is under load and is not shutting down the system. That is the true sign of overheating and protection will kick in one the thermal limit has been reached.
Intel also has a processor diagnotic tool that could be useful.
Also a reaffiming note from communities.intel.com
Anything from the Tcase and below will be the expected temperature of the processor in normal use, anything that doesn't stress out the processor (watching movies, burning CDs, browsing the internet, creating documents, etc.) When the processor is stressed out meaning that you are running heavy processor applications that take control of the CPU or uses it at 100% the temperature will go beyond the Tcase. It can perfectly reach 90 to 95 degrees and the processor will still be OK. The cooling fan is in charge to keep that temperature there.
If the processor temperature reaches 100°C or more it will send a signal to the motherboard to shut down to prevent mayor damages and most likely it won't be possible to turn the computer back in until it cools down.
Best Answer
Heat moves when there is a temperature difference. Usually the amount of heat moving is proportional to the temperature difference. The 100 degrees measured is inside the CPU. That may very well correspond to 50 degrees ambient (and thus a 50 degree difference) if there's a large heat production.
A better cooler removes more heat for the same temperature difference, or alternatively the same amount of heat with a lower temperature difference. For instance, a cooler that's twice as efficient would cut the difference to 25 degrees, so it would keep your CPU at 50+25 = 75 degrees.