How does windows "limit" the CPU (Power Options / Battery saving)

59,269

This phenomenon is called processor Frequency Scaling, and it is done to address power-savings and thermal considerations. Scaling is performed by reducing the clock multiplier on the CPU, and thus reducing its overall frequency (GHz). Most processors operate at 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 x38. Scaling as you describe it is most common with Laptops, to balance performance with battery life and the systems limited ability to evacuate heat.

Frequency Scaling occurs below the OS, such 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.

Though Scaling occurs at the firmware level, Windows can automatically adjust the the Scale of the CPU based on its current needs, and accomplishes this via the Advanced Configuration and Power Interface (ACPI) to the BIOS/UEFI firmware. Windows will still throttle down the frequency when it can, but when the OS determines it is useful, it will raise the multiplier to whatever level it believes is appropriate. In your case you may want to reduce the minimum state while On-Battery, just to save some power and wear-n-tear on the CPU.

As for your side question, increasing the clock rate on a CPU is exactly what overclocking does, but of course there are limitations. your firmware needs to support the operations, 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:
59,269

Related videos on Youtube

gronostaj
Author by

gronostaj

Updated on September 18, 2022

Comments

  • gronostaj
    gronostaj over 1 year

    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% ?

  • HaydnWVN
    HaydnWVN about 11 years
    Much more info here on Wikipedia
  • Marc.2377
    Marc.2377 over 8 years
    I'm curious, what processor is yours (with a 38x multiplier)?
  • Frank Thomas
    Frank Thomas about 8 years
    @Marc.2377, I believe it is a i7-2600, but I'm away from that box now. ark.intel.com/products/52213/…
  • Jamie Hanrahan
    Jamie Hanrahan over 7 years
    It's not actually done by changing the multiplier. It's done by masking off a fraction of the clock cycles.