The goal of this project is to leverage heterogeneous hardware to improve the power efficiency of smartphone apps.
As a first step, we target always-on sensing applications. Always-on sensing is used in various scenarios ranging from providing context aware services to monitoring Parkinson patients to encouraging users to be more social and active. However, they are a huge drain on the battery. Our initial study shows that always-on sensing apps only spend a small amount of power for actual work. The remaining energy is wasted in wakeup overhead, since the CPU needs to be active during the sensing process.
In the meanwhile, there is an opportunity in heterogenous hardware. Several commercial phones inlcuding MotoX now embed a microcontroller, that we call a sensor hub, that can collect sensor data while the main processor stays in the sleep state.
To leverage heterogenous hardware, we build MobileHub, a system that seamlessly uses the sensor hub to reduce power consumption of always-on applications by up to 80%. MobileHub requires zero support from the developer, and does not require application source code. More details about our work can be found here. We summarize the goals and approach of MobileHub below.
MobileHub rewrites the binary of a given application to make it more power efficient. Without MobileHub, application developers need to modify their application to run on a heterogenous platform, often dealing with multiple languages and distributed shared memory systems. This is extremely onerous on the developers, and as a result, we rarely see third-party applications using heterogenous hardware capabilities. Instead, we build MobileHub with zero effort from the developer. The main insight that lets us do this is: mobile operating systems only provide a restricted sensor interface. Therefore, sensing is implemented in ways that are not deeply intertwined with application processing. This allows us to partition the sensing portions without greatly modifying the application structure.
The challenge is determine how to offload sensing tasks without delaying or altering the application behavior. MobileHub uses information-flow tracking to learn how applications use sensor data, and then determines the best policy for offloading.
Information flow tracking (or taint tracking) lets us systematically study the flow of information through the program at runtime.
In the process, we built the first taint tracking system for mobile phones that can track both the implicit and explicit flow of sensor data.
The MobileHub architecture is shown in the figure below.
Implementation and Prototyping
We built MobileHub on Android phones and prototyped the sensor hub using a 8-bit Atmel AVR micro-controller. We attached several sensors to the micro-controller. We modified the Android framework to interface between the sensor hub and the application.
Our sensor hub prototype and experimental set up is shown below
We will release the taint tracking tool soon or upon request. For questions or comments, contact Haichen Shen at firstname.lastname@example.org or Aruna Balasubramanian at email@example.com.