Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Can anyone explain how Windows effectively limits the CPU?

Last time I tried some tricks to let my laptop not overheat, so I tried limiting the CPU to 70%.

As for my suprise it stopped my laptop from overheating - even when launching CPU intensive applications which caused my laptop to overheat and shut down, didn't overheat my laptop anymore!

I looked at task manager but the "CPU intensive" application still uses ~95% of CPU and the windows task manager shows a total of 100% CPU usage.

I have limited the CPU usage here ("plugged in" option was on 70% [both min and max] when testing the CPU intensive application):

enter image description here

How does Windows do this magic?

I see 100% CPU usage yet my CPU does not overheat. And I do not see any performance differences.

Does Windows limit the CPU speed? Like, if I have a 2.4 GHz processor, on 70% it will only have 1.68 GHz when limited? How is this possible (changing the CPU speed)? I thought you can only underclock when in BIOS?

If not, how does Windows accomplish this if not by changing the speed?


Side question: If it's about the speed, is there a way to set the CPU max state to 200% ?

share|improve this question
    
Yes Windows limits the CPU speed. Using ACPI frequency, multipliers and voltage can be changed 'actively' (i.e. when required without needing to manually change in the BIOS). With your above settings watch the frequency actively change in Resource Monitor (rather than just in Task Manager (which only show's the usage of the current processor speed, not the speed). –  HaydnWVN Apr 9 '13 at 10:45

1 Answer 1

its called processor Scaling, and its done for powersaving and thermal considerations. its performed by reducing the clock multiplier on the CPU, and thus reducing its overall frequency (GHz). most processors are 100-166Mhz but the clock rate allows it to perform multiple operations per cycle. my 3.8GHz cpu is actually a 100Mhz with a clock multiplier of x 38.

note that the OS will see the reduced capacity as 100%, so you will still see processes taking 100% CPU; its just 100% of the available CPU, not 100% of the total unscaled capacity.

more info here: http://en.wikipedia.org/wiki/Dynamic_frequency_scaling

Windows accomplishes this via the Advanced Configuration and Power Interface (ACPI) to the BIOS. http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface

also note, windows will still throttle down the frequency when it can, so often you will be running at less than 80% Clock multiplier, but when the OS determines it is useful, it will raise the multiplier to whatever level it believes is appropriate. you may want to reduce the minimum state, just to save some power and wear-n-tear on the CPU.

as for your side question, that is exactly what overclocking does, but of course there are limitations. your bios needs to support it, and the hardware needs to be able to actually function with the altered specs, without burning out or producing an incompatibility with adjacent components (ram speed must be supported by ram, etc). I certainly would never OC hardware I cared about to 200%. I start getting Bluescreens and thermal problems when I add more than 6x to my default 34x system.

share|improve this answer
    
Much more info here on Wikipedia –  HaydnWVN Apr 9 '13 at 10:41
1  
agreed. this is a support forum, not a knowledge base, so stands to reason. –  Frank Thomas Apr 9 '13 at 11:35

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.