Why does reducing CPU frequency improve battery life?
Solution 1
Actually generally these days lowering the frequency doesnt save battery power.
It used to do this because the relationship between power and speed is not linear. Running at 50% speed does not mean it only takes 50% as much power. The curve generally tends to be exponential in nature, so you might save 20% power by lowering the speed to 90%, but going down to 80% might only increase the power savings to 30%, and 50% speed might save only 35% power. Thus, if you run at 90% speed, it might take you 10% longer to do a task, but that is more than made up for by the 20% power savings. Trying to run at 50% speed though ends up costing you more energy since you spend twice as long but only save 35% ( 2 x 0.65 = 1.3x the energy ).
These days though, processors have deep sleep states they can automatically enter when idle, during which their power consumption drops to zero. That makes it better to hurry up and get the work done, so it can go back to sleep. For example, spending 1 time unit at 50% speed would cost 0.65 energy units, but spending 0.5 time at 100% speed and the other half sleeping costs only 0.5 energy.
The exception to these circumstances is if you have a stupid application that likes to waste all of the cpu time it can get, without really getting anything done. If that is the case, then you can save a lot of power by manually dropping the frequency since it saves power, and does not take more time to finish the task.
Solution 2
It would seem that should be the case, but it isn't. Ultimately it's not about the power the CPU uses over time. It's about the power being used per task, or efficiency.
Let's say you have two people who need to run to the store that's a mile away. One decides to walk, and the other decides to run. Running takes more energy than walking, but you get there faster. Yet if you look at both people when they arrive the runner is much more exhausted. That's because the runner used proportionally more energy than the walker to do the same job. The walker was more efficient with their energy.
CPU's work in the same way. You can think of it in terms of how much power is used per cycle. A CPU running in a low power mode will take longer to perform a task but it is using less power per cycle to accomplish the same job.
Related videos on Youtube
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Admin
Updated on September 18, 2022Comments
-
Admin almost 2 years
Shouldn't we have roughly the same battery life regardless of the frequency since the higher the frequency is, the faster tasks will complete so in the end the CPU, despite running at a higher frequency is less used than if it was running at a lower frequency ?
-
Ramhound over 9 yearsIts about the amount of power. When a CPU is running at a lower frequency than the base block its using less power and when a CPU is running at a higher frequency than the base clock its using more power.
-
Psycogeek over 9 yearsWhat is the CPU? the new intel CPUs even lower the voltage when running at a lower frequency. Lower voltage is less total wattage, and lower potential energy, is less general current flow, the whole combination of less work being done, lower voltage and lower current, slowly doing the same work more efficently
-
-
Ramhound over 9 years
Ultimately it's not about the power the CPU uses, but the efficiency.
- This statement does not make sense given the rest of the answer. -
Alex McKenzie over 9 years@Ramhound I don't see what you mean. The OP was focusing on the power vs time. I was saying that it needs to be thought of as power vs the task being run.
-
Alex McKenzie over 9 yearsI've edited my answer to clarify.
-
Woody over 9 yearsDid you read the question? He asked why battery life was better when you use lower frequency on the CPU, pretty sure my answer explains itself, because at a lower frequency, you're using the fan less, which in turn makes battery life better. Don't really understand what is confusing you?
-
Alex McKenzie over 9 yearsI probably could have worded it better the first time. It's not just about the power used, but how efficiently it's used.
-
Ramhound over 9 yearsYes; I suppose. But processors actually reduce the amount of power they are using in order to over clock or under clock ( at least that's the case with Intel's products )
-
Alex McKenzie over 9 yearsFan usage isn't the core reason that power consumption is better. Some computers/embedded systems don't even have fans.
-
Woody over 9 yearsI didn't mean to imply it was the main reason, or the only reason, just that it was part of the reason why they are better on battery.
-
psusi over 9 yearsThe energy spent removing the heat with the fan is negligible compared to the power spent generating that heat in the first place.
-
Splitframe over 8 yearsI wonder if this is really always the case, because when I watch my consumption I have a base-line consumption of 3 Watts. If I restrict the cpus frequency to 1,5Ghz ( from 3.1 ) I have a consumption of 16W vs 37W at 3.1 Ghz. Now in your example I'd still use the 3W in the 0.5 time units that the cpu is at 0.
-
psusi over 8 years@Splitframe, I assume you mean that the 3 W figure is power consumed by the rest of the system when the cpu is using zero. In that case, yes, the system as a whole will use 3 W but we're only talking about the CPU here so we can compare apples to apples. Restricting it to that, the CPU uses 0 half the time, and 34 W when at full speed for the other half of the time, for an average power of 17 W. So it looks like in your case restricting it does still save a bit of power, assuming that doubling the clock halves the time to finish the work ( which it usually doesn't ). Try 2.6 GHz.
-
Splitframe over 8 yearsI used HWMonitor for the readings, the way I understand it GT is the power consumed by the GPU, IA by the CPU cores and package the whole cpu together? I don't really know. The sensor "Uncore" takes the most with 1.5W. I just want to maximise my battery life and wondered if throttling the CPU really improves that. Anyway the package reads around 3W nearly all the time. The other values are as above. I'll do some testing and maybe add an answer later. Thanks for your comment!