340 likes | 449 Views
Power Considerations in Mobile Devices. Discussing two Papers. Every Joule is Precious: The Case for Revisiting Operating System Design for Energy Efficiency, Vahadat et al, 2000 Software Strategies for Portable Computer Energy Management, Lorch and Smith, 1998
E N D
Discussing two Papers • Every Joule is Precious: The Case for Revisiting Operating System Design for Energy Efficiency, Vahadat et al, 2000 • Software Strategies for Portable Computer Energy Management, Lorch and Smith, 1998 • Both these papers are high level “position” papers discussing approaches/opportunities for energy management
Battery power as a managed resource • Little change in basic technology • store energy using a chemical reaction • Battery capacity doubles every 10 years • Energy density/size, safe handling are limiting factor • Other: Li Ion 0.16, NiCad 0.05, NiMH 0.07 • Other factors: energy/size, energy/$, recharge cycles, operating conditions, recharge time...
Energy Management Opportunities Energy consumed = time * power • Application: Can reduce consumption by changing the application demands and allowing lower modes to be used • OS: The OS can reduce energy consumption by reducing the time spent in high energy consumption states • HW: Hardware can reduce energy consumption by reducing the power consumed by high energy consumption states
Hardware advances • Lower power CPUs • disable idle units in CPU to save power • e.g. transmeta crusoe chip • Architecture group at BU • lower clock frequency to conserve battery • e.g. intel speedstep • Lower voltage levels • Displays • active matrix LCD • reflective displays (uses ambient light for lighting) • Memory • RAMBUS RDRAM provides various power modes • Batteries not constant source of power • pulsed mode is better
Discussion • Is it better if my computer consumes energy at a slower rate? • Rate of consumption of energy, or total energy consumed? • Balance between power and responsiveness?
Categories of Energy Related Software Problems (Lorch) “Hardware features not enough – need software that takes advantage of them” • Transition: when should a component switch between modes? • Load-change: how can a component’s functionality be modified so it can be put in low-power modes more often • Adaptation: how can software permit novel, power-saving uses of components • For each component, how do we come up with such policies? • Who controls? End-to-end principle?
Disk Characteristics • Five power modes • Active: seek, read, write on • Idle: no seek, read or write, but motor spinning platter • Standby: only controller is on • Sleep: interface is off, cache off, but can detect reset signal/new requests • Off
Battery power - disk • Problem: • disk spinup,seek/flash memory erase costs (power values for IBM travelstar) • Predictive spin-ups • Caching/prefetching
Policies for Disks • Transition strategies: mostly, when to go to sleep, standby or off modes • Sleep mode most common strategies • Less power than standby • Standby relatively new • Transition cost is similar (spin-up dominates) • Fixed inactivity threshold • 1—10 seconds works well • But user delay increased (8—30 sec per hour) • Stop – start behavior shortens disk lifetime • Dynamic threshold and Access prediction have also been tried
Load change disk policies • Can we change the disk’s workload? • Increase disk memory cache • Up to 50% savings in power by increasing cache size (if the cache size was small) • Increase dirty block timeout value • Also 50% gain going from 0 to 30s • Prefetching (in conjunction with spin down?) • Similar to hoarding/disconnected operation in CODA • Reducing paging activity
Adaptation Strategies • Several discussed, for example: • Use wireless network as a disk • Disk can be on plugged in server that is fast and power hungry • Client gets data over the network instead of paying for the disk cost • Remember broadcast disks? • What do you think of this idea? • Discussion
Also, Flash RAM is used • Non-volatile memory that does not consume energy while storage • Energy consumed when reading/writing 0.15—0.47 Watt; much better than disk • Speed of reading 85ns (close to DRAM), but for writing it is 4-10 micro second per bytes (much slower than disk) • Cannot erase a byte: full segment at a time -- expensive (time, power). Also, can only erase a limited number of times before it breaks • Cost is high
Processor • Power = C V2f (C=capacitance, V=voltage, f=frequency) • Lower power can be obtained by: • Reducing V or f (but there are limitations) • Turning off portions that are not in use • Resizing some portions (e.g., register file) • Using less power hungry architectures • Turn the CPU off… • Transition strategies: when to turn CPU off? When to change speed/voltage? When to resize components?
Load change approaches • Can we change the load demands of processes on the CPU? • Reducing times taken by tasks • Using low power instructions • Reducing the number of tasks • Energy aware OS and compiler • Eliminating “busy waiting” to enable more transitioning to standby state
Battery power - memory • power aware memory hierarchy - e.g. Rambus (power values for 128 Mb PC800 RDRAM) • each chip can be put into different power modes • Initial page placement, power transition, page migration
Battery power - network • Transmit, listen, idle costs (power values for Lucent wavelan 2 Mbps) • Power consumed when device is active • Receiver does not know when sender has data to be sent - continuous wait is expensive • Transmission power often constant
Display and Backlight • Major consumers of power, but.. • Few energy saving features: • Reduce backlight intensity • Turn display off • Reduce refresh rate (reduces colors…) • Can think of transition strategies along these lines • What about load change strategies?
Discussion • Common theme: need external control of mode transitions • Agree with Vahadat about importance of OS support for power as a first class commodity
Battery power – application level • Application aware adaptation to manage high power energy states • Managing the power states in a palm • Managing battery in a digital camera using image transcoding • Application level adaptation to manage energy • Client/server computation split
Hypothesis: OS should manage power • Typical Operating Systems are designed to hide latency (caching), fairly share resources (CPU, memory, network, etc.) • What about power? If two processes are runnable and one is expected to consume more power, which do you run? • Do you run cleanup daemon when the battery power is low?
Third paper • Quantifying the Energy Consumption of a Pocket Computer and a Java Virtual Machine • Keith Farkas (DEC WRL), Jason Flinn (CMU), Godmar Back (Univ. of Utah), Dirk Grunwald (Univ of Colo. Boulder), Jennifer Anderson (Vmware) Energy consumed (Joules) = time * power consumed (Watts)
Goals • Energy usage characteristics of the Itsy • Itsy is a prototype PDA built at DEC (Compaq) SRC • 200 MHz StrongARM SA-1100 microprocessor • 320x200, 0.18mm, 15 level gray scale display • Touchscreen, microphone, speaker, serial and irda • 64MB RAM, 32MB flash • 2 AAA battery • Precursor to the iPAQ
Itsy battery power tricks • Can change the CPU clock to 206 MHz, 133 MHz and 59 MHz) • It can scale the voltage to 1.5V and 1.23V • 30 minutes in high power mode • 2 hours in high power “Idle” mode • 18 hours in low power (59 MHz) Idle mode
Comparison between Itsy and laptop • Compared Thinkpad (233 Mhz, 64 MB) and Itsy • Laptops consume a lot more overall power • Itsy allows more power states • Certain subsystems have lot higher relative power costs (because other systems consume less power) • E.g. on a laptop • 68% - display, 20% - disk, 12% CPU and memory • Itsy consumes less for display, but adding a backlight has a much higher relative cost • Memory subsystem has impact on Itsy
JVM • Java Virtual machine • Interesting to look at Java on a PDA because it is simpler to expect apps to be downloaded to the PDA than expect them to be installed all the time • Looked at the power characteristics of: • Single JVM vs multiple JVM • Compressed vs Uncompressed class files • Class loading vs JIT compilation • Cache flushing after code generation
Results • Single JVM less power than multiple JVM • Reliability issues • Compressed vs uncompressed class files: not much difference • Class loading vs JIT Compilation • Preloading works, but have to be careful on what to preload • Cache flushing after code generation • Little impact; only 16 KB I and 8KB D cache • Interpreting and JIT • JIT has dramatic gain; maybe because of KAFFE for JVM • AWT polling frequency – slight difference
Discussion • Power consumption has to be investigated closely for each underlying architecture • There are few “generic” tricks for every hardware • What is the view point of the three different papers? How are they related to each other?