Abstract
A well-established technique for reducing embedded processor power is to leverage rigorous static code analysis to enable application-specific hardware customizations. Energy can be saved by leveraging compile-time information to eliminate certain hardware operations. One such research area reduced branch prediction hardware power by statically extracting application control flow information. However, the applicability of these static techniques has stalled with respect to modern smartphones. These high-performance mobile processors inhabit a unique mobile ecosystem domain space. Rather than an application consisting of a monolithic instruction sequence compiled on the target processor, mobile applications are stored in a centralized marketplace and consist of high-level object-oriented code that dynamically binds with device-specific foundation libraries. While this model helps reduce development time and enables applications to be downloaded and run on a variety of device models and operating system versions, it significantly hinders whole application static analysis and application-specific hardware optimizations. This paper addresses the unique challenges of the mobile ecosystem by enabling on-device application analysis to guide reconfiguration of the branch target buffer. Software and hardware customizations are intelligently combined to greatly reduce power dissipation while maintaining or even improving performance.