Open side-bar Menu
 Embedded Software
Colin Walls
Colin Walls
Colin Walls has over thirty years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, Colin is an embedded software technologist with Mentor … More »

Low power modes

 
August 15th, 2019 by Colin Walls

Power management is a hot topic – or maybe that should read “a cool topic” – among embedded developers of late. In the course of a recent conversation on the subject, I realized that there are, in effect, three kinds of power saving procedure that embedded software might effect:

  1. Use dynamic voltage and frequency scaling [DVFS] to tune the CPU performance to the needs of the moment.
  2. Disable [power down] currently unused peripheral circuitry.
  3. Make use of the CPU's low power modes.

In the conversation, my interlocutor seemed to latch on to (3), which caused me to start thinking about how these modes should be used …

Superficially, it would seem obvious that, if the silicon vendor has provided a processor with low power modes and your design needs to be power efficient, you should make extensive use of them. Right? Well, maybe, but it all depends on the kind of application that you are developing.

Although many CPUs have multiple low-power modes, which have subtle nuances, there are broadly two possibilities [where the terminology is not standardized]:

  • Suspend – The entire system is powered down, except the memory, which is kept alive to retain the data/code. This mode reduces power consumption very substantially.
  • Hibernate – Everything is powered down, including the memory, the contents of which have been saved to flash memory. This mode cuts power consumption to almost zero.

Both of these modes can be very useful, but that usefulness comes at a cost. The nature and impact of that cost depends on the specific application, but it is manifest in two ways:

  • Responsiveness – It takes time to enter/exit these modes. Hibernate is the slower but Suspend requires a finite time. This lag might affect the responsiveness of a device from a user's perspective; this might motivate the user to take steps to avoid the device going into a power saving state and, thus, render much of the power management design redundant. For a hard real time application, a device being in Suspend may result in it being unable to respond to an external event in a timely fashion.
  • Power – Surprisingly, the use of these modes can result in more power being consumed! This can occur if the frequency with which the modes are used is too great. Some code is used to effect the entry/exit and that code execution uses energy. Utilizing these modes for short periods of time is a problem because the power saved while in the mode may not offset that used to enter/exit.

Embedded device power management is a big subject, which I have only scratched the surface of here. Broadly, the best way to approach low power design is to use an operating system that has a power management framework.

Logged in as . Log out »




© 2024 Internet Business Systems, Inc.
670 Aberdeen Way, Milpitas, CA 95035
+1 (408) 882-6554 — Contact Us, or visit our other sites:
TechJobsCafe - Technical Jobs and Resumes EDACafe - Electronic Design Automation GISCafe - Geographical Information Services  MCADCafe - Mechanical Design and Engineering ShareCG - Share Computer Graphic (CG) Animation, 3D Art and 3D Models
  Privacy PolicyAdvertise