Flash storage can be a big power consumer in mobile devices, but it’s not the flash that sucks up all that energy, it’s the software that goes with it, according to researchers from the University of California at San Diego and Microsoft.
Studying built-in storage in an Android smartphone and two Microsoft Surface RT tablets, graduate student Jing Li and his colleagues found that storage consumed more energy than anything else when the devices had their screens off. Though that may not sound important, screen-off time may account for much of the day as consumers carry their devices around. Functions keep running in the background as alerts and other data come down from the network.
Li, who presented the findings Tuesday at the Usenix FAST conference in Santa Clara, California, wasn’t surprised at the power demands of native storage. But he was stunned to discover that almost all of that power was consumed by software rather than the underlying hardware.
The storage devices themselves, in this case eMMC (embedded multimedia card) flash chips, only took up about 1 percent of the energy devoted to storage, the Microsoft team found. The other 99 percent was consumed by elements of the software stack, including the runtime system, the file system and encryption functions.
There are good reasons to include those processes. For example, encryption is vital in mobile devices because they’re especially vulnerable to theft and loss, Li said. But the way encryption is performed in them places a heavy burden on the battery.
“Even though there are some application-specific components inside the mobile device that can help you to deal with encryption, the throughputs of those components are too low to meet the requirements of the storage system,” Li said. “Because of that, the designers of the storage system still decide to use the general-purpose CPU to perform the encryption tasks.”
In one set of tests, the team compared power consumption between devices with and without encryption. It showed that a storage subsystem with encryption claimed more than twice the share of the device’s power consumption compared to one without, Li said.
One reason is that most devices use full-disk encryption even though some of the data, such as OS files, application binaries and some media purchased online, may not need it, he said. As an alternative, the study suggested using a partially encrypted file system. Tools such as Encrypting File System on Windows and GNU Privacy Guard could provide this capability, which would let app developers fine-tune which data gets encrypted and control the energy consumption of an app, Li said. But it would take additional components to fully secure a partially encrypted file system, he said.
Most mobile devices also run apps in secure containers, using managed languages such as Java or the Common Language Runtime, to prevent unauthorized access to sensitive data and contain attacks by malicious apps. The team’s testing showed that this technique increased power consumption by as much as 18 percent on Windows RT and 102 percent on Android.
Device and OS vendors use managed languages and other techniques to isolate data among different apps, Li said. Much of this storage virtualization can be moved into storage hardware by giving each application the illusion of a private file system, he said.
Another way to cut down on power consumption would be to shift the storage tasks now running on CPUs, including encryption and virtualization, onto an SoC (system on a chip) specifically for storage operations, Li said. A challenge there will be to make the SoC’s encryption engine fast enough to keep up with applications’ demands, he said.