release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide

# Rockbox mail archive

From: Jerry Van Baren <gvb.rbx_at_gmail.com>
Date: Sat, 12 Jan 2008 19:46:16 -0500

Catalin Patulea wrote:
> Hey everyone,
>
> I've been pondering a power efficiency tradeoff problem in dual-core
> embedded systems. (This obviously directly stems from the m:robe
> architecture, but the discussion should be fairly general.)
>
> Take a system with two identical cores.
> - One runs at some given clock f_1 and another that runs at f_2,
> different from f_1.
> - I believe (correct me if I'm wrong) that, in general, power
> consumption is proportional to the core frequency. Let the power
> consumptions of the cores be P_1 = k*f_1 and P_2 = k*f_2.
> - Take some task that takes a constant number of instructions to
> execute to completion. Assume that this task, given the requirements
> of the system, may be executed on either core. Then, since the number
> of instruction is constant, the amount of time required for the same
> task on each core is inversely proportional to the clock (with the
> simplifying assumption that these are 1 clocks per instruction
> machines): T_1 = N/f_1 and T_2 = N/f_2.
> - If you consider power to be constant and you integrate over time,
> you end up with the following equations for consumed *energy* for the
> same given task, on each core running at a different frequency:
> E_1 = P_1*T_1 = k*f_1 * N/f_1 = k*N
> E_2 = P_2*T_2 = k*f_2 * N/f_2 = k*N
>
> In other words, all other things being equal, a given task on a given
> machine takes a given constant amount of energy to complete,
> regardless of the clock frequency.
>
> Is this right? This basically means that underclocking brings no
> benefit in terms of energy consumption if the CPU is fully active. In
> fact, if we assume that the machine's idle mode consumes zero power,
> this also means there's no underclocking benefit for not-fully-loaded
> CPUs.
>
> Clearly, though, since underclocking is so commonly accepted as a way
> of reducing power consumption, there must be an explanation. Can
> anyone shed some light?
>
> Ultimately, I would like to use the conclusion of this discussion to
> decide where to place certain code for the m:robe's audio system: in
> the ARM core, or in the (lower-clocked) DSP core. I know that these
> are far from identical architectures, but it's often helpful to
> examine an ideal situation before drawing real conclusions.
>
> Thanks,
>
> Catalin

While power consumption is proportional to clock rate, it doesn't go to
zero when the clock goes to zero - there is always leakage that consumes
power even when the clock is zero. Chip manufacturers strive very, very
hard to minimize the leakage... right now, Intel has a significant
breakthrough on controlling leakage at 45nm that AMD/IBM/Mot/Freescale
are having *major* problems matching.
<http://www.intel.com/technology/magazine/silicon/it01041.pdf>
(note the "running out of atoms" part - amazing).

Nowadays, hardware scales voltage proportional to clock rate: at lower
clock rates, the chip doesn't need as high of voltage to still run, so
the voltage is reduced as well. Since power is proportional to voltage,
reducing voltage reduces power.

While power consumption is proportional to clock rate, it isn't
necessarily *linearly* proportional, especially with hardware that
scales voltage as well as the clocks.

Most clocking-based power control, for instance, with your laptop or a
music player, is to reduce the clock when there isn't anything to do.
Rather than the processor doing "NOP"s (or even a "WAIT" instruction) at
2GHz, it is much more efficient to do "NOP"s at 32KHz (just making up
numbers).

HTH,
gvb