Energy-Optimizing Source Code Transformations for OS-driven Embedded Software

  • Authors:
  • Yunsi Fei;Srivaths Ravi;Anand Raghunathan;Niraj K. Jha

  • Affiliations:
  • -;-;-;-

  • Venue:
  • VLSID '04 Proceedings of the 17th International Conference on VLSI Design
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

The increasing software content of battery-powered embedded systemshas fueled much interest in techniques for developing energy-efficientembedded software. Source code transformations have previouslybeen considered for application software to reduce its energyconsumption. For complex embedded software applications, whichconsist of multiple concurrent processes running with the support ofan embedded operating system (OS), it is known that the OS andthe application-OS interaction significantly affect energy consumption.However, source code transformations explicitly targeting these effectshave not been sufficiently studied.This paper proposes novel transformations for the source code ofOS-driven multi-process embedded software programs in order to reducetheir energy consumption. The key features of our optimizationsare that they span process boundaries, and that they minimize the energyconsumed in the execution of OS functions and services - opportunitieswhich are beyond the reach of conventional compiler optimizationsand source code transformation techniques. We propose fourtypes of transformations, namely process-level concurrency management,message vectorization, computation migration and inter-processcommunication mechanism selection. We discuss how to systematicallyidentify opportunities for the proposed transformations and apply themdirectly to the program source code.We have applied the proposed techniques to several multi-processsoftware benchmark programs, and evaluated their applicability in thecontext of an embedded system containing an Intel StrongARM processorand embedded Linux OS. Our techniques achieve up to 37.9%(23.8% on an average) energy reduction compared to highly compiler-optimizedimplementations.