PoGo: an application-specific adaptive energy minimisation approach for embedded systems
Luis Alfonso Maeda-Nunez, Anup Kumar Das, Rishad Shafik, Geoff V. Merrett, Bashir M. Al‐Hashimi · ePrints Soton (University of Southampton) · 2015
High performance demand coupled with the need for realtime support, have proliferated the widespread use of batteryoperated embedded devices, comprising of one or more processors, across consumer, automotive and commercial applications. System software (such as the operating system) for these devices offers a low-overhead interface to change the CPU voltage and frequency dynamically, satisfying a given performance requirement. This paper proposes PoGo, an approach for energy minimization of embedded systems. Contrary to existing approaches, which are performance requirement-agnostic, PoGo adapts to application-specific performance requirements dynamically, and proactively selects the state that fulfils these requirements while consuming the least power. Proactiveness is achieved by using an Adaptive Exponential Weighted Moving Average (AEWMA) algorithm that adapts to the selected power state. These adaptations are facilitated using a model-free reinforcement learning algorithm. For demonstration purposes PoGo is implemented as a Linux Governor, interfacing with the application and hardware to select an appropriate voltagefrequency control for the executing application. The performance of PoGo is demonstrated on the BeagleBoard-xM, which contains a Texas Instruments’ SoC featuring an ARM Cortex-A8 processor. Experiments conducted with multimedia applications demonstrate that PoGo minimizes energy consumption by up to 30% for dynamic workloads and 60% for static workloads as compared to the existing approaches.