A Modular Tool Architecture for Worst-Case Execution Time Analysis

Our society is today extremely dependent oncomputers. Not only PCs andlaptops, but also the myriad of computers embedded ineveryday thingsaround us, such as vehicles, aircrafts, toys, andtelephones. For manyof these computers their correctness depends not onlyon the resultsof their computations, but also on the time at whichthe results areproduced. Failure to produce a result within giventiming boundariesmay cause substantial economic losses, or evenendanger humanlife. A worst-case execution time (WCET) analysisderives an upperestimate on the worst possible execution time of acomputerprogram. Reliable WCET estimates are a foundationwhen it must be proventhat an embedded system always will behave correctly,even in the moststressful situations. This book contains thedissertation of DrAndreas Ermedahl, a renowned researcher and WCETanalysis expert. Itpresents a WCET tool architecture applicable to awide spectrum ofembedded computers and programs, together withsuitable algorithms anddata structures. The book should be of interest foranyone involved inembedded system development who wants a deeperunderstanding of the timinganalysis process.

[1]  Jörn Schneider,et al.  Pipeline behavior prediction for superscalar processors by abstract interpretation , 1999, LCTES '99.

[2]  Sang Lyul Min,et al.  Efficient worst case timing analysis of data caching , 1996, Proceedings Real-Time Technology and Applications.

[3]  Per Stenström,et al.  Integrating Path and Timing Analysis Using Instruction-Level Simulation Techniques , 1998, LCTES.

[4]  Raimund Kirner,et al.  Timing analysis of optimised code , 2003 .

[5]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.

[6]  Alan C. Shaw,et al.  Experiments with a program timing tool based on source-level timing schema , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[7]  Marina Papatriantafilou,et al.  Wait-free snapshots in real-time systems: algorithms and performance , 1998, Proceedings Fifth International Conference on Real-Time Computing Systems and Applications (Cat. No.98EX236).

[8]  Peter P. Puschner,et al.  Developing real-time tasks with predictable timing , 1992, IEEE Software.

[9]  David B. Whalley,et al.  Bounding worst-case instruction cache performance , 1994, 1994 Proceedings Real-Time Systems Symposium.

[10]  Niklas Holsti,et al.  USING A WORST-CASE EXECUTION TIME TOOL FOR REAL-TIME VERIFICATION OF THE DEBIE SOFTWARE , 2000 .

[11]  Michael Wolfe,et al.  Beyond induction variables: detecting and classifying sequences using a demand-driven SSA form , 1995, TOPL.

[12]  G. Ramalingam,et al.  On loops, dominators, and dominance frontier , 2000, PLDI '00.

[13]  Greger Ottosson,et al.  Worst-case execution time analysis for modern hardware architectures , 1997 .

[14]  Björn Lisper,et al.  Fully Automatic, Parametric Worst-Case Execution Time Analysis , 2003, WCET.

[15]  Isabelle Puaut,et al.  Low-complexity algorithms for static cache locking in multitasking hard real-time systems , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[16]  Hans A. Hansson,et al.  Using measurements to derive the worst-case execution time , 2000, Proceedings Seventh International Conference on Real-Time Computing Systems and Applications.

[17]  Isabelle Puaut,et al.  Worst-case execution time analysis of the RTEMS real-time operating system , 2001, Proceedings 13th Euromicro Conference on Real-Time Systems.

[18]  Veikko Seppänen,et al.  Strategic needs and future trends of embedded software , 1997 .

[19]  Jan Gustafsson,et al.  Towards Industry-Strength Worst-Case Execution Time Analysis , 1999 .

[20]  Michael Hind,et al.  Which pointer analysis should I use? , 2000, ISSTA '00.

[21]  Tulika Mitra,et al.  A Framework to Model Branch Prediction for WCET Analysis , 2002 .

[22]  Bjarne Steensgaard,et al.  Points-to analysis in almost linear time , 1996, POPL '96.

[23]  Henrik Theiling ILP-Based Interprocedural Path Analysis , 2002, EMSOFT.

[24]  Jakob Engblom Static properties of commercial embedded real-time programs, and their implication for worst-case execution time analysis , 1999, Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium.

[25]  Jan Gustafsson,et al.  Worst-case execution-time analysis for embedded real-time systems , 2003, International Journal on Software Tools for Technology Transfer.

[26]  Sang Lyul Min,et al.  An Accurate Worst Case Timing Analysis for RISC Processors , 1995, IEEE Trans. Software Eng..

[27]  Jakob Engblom,et al.  Comparing Different Worst-Case Execution Time Analysis Methods , 2000 .

[28]  Sven Montan Validation of Cycle-Accurate CPU Simulators against Real Hardware , 2001 .

[29]  Jakob Engblom,et al.  Efficient longest executable path search for programs with complex flows and pipeline effects , 2001, CASES '01.

[30]  Frank Mueller,et al.  Timing Predictions for Multi-Level Caches , 1997 .

[31]  David B. Whalley,et al.  Tighter timing predictions by automatic detection and exploitation of value-dependent constraints , 1999, Proceedings of the Fifth IEEE Real-Time Technology and Applications Symposium.

[32]  Henrik Theiling,et al.  Reliable and Precise WCET Determination for a Real-Life Processor , 2001, EMSOFT.

[33]  David B. Whalley,et al.  Bounding loop iterations for timing analysis , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[34]  Jan Gustafsson,et al.  A tool for automatic flow analysis of C-programs for WCET calculation , 2003, Proceedings of the Eighth International Workshop on Object-Oriented Real-Time Dependable Systems, 2003. (WORDS 2003)..

[35]  Pradip Bose,et al.  Performance Analysis and Its Impact on Design , 1998, Computer.

[36]  Henrik Theiling Generating Decision Trees for Decoding Binaries , 2001, LCTES/OM.

[37]  Sharad Malik,et al.  Cache modeling for real-time software: beyond direct mapped instruction caches , 1996, 17th IEEE Real-Time Systems Symposium.

[38]  David B. Stewart Measuring Execution Time and Real-Time Performance , 2001 .

[39]  Roland Lang,et al.  Fully automatic worst-case execution time analysis for MATLAB/Simulink models , 2002, Proceedings 14th Euromicro Conference on Real-Time Systems. Euromicro RTS 2002.

[40]  Roderick Chapman,et al.  Static timing analysis and program proof , 1995 .

[41]  Florian Martin Experimental Comparison of call string and functional Approaches to Interprocedural Analysis , 1999, CC.

[42]  Jörn Schneider Cache and pipeline sensitive fixed priority scheduling for preemptive real-time systems , 2000, Proceedings 21st IEEE Real-Time Systems Symposium.

[43]  Markus Lindgren,et al.  Measurement and simulation based techniques for real-time systems analysis , 2000 .

[44]  H. Borjesson Incorporating Worst Case Execution Time in a Commercial C-compiler , 1996 .

[45]  Görel Hedin,et al.  Interactive Execution Time Predictions using Reference Attributed Grammars , 1999 .

[46]  Yale N. Patt,et al.  A comparison of dynamic branch predictors that use two levels of branch history , 1993, ISCA '93.

[47]  David B. Whalley,et al.  Timing analysis for data caches and set-associative caches , 1997, Proceedings Third IEEE Real-Time Technology and Applications Symposium.

[48]  Jose Luis Esteves dos Santos,et al.  A New Shortest Paths Ranking Algorithm , 1999 .

[49]  Reinhard Wilhelm,et al.  An abstract interpretation-based timing validation of hard real-time avionics software , 2003, 2003 International Conference on Dependable Systems and Networks, 2003. Proceedings..

[50]  David B. Whalley,et al.  Graphical visualization of compiler optimizations , 1995, J. Program. Lang..

[51]  Sang Lyul Min,et al.  A worst case timing analysis technique for optimized programs , 1998, Proceedings Fifth International Conference on Real-Time Computing Systems and Applications (Cat. No.98EX236).

[52]  Jakob Engblom,et al.  A Worst-Case Execution-Time Analysis Tool Prototype for Embedded Real-Time Systems , 2001 .

[53]  Laurie J. Hendren,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994, PLDI '94.

[54]  Yale N. Patt,et al.  A Comparison Of Dynamic Branch Predictors That Use Two Levels Of Branch History , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[55]  Jakob Engblom,et al.  Structured Testing of Worst-Case Execution Time Analysis Methods , 2000 .

[56]  Jakob Engblom,et al.  Pipeline timing analysis using a trace-driven simulator , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[57]  Rolf Ernst,et al.  Interval-Based Analysis of Software Processes , 2001, OM '01.

[58]  Mikael Sjödin,et al.  Response-time guarantees in ATM networks , 1997, Proceedings Real-Time Systems Symposium.

[59]  Jan Gustafsson,et al.  Deriving Annotations for Tight Calculation of Execution Time , 1997, Euro-Par.

[60]  Isabelle Puaut,et al.  A modular and retargetable framework for tree-based WCET analysis , 2001, Proceedings 13th Euromicro Conference on Real-Time Systems.

[61]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[62]  Jakob Engblom,et al.  Processor Pipelines and Static Worst-Case Execution Time Analysis , 2002 .

[63]  David B. Whalley,et al.  Supporting Timing Analysis by Automatic Bounding of Loop Iterations , 2000, Real-Time Systems.

[64]  Per Stenström,et al.  An Integrated Path and Timing Analysis Method based on Cycle-Level Symbolic Execution , 1999, Real-Time Systems.

[65]  John Paul Shen,et al.  Calibration of Microprocessor Performance Models , 1998, Computer.

[66]  Alan Burns,et al.  Fixed priority pre-emptive scheduling: An historical perspective , 1995, Real-Time Systems.

[67]  Paul Havlak,et al.  Nesting of reducible and irreducible loops , 1997, TOPL.

[68]  Jakob Engblom,et al.  Facilitating worst-case execution times analysis for optimized code , 1998, Proceeding. 10th EUROMICRO Workshop on Real-Time Systems (Cat. No.98EX168).

[69]  Reinhard Wilhelm,et al.  The influence of processor architecture on the design and the results of WCET tools , 2003, Proceedings of the IEEE.

[70]  Thomas Lundqvist,et al.  A WCET Analysis Method for Pipelined Microprocessors with Cache Memories , 2002 .

[71]  N. Holsti,et al.  Status of the Bound-T WCET Tool , 2002 .

[72]  Henrik Theiling,et al.  Combining abstract interpretation and ILP for microarchitecture modelling and program path analysis , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[73]  Andy J. Wellings,et al.  Adding instruction cache effect to schedulability analysis of preemptive real-time systems , 1996, Proceedings Real-Time Technology and Applications.

[74]  Mats Carlsson,et al.  SICStus Prolog User''s Manual , 1993 .

[75]  Wang Yi,et al.  TIMES - A Tool for Modelling and Implementation of Embedded Systems , 2002, TACAS.

[76]  Raimund Kirner,et al.  Using Real Hardware to Create an Accurate Timing Model for Execution-Time Analysis , 2001 .

[77]  Stavros Tripakis,et al.  KRONOS: A Model-Checking Tool for Real-Time Systems (Tool-Presentation for FTRTFT '98) , 1998, FTRTFT.

[78]  Jason R. C. Patterson,et al.  Accurate static branch prediction by value range propagation , 1995, PLDI '95.

[79]  Guillem Bernat,et al.  WCET analysis of probabilistic hard real-time systems , 2002, 23rd IEEE Real-Time Systems Symposium, 2002. RTSS 2002..

[80]  Chang-Gun Lee,et al.  Enhanced analysis of cache-related preemption delay in fixed-priority preemptive scheduling , 1996, Proceedings Real-Time Systems Symposium.

[81]  Rolf Ernst,et al.  Execution cost interval refinement in static software analysis , 2001, J. Syst. Archit..

[82]  Roland Wismüller Debugging of globally optimized programs using data flow analysis , 1994, PLDI '94.

[83]  Sharad Malik,et al.  Performance Analysis of Embedded Software Using Implicit Path Enumeration , 1995, 32nd Design Automation Conference.

[84]  Bjarne Steensgaard Sequentializing Program Dependence Graphs for Irreducible Programs , 1993 .

[85]  Raimund Kirner,et al.  Transformation of path information for WCET analysis during compilation , 2001, Proceedings 13th Euromicro Conference on Real-Time Systems.

[86]  Guillem Bernat,et al.  Scope-tree: a program representation for symbolic worst-case execution time analysis , 2002, Proceedings 14th Euromicro Conference on Real-Time Systems. Euromicro RTS 2002.

[87]  Iain Bate,et al.  Low-level analysis of a portable Java byte code WCET analysis framework , 2000, Proceedings Seventh International Conference on Real-Time Computing Systems and Applications.

[88]  Randall T. White Bounding worst-case data cache performance , 1997, RTSS 1997.

[89]  Stefan M. Petters,et al.  Making worst case execution time analysis for hard real-time tasks on state of the art processors feasible , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[90]  Peter P. Puschner,et al.  Calculating the maximum execution time of real-time programs , 1989, Real-Time Systems.

[91]  Stefan M. Petters Bounding the execution time of real-time tasks on modern processors , 2000, Proceedings Seventh International Conference on Real-Time Computing Systems and Applications.

[92]  Yanhong A. Liu,et al.  Automatic Accurate Time-Bound Analysis for High-Level Languages , 1998, LCTES.

[93]  Robson Linhares,et al.  Estimation from Object Code implemented in the PERF Environment , 2002 .

[94]  Jan Gustafsson,et al.  Automatic Derivation of Path and Loop Annotations in Object-Oriented Real-Time Programs , 1998, Scalable Comput. Pract. Exp..

[95]  Jakob Engblom,et al.  Worst-Case Execution Time Analysis of Disable Interrupt Regions in a Commercial Real-Time Operating System , 2002 .

[96]  David B. Whalley,et al.  Bounding Pipeline and Instruction Cache Performance , 1999, IEEE Trans. Computers.

[97]  Sang Lyul Min,et al.  Analysis of cache-related preemption delay in fixed-priority preemptive scheduling , 1998, 17th IEEE Real-Time Systems Symposium.

[98]  Martin Alt,et al.  Generation of Efficient Interprocedural Analyzers with PAG , 1995, SAS.

[99]  Jakob Engblom,et al.  Analysis of the execution time unpredictability caused by dynamic branch prediction , 2003, The 9th IEEE Real-Time and Embedded Technology and Applications Symposium, 2003. Proceedings..

[100]  David B. Whalley,et al.  Supporting the specification and analysis of timing constraints , 1996, Proceedings Real-Time Technology and Applications.

[101]  Guang R. Gao,et al.  Identifying loops using DJ graphs , 1996, TOPL.

[102]  Jakob Engblom,et al.  Modeling complex flows for worst-case execution time analysis , 2000, Proceedings 21st IEEE Real-Time Systems Symposium.

[103]  Niklas Holsti,et al.  Worst-case execution time analysis for digital signal processors , 2000, 2000 10th European Signal Processing Conference.

[104]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[105]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[106]  Patrick Cousot,et al.  Semantic foundations of program analysis , 1981 .

[107]  Thomas A. Henzinger,et al.  HYTECH: a model checker for hybrid systems , 1997, International Journal on Software Tools for Technology Transfer.

[108]  Neil C. Audsley,et al.  Predictable and efficient virtual addressing for safety-critical real-time systems , 2001, Proceedings 13th Euromicro Conference on Real-Time Systems.

[109]  Per Stenström,et al.  Timing anomalies in dynamically scheduled microprocessors , 1999, Proceedings 20th IEEE Real-Time Systems Symposium (Cat. No.99CB37054).

[110]  Stavros Tripakis,et al.  Kronos: A Model-Checking Tool for Real-Time Systems , 1998, CAV.

[111]  Friedhelm Stappert,et al.  Predicting pipelining and caching behaviour of hard real-time programs , 1997, Proceedings Ninth Euromicro Workshop on Real Time Systems.

[112]  Chang-Gun Lee,et al.  Analysis of Cache-Related Preemption Delay in Fixed-Priority Preemtive Scheduling , 1998, IEEE Trans. Computers.

[113]  Jakob Engblom,et al.  Validating a Worst-Case Execution Time Analysis Method for an Embedded Processor , 2001 .

[114]  Jakob Engblom,et al.  Worst-Case Execution Time Analysis for Optimized Code , 1997 .

[115]  Chang Yun Park,et al.  Predicting program execution times by analyzing static and dynamic program paths , 1993, Real-Time Systems.

[116]  Rolf Ernst,et al.  Embedded program timing analysis based on path clustering and architecture classification , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[117]  David B. Whalley,et al.  Parametric Timing Analysis , 2001, OM '01.

[118]  Sang Lyul Min,et al.  Statistical Derivation of an Accurate Energy Consumption Model for Embedded Processors , 2002 .

[119]  Jakob Engblom,et al.  A Unified Flow Information Language for WCET Analysis , 2002 .

[120]  Friedhelm Stappert,et al.  Complete worst-case execution time analysis of straight-line hard real-time programs , 2000, J. Syst. Archit..

[121]  David B. Whalley,et al.  Supporting User-Friendly Analysis of Timing Constraints , 1995, Workshop on Languages, Compilers, & Tools for Real-Time Systems.

[122]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[123]  Peter Altenbernd,et al.  On the false path problem in hard real-time programs , 1996, Proceedings of the Eighth Euromicro Workshop on Real-Time Systems.

[124]  Jakob Engblom,et al.  Why SpecInt95 should not be used to benchmark embedded systems tools , 1999, LCTES '99.

[125]  Jan Gustafsson Analyzing execution-time of object-oriented programs using abstract interpretation , 2000 .

[126]  Sang Lyul Min,et al.  A worst case timing analysis technique for multiple-issue machines , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[127]  Doug Burger,et al.  Measuring Experimental Error in Microprocessor Simulation , 2001, ISCA 2001.

[128]  Isabelle Puaut,et al.  Worst Case Execution Time Analysis for a Processor with Branch Prediction , 2004, Real-Time Systems.

[129]  GhiyaRakesh,et al.  Context-sensitive interprocedural points-to analysis in the presence of function pointers , 1994 .

[130]  Ali-Reza Adl-Tabatabai,et al.  Source-level debugging of globally optimized code , 1996 .

[131]  Manuvir Das,et al.  Unification-based pointer analysis with directional assignments , 2000, PLDI '00.