public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* An embedded-Linux power-management framework
@ 2002-08-02 17:28 Robert C. Paulsen Jr.
       [not found] ` <20020802172802.GA32612-o5m52qS82XggC06IV0sn5h2eb7JE58TQ@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Robert C. Paulsen Jr. @ 2002-08-02 17:28 UTC (permalink / raw)
  To: Linux Power Management Development, Linux ACPI Development,
	Linux APMD, CPU Frequency

An embedded-Linux power-management framework
============================================

A dynamic power management framework for Linux is necessary to support the
flexible and aggressive power management policies made possible by the new
class of dynamic voltage- and frequency-scalable embedded processors including
the IBM PowerPC 405LP and the Intel XScale PXA210 and PXA250.

We have recently started work in this and would appreciated feedback on the
direction we are headed, summarized as a set of requirements below. Once
we have a start at a specification and some code we will put everything on
Sourceforge as an Open Source project. Please let us know what you think!

Requirements
============

Since CPU power typically increases as the cube of voltage while CPU frequency
scales linearly with voltage, very significant power savings can be achieved by
selecting the correct operating point for the current application set.  For
example, playing an MP3 with madplay only takes about 30 Mhz of the 405LP CPU.
By running the system at the lowest operating point sufficient to play the MP3
(100 MHz @ 1.0 V) vs. the highest possible operating point (266 MHz @ 1.8 V) an
immediate system power reduction (CPU + memory) of 40% is realized.  Since the
405LP can scale CPU and bus frequencies with an OS overhead in the tens of
microseconds, it also makes sense to scale back the CPU and bus during idle.
The power reduction between idling at 33 MHz and 100 Mhz is about 20% in one
system, and is significant because scaling back the bus frequency also reduces
the SDRAM power.  The low overhead required to do this scaling means we can
achieve these power savings without impacting interrupt response time too much.
Even with more power-hungry applications like MPEG-4 playback, on the 405LP
we've found that voltage- and frequency-scaling the system to a low-power state
during the inter-frame gaps (i.e. 30 times per second) can reduce system power
consumption (extends battery life) by 10%, and has no visible impact on the
video playback.

In addition, devices using these newer processors continue to support the
traditional static power management using sleep, hibernate, (etc.)
power-saving states.

In summary, the requirements for a Linux power-management framework are:

1. Support dynamic power management by taking advantage of the dynamic
   scaling capabilities of new hardware.

2. Support traditional static power management.

3. Both static and dynamic power management need to be supported with a
   Linux-specific, BIOS-independent, architecture-independent design.
   This consolidated design must account for interactions between static
   and dynamic power management.

4. Support embedded systems with uni-processors and symmetric or
   asymmetric multiprocessors.

5. Support pluggable power management policies.  This allows end-users to
   install applications that benefit from unique power policies and
   supports the following requirement.

6. Allow applications to both choose and provide hints to power policies.

Thanks!

  From:
    Hollis Blanchard <hollis-V7BBcbaFuwjMbYB6QlFGEg@public.gmane.org> (IBM) 
    Bishop Brock <bcbrock-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> (IBM) 
    Matthew Locke <mlocke-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org> (MontaVista)
    Mark Orvek <morvek-Igf4POYTYCDQT0dZR+AlfA@public.gmane.org> (MontaVista)
    Robert Paulsen <rpaulsen-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> (IBM)
    Karthick Rajamani <karthick-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> (IBM)

-- 
Robert C. Paulsen, Jr.
robert-J3gkRE/D7QA8RZtLRHdnRF6hYfS7NtTn@public.gmane.org


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 14+ messages in thread
* An embedded-Linux power-management framework
@ 2002-08-03  1:28 Bishop Brock
       [not found] ` <OF94EF243F.A49E95B4-ON86256C09.00716EF4-yJlKWOkj9xhBDgjK7y7TUQ@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Bishop Brock @ 2002-08-03  1:28 UTC (permalink / raw)
  To: alan-qBU/x9rampVanCEyBjwyrvXRex20P6io
  Cc: Linux Power Management Development, Linux ACPI Development,
	Linux APMD, CPU Frequency

>From: Alan Cox <alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
>Subject: Re: [ACPI] An embedded-Linux power-management framework
>Date: 02 Aug 2002 20:11:17 +0100

> Take a look at cpufreq. The processor speed/voltage side is a solved
> problem with working code for x86 and ARM processors including the
> framework to adjust other devices. For example on ARM you have to frob
> with the RAM clocks. Cpufreq deals with it nicely both from user and
> kernel sides

Processor speed and voltage setting are only two dimensions of the problem
for current and future generations of embedded processors.  The PowerPC
405LP supports 6 somewhat independent parameters that affect the power
consumption of the system: Core voltage, CPU frequency, Memory Bus
Frequency,
On-board peripheral bus frequency, External peripheral bus frequency, and
LCD
pixel clock frequency. The next generation of processors will take this
even
further: They will support multiple internal voltage planes, asymmetric
multiprocessing (cf. TI OMAP architecture) with independent voltage control
and clocking, and advanced clocking schemes to maximize the potential for
dynamic power management.  We will be able to do amazing things with
minuscule amounts of energy, but only if the OS supports the flexibility
inherent in the underlying hardware architectures.

We are proposing a scalable solution that naturally extends the
capabilities of cpufreq. We encapsulate all of the mutually constrained
physical and abstract parameters of a power management policy into
a system-dependent object called an "operating point", and propose
standard ways to manipulate operating points and sets of operating points.
This mechanism will be integrated with the device model in such a way
that as devices come on and off line, the optimum operating point is always
available.

We also add another dimension not present in the current solution, i.e.,
kernel control of dynamic power management at critical points in the
OS, particularly the entry and exit of the idle (halt) state, consistent
with policies defined in advance.  As we noted in the original posting,
significant system-wide energy savings are possible by rapidly scaling
frequencies during even short idle periods, and only the OS has the
visibility required to actively manage these events.

> In terms of per process settings please read US patent 6,298,448.

> Suggstions on how t work around it are welcomed

The following comments must not be construed as a legal position of
the IBM Corporation, or the legal opinion of any IBM attorney.

We have discussed this patent with our IP attorneys.  Those of
us developing this proposal are operating under the working
assumption that this patent does not preclude us from publishing
our code, and will not preclude anyone from executing our code
on any IBM processors.  However, prior to any release of
code to Open Source, we will go through a legal review process where
these issues will be closed to the satisfaction of IBM and our
Linux Distribution partners.

As an aside, my colleagues and I have doubts about the enforceability
of the patent in any case, due to extensive prior art before the
filing date.


Bishop Brock

IBM Research, Austin Center for Low-Power Computing
11400 Burnet Road    MS/904-6F021
Austin, TX 78758
(512) 838-0149    IBM T/L 678-0149





-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 14+ messages in thread
* An embedded-Linux power-management framework
@ 2002-08-03  2:29 Bishop Brock
       [not found] ` <OF4415334C.6C7486B8-ON86256C0A.00081BB4-yJlKWOkj9xhBDgjK7y7TUQ@public.gmane.org>
  0 siblings, 1 reply; 14+ messages in thread
From: Bishop Brock @ 2002-08-03  2:29 UTC (permalink / raw)
  To: alan-qBU/x9rampVanCEyBjwyrvXRex20P6io
  Cc: Linux Power Management Development, Linux ACPI Development,
	Linux APMD, CPU Frequency

From: Alan Cox <alan-qBU/x9rampVanCEyBjwyrvXRex20P6io@public.gmane.org>
Subject: Re: [ACPI] An embedded-Linux power-management framework
Date: 03 Aug 2002 00:31:10 +0100

On Fri, 2002-08-02 at 19:20, Hollis Blanchard wrote:
>> frequency transitions. The idle task is a great place to lower frequency
>> only, since you're not doing anything anyways (you're not extending the
>> running time of a meaningful task), but you may not want to incur the
>> overhead of a voltage transition every time you come in and out of it.
>>

> The idle task should almost never run on a properly power managed system
> because if we are getting voltage reductions we want to reduce the
> frequency so that we are not quite idle as that saves us more power than
> idling. This is also effectively true for clock only scaling because
> very few of them have a "stopped" mode so their is a ceiling of minimal
> power consumption we want to rest at as much as possible

I assume you're talking about systems with more-or-less continuous
workloads;
the examples most often used in academic research are media players.
You've asserted  the conventional wisdom about dynamic power management
which I challenge
as being 1) system and application dependent, and 2) unachievable.

On the first point, we're concerned with system-wide power management,
which includes the
memory subsystem.  Our processors are so power-efficient today that we burn
more power
in the memory than in the CPU core.  An idle system can greatly reduce
memory power by
reducing the memory clock frequency, and/or self-refreshing all or part of
the memory.  Depending
on the application and system design, it may be more power-efficient to
finish the application
quickly and power down the memory, rather than trying to extend the run
time of the application
to just meet a deadline, which requires continuously running the memory at
high frequencies.

On the second point, we all dream of finding just the right operating point
that allows our
media applications to finish just in time with minimum energy, but are
always disappointed.
Power states are quantized, first by the data sheet of the processor which
will list at most a few
fully characterized voltage operating points, and second by the clocking
subsystems which will
limit the range of allowable frequency scaling.  Due to normal variations
in media workloads,
a power management policy that tries to guarantee high fidelity in the
playback will naturally
need to include a provision for headroom in the selection of the operating
point.  These
three factors: workload variability, a fixed list of operating points and a
conservative
power management policy lead to slack, i.e., idle time.  Our proposal
allows the system to
capture the slack by aggressively idling the processor for short periods,
e.g., between video
frames, without any effect on the application, and with significant energy
reduction.

Bishop Brock

IBM Research, Austin Center for Low-Power Computing
11400 Burnet Road    MS/904-6F021
Austin, TX 78758
(512) 838-0149    IBM T/L 678-0149





-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 14+ messages in thread
[parent not found: <3D4BEDA4.4030908-Pn2JTpibVOrk1uMJSBkQmQ@public.gmane.org>]

end of thread, other threads:[~2002-08-06 14:55 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-08-02 17:28 An embedded-Linux power-management framework Robert C. Paulsen Jr.
     [not found] ` <20020802172802.GA32612-o5m52qS82XggC06IV0sn5h2eb7JE58TQ@public.gmane.org>
2002-08-02 19:11   ` Alan Cox
     [not found]     ` <1028315477.18635.113.camel-MMxVpc8zpTQVh3rx8e9g/fyykp6/JSeS3vcXtXqGYxw@public.gmane.org>
2002-08-02 18:20       ` Hollis Blanchard
     [not found]         ` <1028312475.23390.63.camel-j9xLUTenKzJXsEFxtoW7CMxtgHpCUUYS@public.gmane.org>
2002-08-02 23:29           ` Alan Cox
2002-08-03  0:48             ` Johnathan Hicks
     [not found]               ` <3D4B284F.20402-Pn2JTpibVOrk1uMJSBkQmQ@public.gmane.org>
2002-08-03 13:47                 ` Alan Cox
2002-08-03 14:50                   ` Johnathan Hicks
2002-08-02 23:31           ` Alan Cox
2002-08-03  8:58       ` Pavel Machek
  -- strict thread matches above, loose matches on Subject: below --
2002-08-03  1:28 Bishop Brock
     [not found] ` <OF94EF243F.A49E95B4-ON86256C09.00716EF4-yJlKWOkj9xhBDgjK7y7TUQ@public.gmane.org>
2002-08-03 13:40   ` Alan Cox
2002-08-03  2:29 Bishop Brock
     [not found] ` <OF4415334C.6C7486B8-ON86256C0A.00081BB4-yJlKWOkj9xhBDgjK7y7TUQ@public.gmane.org>
2002-08-03 13:32   ` Alan Cox
     [not found] <3D4BEDA4.4030908-Pn2JTpibVOrk1uMJSBkQmQ@public.gmane.org>
2002-08-06 14:55 ` Alan Cox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox