Yes, I can explain this from viewpoint of some tests I’ve been running.
I’m running a set of experiments where I encode videos under various optimisation choices (such as NEON, GPU offloading and different algorithms). I also run the encoding under different frequency scaling governors.
When I use the performance governor, the encoding process can take as little as 6 seconds. However, under powersave, the frequency is scaled down, making the runtime very long (several minutes). If you consider only the CPU’s energy consumption, then yes, you may save energy under the powersave governor contra the others such as “performance”. However, the long runtime makes the whole platform consume more energy in total.
For example, let’s say the board has an idle draw of 4 W. The CPU has an individual, additional power draw of 10 mW at 2 MHz, and 1 W at 2.0 GHz.
At the lowest CPU frequency, a program takes 10 minutes to run. This translates to a total platform energy consumption of
E = PT = (4 + 0.01) * ((1060)/3600) = 668 mWh.
The “CPU only” additional energy consumption in powersave is 0.01*((10*60)/3600) = 1.60mWh.
For the highest frequency setting, the runtime is 10 s. Total energy consumption is
E = (4 + 1) * (10/3600) = 13mWh - this is much lower than for powersave (668mWh)
The “CPU only” additional energy consumption is 1*(10/3600) = 2mWh. This is a little higher than powersave’s “CPU additional” energy consumption (1.6 mWh).
So, the frequency scaling governor can optimise the consumption of the CPU only, not including additional power from other components. In practice this is true if you have some work you’re waiting on to finish.
In practice these things are more complicated, though, because the CPU power is governed by the infamous “frequency scaling formula”. Core power relies on dynamic power (switching activity in the processor that occurs as a result of program execution) and static power (transistor leakage). These terms again depend on core voltage, number of transistors in the core, core frequency, core utilisation, core voltage and core capacitance. I submitted a poster about this to NVIDIA GPU technology conference this year, hope I get through ;) But this should sum up what I mean. Sorry for the long explanation…