1. Power Management beyond the CPU
Amit Kucheria
Power Management Working Group
Linaro Connect, Hong Kong
1st
June 2012
2. The power guzzlers...
Internet Phone
Video streaming
Angry birds
GPS navigation
0
100
200
300
400
500
600
700
800
900
GPS
Audio
Wifi
Display
CPU
Use case
Powerconsumption(mW)
3. Concepts: quick overview
●
Clock trees [clock framework]
●
Power supplies [regulator framework]
●
Idle management [cpuidle framework]
●
Active CPU power/performance management
[cpufreq framework]
●
Active device power/performance management
[devfreq framework]
●
Dynamic device power management [runtime PM
framework]
●
Constraints [pm-qos framework]
8. mp3 playback: SW optimisations
Entire file read into main memory
●
Run ARM cores at low frequency [cpufreq]
●
Turn off MMC [runtime pm hooks in mmc driver]
●
What is turned off?
●
Clocks immediately
●
Regulators turned off lazily
●
Ensure system doesn't idle too long [cpuidle]
●
Register a latency constraint [pm-qos]
9. mp3 playback: SW optimisations
Decode mp3 to PCM
●
Decoded samples in main memory
●
Turn off ARM core, no more processing necessary
[cpuidle]
●
Peripherals may still be awake
10. mp3 playback: SW optimisations
DMA from main memory to some FIFO
●
e.g. FIFO on audio codec or some buffered serial port
●
RAM can be put in self-refresh
●
FIFO is large (few 100ms)
11. mp3 playback: SW optimisations
Buffer drives Codec while entire SoC is in very
low-power state
●
Timer wakes up DMA thread just before buffer
runs out
12. Conclusions
●
ARM power consumption is a small component in
a typical usecase
●
Surrounding peripherals need to be power-
managed too
●
Linux has frameworks to help with this
●
Runtime PM
●
PM-QoS
●
devfreq