The ENTRA project runs from October 2012- October 2015 and is organised in 8 work packages. The full project description is available here: ENTRA Technical Annex.
|WP1. Energy-Aware Software Engineering.
April 2014 – Oct 2015.
Energy-aware tools: The concrete outcome of the ENTRA project will consist of prototype tools for energy analysis, verification and optimization. The tools will target the XC language and will be demonstrated on the project case studies.
Energy-aware software development: How will energy transparency affect the conventional software engineering life-cycle when developing energy-efficient software products? The results and experiments of the project will be summarised as recommendations applicable at each of the stages of software development (from design to implementation, deployment and maintenance) obtained by using the modeling, analysis, verification and optimization techniques.
|WP2. Energy Modelling Through the System Layers.
Oct 2012 – April 2015.
Energy modeling (Low level): Instruction Set Architecture (ISA) models are currently being established for the XCore, initially associating instructions with average values. A significant advancement of the state of the art with respect to modeling takes advantage of the fact that formal analysis can also be performed on the basis of cost functions, rather than just cost values. Such cost functions can capture dependencies that influence the energy consumption of an instruction (such as operand values or execution history). The consortium has expertise in formal modeling and verification of designs, including designs of industrial complexity, at different levels of abstraction.
Energy modeling (High level): The modeling of energy usage at higher levels is achieved using semantic mapping techniques on the one hand and dynamic profiling on the other. Explicit interpretive models of higher-level languages and execution models (including parallelism) are used to lift low-level energy models to more abstract structures. LLVM is also being studied as the target of intermediate level energy models that can be mapped to a both higher and lower level models.
Common Assertion Language: The project is defining a common assertion language for expressing energy and timing properties in languages used by the embedded software design. This language will allow the expression of complex specifications including energy consumption functions that depend on data properties (such as data size), other environmental properties (such as clock frequency and voltage) and inter-module contracts. The assertion language will be multi-purpose, used for analysis, optimization, and verification and debugging of embedded systems, allowing (energy) information flow between different components of the integrated tool set.
|WP3. Analysis and Verification.
Oct 2012 – July 2015.
Resource analysis: Advanced techniques for time complexity analysis and Worst Case Execution Time (WCET) analysis are being adapted to energy, with extensions for inferring upper and lower bounds on energy use. Handling multi-core applications is essential due to the important role of parallelism in energy consumption.
Verification and certification of energy properties: The ENTRA vision for energy-aware development leads to automatic techniques supporting rich specifications about a program’s energy, timing and precision properties. These can be verified using analysis information during development, leading to the possibility of certification of energy usage when software is delivered. This is a radical departure from current practice in which energy usage is only known by testing, with no guarantee about worst cases.
July 2013 – July 2015.
Program transformations for energy optimization: Energy transparency will enable energy-aware optimizations. Later work in the ENTRA project will explore specialization and parallelization techniques to derive energy-efficient transformation of programs. Online analysis tools will support the integration of manual and automatic techniques, allowing the developer to explore the design space to achieve energy-efficient implementations.
Dynamic program optimizations: Energy transparency will allow a radical re-interpretation and extension of techniques available in the literature, such as the techniques for trading off energy usage against precision or speed of computation, and run-time scheduling which takes account of global energy consumption of a set of energy consuming tasks. In the final stages of the project we will explore integration of dynamic transformations such as auto-tuning and code perforation with advanced energy models also developed in the project.
|WP5. Establishing the Benchmarks.
Oct 2015 – Oct 2013.
Benchmarking and Optimality: A new notion of optimality has been defined and explored, based on the idea of the minimal energy achievable by optimal utilization of existing hardware. This provides a pragmatic and realistic approach to benchmarking and is adaptable to all platforms. The work package includes design of benchmarking suites for measuring energy use and optimization on the XCore platform.
Oct 2012 – Oct 2015.
Case Studies: The main target languages used for experiments in the ENTRA project are the XC language and XCore assembler developed by XMOS Ltd. The XCore is a scalable multicore, can run different cores at different speeds, and is event-driven at architecture-level, enabling power-efficient implementations. The case studies being studies include an audio equalizer, an I2S audio transport controller and an Analogue to Digital Converter.
|WP7. Dissemination, Collaboration and Exploitation.
Oct 2012 – Oct 2015.
|WP8. Project Management.
Oct 2012 – Oct 2015.