Open Kernel Labs Blog

May 14, 2009

Energy management for mobile devices done right

In the past I have repeatedly discussed OK's technology and what's cool about it. It just occurred to me that folks out there might be equally interested in what's coming. Specifically some the kick-ass research that's happening in my group in NICTA, and which will find its way into OK products in the near future. In fact, this research pipeline is one of OK's strongest assets, and something that sets us apart from most others.

One example of such research is energy management. Everyone will understand without further explanation that energy is a scarce and valuable resource for a mobile device, and managing it more effectively translates into increased battery life, and, in the end, a competitive advantage.

The academic literature is full of papers on energy (or power) management. However, a lot of it is, frankly, not worth the paper it's printed on. One of our first steps was to show why. It turns out that much academic research on power is based on simple models which just don't work for modern processors. If people ever bothered to check their theories on a real system (using a wattmeter) they'd see that they are rubbish. That's what we did.

The next step is obviously to come up with something that works. It turns out that this isn't easy: you can't just say that if you reduce the processor's clock frequency by x%, performance will go down by y% and energy use will go down by z%. Reality is that energy use can go up!

There simply doesn't exist a simple formula. The reality is that the energy and performance response to energy-management measures depends on the characteristics of both the hardware and the workload.

So, how do you deal with this?

One observation is that you need to separate the platform (hardware) dependency from the workload (software) dependency. And then you need a model that is general enough to encompass all workloads, and that automatically adapts to workload behaviour.

This is exactly what we did. We developed a scheme that first does an off-line (once and forever) characterisation of the platform (using real power measurements performed with a wattmeter). From this we built a model that uses the processor's performance-monitoring unit to determine, at run-time, the characteristics of the workload (using no extra hardware or external connections, just what comes with the embedded platform). This model then lets not only tells us, with high accuracy (verified with a wattmeter) how much power the system is presently consuming. It also lets us, with high accuracy, predict how performance and power consumption will change if we change the frequency settings.

We also developed a generalised policy that represents a continuum of power-management policies, and allows you to adapt the policy on the fly (e.g. gradually shifting from highest performance to minimum energy as the battery depletes).

One of the nicest thing about the approach is that it maximises gain while minimising pain. By setting an overall energy management for the system, it provides differentiated treatment to programs according to their energy-savings potential: Jobs that have a large energy-savings potential are throttled stronger than those where little can be gained. In one case we saved 30% energy for 1% performance degradation!

Check out the project web site for details about this cool work.

Posted by Gernot Heiser on May 14 at 08:50 AM

blog comments powered by Disqus
Gernot Heiser's avatar

About Gernot Heiser:

Gernot Heiser, Co-founder and Consulting Scientist, never thought he would be in the business world. Prior to NICTA's creation in 2003, Dr Heiser was a full-time faculty member at the University of New South Wales. However, this die-hard academic couldn’t pass up the opportunity to see the commercialization of this research. Gernot still loves teaching, almost as much as he loves good wine and good food. And anyone will tell you that Gernot knows his wine.

Email Gernot Heiser

Ask GernotPermalink

▲ Back to Top