Does lowering CPU clock frequency extend battery life?

December 17, 2012 By | Add a Comment

Summary

  • Forcing low CPU clock frequency reduces power consumption of your laptop, but as it makes programs to run longer time to complete the same amount of work, it can be less energy efficient. In other words, you may be able to accomplish less work with the same battery charge. It is not recommended to limit CPU clock frequency to the lowest for the sake of battery life.

  • There are some exceptions in which limiting CPU clock frequency can be beneficial:
    • When you want to reduce the heat and fan noise from your laptop
    • When you run a real-time high CPU utilization programs (e.g. games) and you can tolerate the quality degratation

What is CPU dynamic frequency scaling (aka. Intel SpeedStep, AMD PowerNow!) ?

To support wide range of workloads efficiently, most of the modern CPUs are capable of changing their clock frequency dynamically. When the CPU is idle, clock frequency is lowered and lower clock frequency allows power supply voltage to be lowered as well. Lower voltage helps to reduce CPU power consumption.

If you would like to know more details, please look at the Wikipedia article about SpeedStep

How does CPU dynamic frequency scaling affect power consumption

Note: In order to keep the discussion simple, some details are omitted intentionally.

Power consumption of the CPU with dynamic frequency scaling support (Pcpu) is proportional to the frequency (f) and the square of the voltage (V):

Pcpu ∝ f * V 2 ···· (1)

And, as the voltage required to operate the CPU at given frequency is, roughly speaking, proportional to the frequency, the relationship between frequency and power consumption will be:

Pcpu ∝ f 3 ···· (2)

By increasing the frequency, same amount of work can be finished in shorter time (roughly speaking, inversely to the frequency). Therefore, the relationship between clock frequency and energy needed to complete the given amount of the work (Ecpu) will be:

Ecpu ∝ f 2 ···· (3)

Formula 2 and 3 above show that the power consumption and the energy needed to complete given amount of the work quickly rise as frequency is increased.

Misconception about system-level battery life

So, does this mean that you can get the best battery life with the lowest CPU clock frequency? The answer is not that simple. The formulas above only apply to the circuit with dynamic frequency scaling support. It is only a part of the CPU. The rest of the CPU and the components outside of CPU are usually driven by fixed frequency and voltage. Their power consumption (Pfix) is (almost) not affected by CPU clock frequency:

Pfix ∝ f 0 ···· (4)

The energy (Efix) consumed by to complete the given amount of the work will be:

Efix ∝ f -1 ···· (5)

Meaning this part of the laptop will be less energy efficient by lowering the CPU clock frequency.

By combining Formula 2, 4 and 3, 5 respectively, entire laptop’s power consumption while the work is being processed (Ptotal) and the energy consumed to complete the given amount of the work are:

Figure 1. Relationship between CPU clock frequency and energy consumption
1. CPU clock frequency vs Energy consumption

Ptotal = Kcpu * f 3 + Kfix ···· (6)

Etotal = Kcpu * f 2 + Kfix * f -1 ···· (7)

Figure 1 illustrates the optimal CPU clock frequency can be higher than the lowest frequency. If you limit the frequency to the lowest frequency, you will loose both performance and battery life.

In the past, Microsoft forced the lowest CPU clock frequency for Windows XP Max Battery power scheme, but they realized that it was not the optimal control. Ever since Windows Vista, default setting in the OS is not to limit the CPU clock frequency and let OS and CPU to figure out the optimal control. It is recommend not to override this setting unless you have special reasons.

Special cases where limiting CPU clock frequency makes sense

Although it does not help to improve energy efficiency, limiting CPU clock frequency makes sense in several special cases. One of them is when you are running a program that adjusts CPU demand based on the CPU’s capability. For example, many game programs adjust their video quality based on the computer’s speed to make themselves playable on low performance CPUs. If you limit CPU clock frequency, they will reduce the quality (less FPS, less graphics details, etc.) and if you are willing to sacrifice them for longer battery life, limiting CPU frequency will be a valid way to extend battery life.

Another case is when energy efficiency (maximize the work you can do with given battery charge) is not your first priority. For example, if your priority is to keep your laptop cool or minimize the fan noise, you can achieve them by lowering the CPU clock frequency. It will limit the total power consumption (Formula 6) and you can reduce heat and fan noise.

How Battery Life Maximizer control CPU dynamic frequency scaling

2. Battery Life Maximizer screenshot

As discussed above, if there is a case you may want to limit CPU clock frequency, you will most likely to do it for specific program rather than blanketly controlling system-wide. Battery Life Maximizer provides a way to limit CPU clock frequency based on the running application. You can limit the clock frequency only when specified application (such as the programs that are capable of scaling their load by themselves). Figure 2 shows an example setting for limiting clock frequency for Google Earth.

Once you set this up for the application, Battery Life Maximizere will automatically lower CPU clock frequency when that application uses excessive CPU time. You don’t need to worry about that program to drain your battery any more.

Try Battery Life Maximizer
Learn about Battery Life Maximizer

Filed in: TechBlog | Tags: ,

Please leave your feedback

Trackback URL | RSS Feed for This Entry