Static WCET Analysis vs. Measurement: What is the Right Way to Assess Real-Time Task Timing? Worst Case Execution Time Prediction by Static Program Analysis Is your program always fast enough? Christian Ferdinand AbsInt Angewandte Informatik GmbH
2 Controllers in planes, cars, plants, … are expected to finish their tasks within reliable time bounds. Schedulability analysis must be performed Hence, it is essential that an upper bound on the execution times of all tasks is known Commonly called the Worst-Case Execution Time (WCET) Hard Real-Time Systems
3 The Timing Problem P r o b a b i l i t y Execution Time Best Case Execution Time Exact Worst Case Execution Time SafeWorst Case Execution Time Estimate Unsafe: Execution Time Measurement
4 Embedded Control Software Tends to be large and complex Much functionality Code generator tools 3 rd party software RTOS communication libraries
5 The Timing Problem LOAD r2, _a LOAD r1, _b ADD r3,r2,r1 MPC 5xx (2000) PPC 755 (2001) x = a + b; 68K (1990)
6 Some Architectural Features that make Measurement-Based WCET Analysis a Challenge The empty cache is not necessarily the “worst case cache” “Domino” effects A cache miss is not necessarily the worst case
7 Solution: Static WCET Analysis The WCET analyzer computes safe upper bounds of the execution times of the tasks in a program for all inputs Static program analysis based on Abstract Interpretation The analysis design is proven to be correct
8 Combines global program analysis by abstract interpretation for cache, pipeline, and value analysis with integer linear programming for path analysis in a single intuitive GUI. aiT WCET Analyzer A Solution to the Timing Problem
9 aiT WCET Analyzer Advantages aiT WCET analyzer allows you to: inspect the timing behavior of (timing critical parts of) your code The analysis results are determined without the need to change the code hold for all inputs and all executions (for the intrinsic cache and pipeline behavior)
10 Conclusion Static WCET analysis enables development of complex hard real-time systems on state-of- the-art hardware. Increases safety. Saves development time. Usability proven in industrial practice.
11 When to Use Runtime Measurements? Offline: To validate the pipeline model wrt. the real hardware Online (e.g., in the scheduler): To monitor the correct working (detect hardware failures, …) To improve the exploitation of resources …