Proceedings of the 2004 Asia and South Pacific Design Automation Conference
Energy macromodeling of embedded operating systems
ACM Transactions on Embedded Computing Systems (TECS)
Disk layout optimization for reducing energy consumption
Proceedings of the 19th annual international conference on Supercomputing
Power reduction techniques for microprocessor systems
ACM Computing Surveys (CSUR)
Energy-optimizing source code transformations for operating system-driven embedded software
ACM Transactions on Embedded Computing Systems (TECS)
An energy-aware framework for dynamic software management in mobile computing systems
ACM Transactions on Embedded Computing Systems (TECS)
Heterogeneous real-time embedded software optimization considering hardware platform
Proceedings of the 2009 ACM symposium on Applied Computing
Energy-Efficient Cluster Computing via Accurate Workload Characterization
CCGRID '09 Proceedings of the 2009 9th IEEE/ACM International Symposium on Cluster Computing and the Grid
SOFSEM'11 Proceedings of the 37th international conference on Current trends in theory and practice of computer science
A Green Computing Based Architecture Comparison and Analysis
GREENCOM-CPSCOM '10 Proceedings of the 2010 IEEE/ACM Int'l Conference on Green Computing and Communications & Int'l Conference on Cyber, Physical and Social Computing
Research directions for embedded operating systems
ICESS'04 Proceedings of the First international conference on Embedded Software and Systems
Hi-index | 0.00 |
Previous work on software optimization for low energy has focussed on instruction-level optimizations and compiler techniques. We argue, and demonstrate, that significant energy saviings 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.