Low Power Computing
Low Power Computing
Low Power Computing
CCE62461
4
Motivation – why worry about power?
Wearables
More computation
▪ Video decoding
▪ Augmented reality processing
▪ Speech recognition and synthesis
▪ Complex communication protocols
Autonomous units
▪ Sea and ocean technology
▪ Space technology, etc.
Battery capacity and weight limits (10%
improvement per year)
Energy harvesting limits (solar panel, etc.)
5
Energy and Power
6
Power is related to performance
Design Choices
Power issues areas
▪ Display
This hardware is a major power drain. It is essential that the driving software
monitors utilization very carefully and dims or shuts down displays when they
are not in use.
▪ Wireless Peripherals
In almost all cases, the software may turn off the wireless interface when it is
not in use or optimize the transmission power for current circumstances
▪ CPU Utilization
The execution performance of the code may be quite significant – minimizing
the number of instructions that need to be executed to perform a given task,
reduces the number of Watt-Hours required. Low power consumption is closely
related to algorithm performance
▪ Memory
Although it’s unlikely to be a significant factor, memory does consume power,
and minimizing the memory footprint of the software may be desirable.
▪ USB
If the device is a USB peripheral, its software should respond correctly to
requests from the host to shut down or suspend. An embedded system may
also be a USB host, in which case the host software must monitor USB
peripheral utilization and shut down or put to sleep unused devices
General Strategies
• Put the system in low-power modes and/or use low-power modules
as much as possible
• How?
❑ Provide clocks of different frequencies frequency scaling
❑ Turn off clocks when no work to do clock gating
❑ Use interrupts to wake up the CPU, return to sleep when done (another reason
to use interrupts)
❑ Switched on peripherals only when needed
❑ Use low-power integrated peripheral modules in place of software
11
Low-power efficient coding techniques:
▪ Optimize program flow
▪ Use unsigned data types where possible
▪ Avoid floating point operations
▪ Power control in software:
▪ Sleep/suspend
▪ Dynamic voltage and frequency scaling
http://processors.wiki.ti.com/index.php/ULP_Advisor
12
Tips for estimating
battery life accurately
[Beningo engineering]
[http://www.eetimes.com/author.asp?doc_id=1324160] 14
Tips 2: Software Rate Monotonic Analysis (RMA)
15
Tips 3: Chip vendor tools
16
Tips 4: Bench-top experiments
17
Tips 5: Battery life-cycle analysis
18
Measuring power consumption
19
Result example: Current consumption versus time
Rx 288 22.3
Tx 104 29.3
20
Formulas and calculations
Average current during event =
[(State 1 time)*(State 1 current) + (State 2 time)*(State 2 current) + …] / (Total awake time)
Average current =
[(Interval – Total awake time)* (Average sleep current) + (Total awake time)* (Average current during event)] / (Interval)
21
Issues to Discuss
22
Ada Pertanyaan ?