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

# Rockbox mail archive

From: Catalin Patulea <cat_at_vv.carleton.ca>
Date: Sat, 12 Jan 2008 19:09:35 -0500

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