Power Efficient Software Coding,
In a typical handheld/portable embedded system device Battery life is a major concern in design of H/W, S/W and the features the device can support. From the Software programming perspective, one is aware of MIPS, Memory(Data and Program) optimized code.
I am aware of the H/W Deep sleep mode, Standby mode that are used to clock the hardware at lower Cycles or turn of the clock entirel to some unused circutis to save power, but i am looking for some ideas from that point of view:
Wherein my code is running and it needs to keep executing, given this how can I write the code “power” efficiently so as to consume minimum watts?
Are there any special programming constructs, data structures, control structures which i should look at to achieve minimum power consumption for a given functionality.
Are there any s/w high level design considerations which one should keep in mind at time of code structure design, or during low level design to make the code as power efficient(Least power consuming) as possible?
1800 INFORMATIONsaid, avoid polling; subscribe to events and wait for them to happen
- Update window content only when necessary – let the system decide when to redraw it
- When updating window content, ensure your code recreates as little of the invalid region as possible
- With quick code the CPU goes back to deep sleep mode faster and there’s a better chance that such code stays in L1 cache
- Operate on small data at one time so data stays in caches as well
- Ensure that your application doesn’t do any unnecessary action when in background
- Make your software not only power efficient, but also power aware – update graphics less often when on battery, disable animations, less hard drive thrashing
And read some other
Recently a series of posts called started appearing on Intel Software Blogs. May be of some use for x86 developers.
That’s the answer Power Efficient Software Coding, Hope this helps those looking for an answer. Then we suggest to do a search for the next question and find the answer only on our site.
The answers provided above are only to be used to guide the learning process. The questions above are open-ended questions, meaning that many answers are not fixed as above. I hope this article can be useful, Thank you