Making mobile storage energy efficient

Flash storage takes power to write - a 20 volt jolt to each cell - but needs almost none to maintain. The real power hog is the inefficient storage software stack that eats 200 times the power required for the hardware.

Given the always-on mobile infrastructure - background updates, instant messages, email, updates, file sync, logging and more - lots of background storage I/O is happening all the time. And it's eating your device's power budget.


In a paper presented at this weeks FAST '14 conference in Silicon Valley, Jing Li and Steven Swanson of UCSD, Anirudh Badam and Ranveer Chandra of Microsoft Research and Qi Zhang and Bruce Worthington of Microsoft explore making mobile storage more energy efficient. They instrumented both RT and Android devices to understand their energy usage.

They then ran both microbenchmarks, measuring random and sequential reads and writes, and application benchmarks for email, file uploads and downloads, playing MP3s and IMs. They focused on activities that occur with the screen off, since displays are a major power consumer when lit.

On Windows RT they found that the OS/CPU/DRAM overhead was between 5 and 200 times the power used by the flash storage itself, depending on how DRAM power use was allocated. File system APIs, the language environment and encryption drove the CPU power consumption during I/O. Full disk encryption - protecting user data - incurred 42 percent of CPU utilization.

On an Android phone, the encryption penalty is even worse: 2.6–5.9x more energy per KB over non-encrypted I/O.

For applications, the team found that on Windows RT, the energy overhead in a managed environment is 12.6–18.3 percent while overhead on Android is between 24.3–102.1 percent. It appears that Android's algorithms are not optimized for application I/O power efficiency.

The authors conclude:

Measurements across a set of storage-intensive microbenchmarks show that storage software may consume as much as 200x more energy than storage hardware on an Android phone and a Windows RT tablet. The two biggest energy consumers are encryption and managed language environments. Energy consumed by storage APIs increases by up to 6.0x when encryption is enabled for security. Managed language storage APIs that provide privacy, and isolation consume 25% more energy compared to their native counterparts.

To increase energy efficiency they suggest moving encryption to a hardware accelerator, restricting encryption use to user data and virtualizing storage hardware would yield significant power efficiency.

The Storage Bits take
Computer systems - including handheld ones - are rotating bundles of bottlenecks and costs. Fix one problem and soon another part of the system is the new problem.

Flash storage fixed the power problem of rotating disks, dramatically improving mobile device appeal. But as we depend on those devices for ever more information, the energy cost of background I/O comes to the fore.

This paper demonstrates the importance of system-level thinking to maximize measures of goodness. As storage power requirements continue to decrease, other elements will become more important to create attractive and long-life mobile devices.

Comments welcome, as always. Are you surprised that Windows RT fared better on I/O energy overhead than Android? BTW, the paper - On the Energy Overhead of Mobile Storage Systemsis now available online.