Saturday, January 31, 2015

Diagnosing CPU Thermal Throttling

Computer processors are designed to run under specific environmental conditions, including temperature. With an Intel processor, the responsibility for ensuring a processor does not overheat is split between the motherboard and the CPU, and the motherboard constantly monitors CPU temperature by way of a temperature sensor next to the CPU, and alerts the CPU if that temperature exceeds certain threshhold. This is known as a PROCHOT signal. The CPU receives the PROCHOT signal from the motherboard and immediately drops down to it's lowest multiplier. This reduces the speed of the CPU, causing it run cooler. With an AMD processor, this is all handled by the motherboard, which forces a lower clock on the CPU.
It may not be apparent that your processor is having overheating problems. As mentioned above, the system is always ready to compensate by slowing down the CPU. If you don't perform many processor-intensive tasks, it may not be noticeable. The reason is that once the processor cools down, throttling turns off until the processor is put under stress again.
Where it becomes noticeable is when CPU-intensive programs are run. For most people, this means Netflix. However it could be any HD video playback including YouTube HD and Blu-ray. It could also occur when running distributed computing clients like Folding@Home, doing video editing, or playing 3D games.
In a nutshell, a properly built and working computer should have a CPU that is capable of handling any load thrown at it without overheating and/or triggering the PROCHOT signal from the motherboard. Don't let anyone tell you otherwise.
If you suspect thermal throttling, there are two programs that can be used to test this on Windows. First, you need a program that will push your CPU to the max, like Prime95. Second, you need a program that will display CPU speed in real-time and allow you to block the PROCHOT signal temporarily for testing purposes, like ThrottleStop. It would also be helpful to search online and find the maximum temperature listed for the processor.
Before running tests, go into the Control and into Power Options, which may be in the Hardware category. Drop down the list of extra power modes and choose High Performance. This will ensure that Windows isn't the one bringing down your processor speed. If this is a laptop, make sure it is plugged in.
Run Prime95 and choose Stress Testing, and choose the test that is listed as generating maximum heat (sometimes they change around which test is good for what between versions). Once the test is running, open ThrottleStop. At the top right of the main ThrottleStop window, the processor speed will be given, as well as the multiplier and frequency. The processor speed should not drop lower than 10% of the rated speed for the processor. It may go over if the processor supports Turbo Boost. The processor model and type are also listed so you can search online to find out what the rated speed is if you aren't sure.
If the processor dips farther than 10% below the rated speed you likely have thermal throttling. To be certain, uncheck the box that says "BD PROCHOT". IMPORTANT: ONLY LEAVE THIS BOX UNCHECKED LONG ENOUGH TO OBSERVE WHETHER IT SOLVES THE PROBLEM, THEN TURN IT BACK ON. Unchecking this box basically "muzzles" the motherboard PROCHOT signal and leaves the CPU blind as to how hot it is running. Any overheating can potentially damage the CPU and/or motherboard, so this is all at your own risk.
(If you have an AMD processor, you won't have the capability to disable this. You'll have to diagnose based on throttling patterns alone.)
Assuming that disabling the PROCHOT signal solves the problem, you need to correct the issue(s) causing the processor to overheat. Consider the CPU fan and heatsink, as well as the case fans. If the room the computer is in is uncomfortably hot that might also be an issue. But probably the most common culprit would be dust bunnies inside the computer. You'll need to blow out the internals with air.
If you've eliminated dust as the issue and the problem remains, consider case temperature, unless it is a laptop. Any desktop computer should have these fans: a fan on the CPU heatsink, a fan on the back of the case, and the fan inside the power supply. Are the fans fighting each other, especially if you have more than these three fans?
If it's not dust and the case temperature is fine, remove the heatsink/fan from the CPU, and clean off and replace the thermal paste. Then remount the heatsink/fan.
If all of the above fails to correct the problem, consider a more robust heatsink/fan for your CPU. If you are overclocking, maybe also consider water cooling.
I should also mention that it is entirely possible that the motherboard temperature sensors are bad. If you suspect this, try a BIOS upgrade first, if available.
I know all of this because I had a problem with this on a laptop. It all started with Netflix HD movies not playing right. I went through all kinds of drivers and software and BIOS updates before realizing my problem was CPU thermal throttling. It's been a long road. The laptop is under an extended warranty and the repair tech barely understood what I was talking about. I would hazard a guess that a not insignificant number of professional PC technicians don't even really understand the issue of thermal throttling. Hopefully this post will be a help.

No comments: