With the widespread diffusion of processor-based embedded systems, software becomes a key factor to determine overall system quality. Although energy-awareness has been a topic for quite some time, existing approaches are either targeted at the infrastructure/environment (hardware, protocols) or late phases of software development (e.g., compiler technology). The goal of the IMENCO project is to enable energy awareness and optimization for software systems already at the architecture and/or design phases as well as at runtime.
IMENCO will establish an understanding of the relationship between software characteristics and the associated energy consumption observed. The next step is then to establish means for predicting the energy consumption caused by a software system based on its architecture and design artifacts. Prediction is then seamlessly integrated into the development process and tools, and is used to identify ‘weak spots’. To improve identified weaknesses IMENCO will then define means such as patterns, anti-patterns, idioms, and energy saving strategies. The final goal is to establish a systematic means for ‘low power by construction’. All of these steps will be supported by IMENCO’s energy management tools.
The following figure represents an overview of the envisioned IMENCO approach. The IMENCO core consists of the Energy Management Component (EMC) kernel that provides low-level access to the underlying hardware. The EMC core can be specialized based on a specific hardware/embedded platform with corresponding analysis and prediction tools that provides services to the top layers. The core can be further represented using a model-based approach for high-level static adaptation techniques like refactoring and aspect weaving. Formal verifications techniques will be used to verify the correctness of the model-based approach that is applicable to embedded microcontroller-based systems [Bunse 2008b]. Aspect weaving and refactoring tools will support weaving functional and non-functional properties into the system for static adaptation. Dynamic or run-time adaptation of IMENCO will rely upon user profiling and resource substitution strategies. User profiling allows users to decide which quality-of-service the system has to provide (e.g., Performance is more important than energy saving). Resource substitution interchange resources (e.g., memory, processing power, etc.) of a system to save energy (e.g., sending a task to a remote server requires less energy for complex tasks than executing it locally).