Optimizing for Power Performance

line

Silicon features in place

There are already many power management solutions built into the silicon of your system, so let’s make sure our software takes advantage of these existing hardware features.

How can we leverage the hardware features?

There are some software techniques to make sure we are using the hardware features. And there are some ways to design software that really decrease power management.
  • Polling Avoid frequent, unnecessary polling

  • Race to Idle Save power by running at the highest speed
    Processors tend to be so good at saving power during idle, that often it's better to go as fast as possible so that you can then be idle longer.

  • Turn devices off Open devices can prevent the system from entering power saving state

  • Group Timers Many programs use times, so group them to reduce idle wakeups.

  • Use large buffers Media playback requires a large buffer, large enough for a minute of audio or 20 minutes of video.

  • Optimize Sleep Duty Cycle It matters how frequently you go in and out of idle. Stay in idle for long periods of time. Avoid interrupting idle as much as possible.

  • Beware of high level languages High level languages are convenient tools to achieve results quickly and often have features to do complex things with minimal effort. However, be aware that some of these contructs are hard to implement and sometimes the runtime environment that implements the high level language does so using polling at a high frequency. When using high level languages such as Java*, Visual C#*, Python*, and Ruby, check the end result and try to avoid some of the more complex threading primitives. In addition, where you have a choice of runtime environment provider, evaluate different alternatives and versions.

 About | ISN | Intel is a trademark of Intel Corporation in the U.S. and other countries. | * Other names / brands may be claimed as the property of others