Software architectural transformations: a new approach to low energy embedded software

Previous work on software optimization for low energy has focussed on instruction-level optimizations and compiler techniques. We argue, and demonstrate, that significant energy savings could be "left on the table" if energy is not considered during the design of the software architecture. As a first step towards addressing this gap, we propose a systematic framework for software architectural transformations to reduce energy consumption. We consider software architectural transformations in the context of the multi-process software style driven by an operating system (OS), which is very commonly employed in energy-sensitive embedded systems. Our methodology for applying software architectural transformations consists of: (i) constructing a software architecture graph representation, (ii) deriving initial energy and performance statistics using a detailed energy simulation framework, (iii) constructing sequences of atomic software architectural transformations, guided by energy change estimates derived from high-level energy macro-models, that result in maximal energy reduction, and (iv) generation of program source code to reflect the optimized software architecture. We employ a wide suite of software architectural transformations whose effects span the application-OS boundary, including how the program functionality is structured into architectural components (e.g., application processes, signal handlers, and device drivers), and connectors between them (inter- component synchronization and communication mechanisms). We present experimental results on several multi-process embedded software programs, in the context of an embedded system that features the Intel StrongARM processor and the embedded Linux OS. The presented results clearly underscore the potential of the proposed methodology (up to 66.1% reduction in energy is obtained). In a broader sense, our work demonstrates the impact of considering energy during the earlier stages of the software design process.

[1]  Rick Kazman,et al.  Software architectural transformation , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[2]  Frank Bellosa,et al.  The benefits of event: driven energy accounting in power-sensitive systems , 2000, ACM SIGOPS European Workshop.

[3]  Mei-Hwa Chen,et al.  Software architecture analysis-a case study , 1999, Proceedings. Twenty-Third Annual International Computer Software and Applications Conference (Cat. No.99CB37032).

[4]  Niraj K. Jha,et al.  Embedded operating system energy analysis and macro-modeling , 2002, Proceedings. IEEE International Conference on Computer Design: VLSI in Computers and Processors.

[5]  Niraj K. Jha,et al.  EMSIM: an energy simulation framework for an embedded operating system , 2002, 2002 IEEE International Symposium on Circuits and Systems. Proceedings (Cat. No.02CH37353).

[6]  Jason Flinn,et al.  Energy-aware adaptation for mobile applications , 1999, SOSP.

[7]  Amin Vahdat,et al.  Every joule is precious: the case for revisiting operating system design for energy efficiency , 2000, ACM SIGOPS European Workshop.

[8]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[9]  Luca Benini,et al.  Operating-system directed power reduction , 2000, ISLPED '00.

[10]  Francesco Curatelli,et al.  Software synthesis for real-time information processing systems , 1995, Code Generation for Embedded Processors.

[11]  Massoud Pedram,et al.  Low power design methodologies , 1996 .

[12]  Jason Flinn,et al.  Quantifying the energy consumption of a pocket computer and a Java virtual machine , 2000, SIGMETRICS '00.

[13]  Alan Jay Smith,et al.  Software strategies for portable computer energy management , 1998, IEEE Wirel. Commun..

[14]  Niraj K. Jha,et al.  A simulation framework for energy-consumption analysis of OS-driven embedded applications , 2003, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..