Worst-Case Execution Time Aware Compilation Techniques for Real-Time Systems / Edition 1 available in Hardcover
- Pub. Date:
- Springer Netherlands
For real-time systems, the worst-case execution time (WCET) is the key objective to be considered. Traditionally, code for real-time systems is generated without taking this objective into account and the WCET is computed only after code generation. Worst-Case Execution Time Aware Compilation Techniques for Real-Time Systems presents the first comprehensive approach integrating WCET considerations into the code generation process. Based on the proposed reconciliation between a compiler and a timing analyzer, a wide range of novel optimization techniques is provided. Among others, the techniques cover source code and assembly level optimizations, exploit machine learning techniques and address the design of modern systems that have to meet multiple objectives.
Using these optimizations, the WCET of real-time applications can be reduced by about 30% to 45% on the average. This opens opportunities for decreasing clock speeds, costs and energy consumption of embedded processors. The proposed techniques can be used for all types real-time systems, including automotive and avionics IT systems.
Table of Contents
1. Introduction. 1.1. Design of Embedded Real-Time Systems. 1.2. Contribution of this Work. 1.3. Outline.
2. WCET Analysis Techniques. 2.1. Introduction. 2.2. Approaches for WCET Analysis. 2.3. Basic Concepts for Static WCET Analysis. 2.4. Static WCET Analyzer aiT.
3. WCC - WCET-Aware C Compiler. 3.1. Introduction. 3.2. Related Work. 3.3. Structure of the WCC Compiler. 3.4. Integration of WCET Analyzer. 3.5. Modeling of Flow Facts. 3.6. Static Loop Analysis. 3.7. Back-Annotation. 3.8. TriCore Processor.
4. WCET-Aware Source Code Level Optimizations. 4.1. Introduction. 4.2. Existing Code Optimization Techniques. 4.3. Procedure Cloning. 4.4. Superblock Optimizations. 4.5. Loop Unrolling. 4.6. Accelerating Optimization by the Invariant Path. 4.7. Summary.
5. WCET-Aware Assembly Level Optimizations. 5.1. Introduction. 5.2. Existing Code Optimization Techniques. 5.3. Procedure Positioning. 5.4. Trace Scheduling. 5.5. Summary.
6. Machine Learning Techniques in Compiler Design. 6.1. Introduction. 6.2. Related Work. 6.3. Machine Learning Based Heuristic Generation. 6.4. Function Inlining. 6.5. Loop-Invariant Code Motion. 6.6. Summary.
7. Multi-Objective Optimizations. 7.1. Introduction. 7.2. Motivation. 7.3. Related Work. 7.4. Compiler Optimization Sequence Exploration. 7.5. Multi-Objective Exploration of Compiler Optimizations. 7.6. Experimental Results for Optimization Exploration. 7.7. Summary.
8. Summary and Future Work. 8.1. Research Contributions. 8.2. Future Work.
A. Abstract Interpretation.
B. Transformation of Conditions.
References. List of Figures. List of Tables. Index.