Аннотация

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. We propose a systematic methodology for applying these transformations to derive an energy-optimized architecture for any given embedded software. It 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). The effects of the software transformations we consider cross the application-OS boundary (by changing the way in which the application interacts with the OS). Hence, we use an OS-aware energy simulation framework to perform an initial energy profiling, and OS energy macro-models to provide energy change estimates that guide the application of our transformations. 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.

Линки и ресурсы

тэги