Beyond loop bounds: comparing annotation languages for worst-case execution time analysis

Worst-case execution time (WCET) analysis is concerned with computing a precise-as-possible bound for the maximum time the execution of a program can take. This information is indispensable for developing safety-critical real-time systems, e. g., in the avionics and automotive fields. Starting with the initial works of Chen, Mok, Puschner, Shaw, and others in the mid and late 1980s, WCET analysis turned into a well-established and vibrant field of research and development in academia and industry. The increasing number and diversity of hardware and software platforms and the ongoing rapid technological advancement became drivers for the development of a wide array of distinct methods and tools for WCET analysis. The precision, generality, and efficiency of these methods and tools depend much on the expressiveness and usability of the annotation languages that are used to describe feasible and infeasible program paths. In this article we survey the annotation languages which we consider formative for the field. By investigating and comparing their individual strengths and limitations with respect to a set of pivotal criteria, we provide a coherent overview of the state of the art. Identifying open issues, we encourage further research. This way, our approach is orthogonal and complementary to a recent approach of Wilhelm et al. who provide a thorough survey of WCET analysis methods and tools that have been developed and used in academia and industry.

[1]  Albrecht Kadlec,et al.  Precise Worst-Case Execution Time Analysis for Processors with Timing Anomalies , 2009, 2009 21st Euromicro Conference on Real-Time Systems.

[2]  Rajiv Gupta,et al.  Refining data flow information using infeasible paths , 1997, ESEC '97/FSE-5.

[3]  Robert E. Tarjan,et al.  Fast Algorithms for Solving Path Problems , 1981, JACM.

[4]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[5]  Raimund Kirner,et al.  WCET Analysis: The Annotation Language Challenge , 2007, WCET.

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

[7]  Jan Gustafsson The WCET Tool Challenge 2006 , 2006 .

[8]  Raimund Kirner,et al.  Automatic timing model generation by CFG partitioning and model checking , 2005, Design, Automation and Test in Europe.

[9]  Robert McNaughton,et al.  Regular Expressions and State Graphs for Automata , 1960, IRE Trans. Electron. Comput..

[10]  Jan Gustafsson,et al.  WCET 2008 - Report from the Tool Challenge 2008 -- 8th Intl. Workshop on Worst-Case Execution Time (WCET) Analysis , 2008, WCET.

[11]  Alexander Vrchoticky Compilation Support for Fine-Grained Execution Time Analysis , 1994 .

[12]  Chang Yun Park Predicting program execution times by analyzing static and dynamic program paths , 2005, Real-Time Systems.

[13]  Henrik Theiling,et al.  WCET-driven, code-size critical procedure cloning , 2008, SCOPES '08.

[14]  Aloysius K. Mok,et al.  Evaluating tight execution time bounds of programs by annotations , 1989 .

[15]  Jan Gustafsson The Worst Case Execution Time Tool Challenge 2006 , 2006, Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (isola 2006).

[16]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

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

[18]  Peter P. Puschner,et al.  Computing Maximum Task Execution Times — A Graph-Based Approach , 2004, Real-Time Systems.

[19]  Goong Chen,et al.  Quantum Computing Devices (Chapman & Hall/Crc Applied Mathematics and Nonlinear Science Series) , 2006 .

[20]  Alan Burns,et al.  Static worst-case timing analysis of Ada , 1994, ALET.

[21]  J. Javier Gutiérrez,et al.  MAST: Modeling and analysis suite for real time applications , 2001, Proceedings 13th Euromicro Conference on Real-Time Systems.

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

[23]  Francis J. Wright Computing with Maple , 2001 .

[24]  Jens Knoop,et al.  TuBound - A Conceptually New Tool for Worst-Case Execution Time Analysis , 2008, WCET.

[25]  Alan Burns,et al.  Combining static worst-case timing analysis and program proof , 1996, Real-Time Systems.

[26]  Albrecht Kadlec,et al.  Towards a Common WCET Annotation Language: Essential Ingredients , 2008, WCET.

[27]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[28]  Tulika Mitra,et al.  Worst-Case Execution Time and Energy Analysis , 2007, The Compiler Design Handbook, 2nd ed..

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

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

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

[32]  Henrik Theiling,et al.  Convenient User Annotations for a WCET Tool , 2003, WCET.

[33]  A. D. Stoyenko,et al.  Real-time Euclid: a language for reliable real-time systems , 1989 .

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

[35]  Xianfeng Li,et al.  Chronos: A timing analyzer for embedded software , 2007, Sci. Comput. Program..

[36]  Raimund Kirner,et al.  Measurement-Based Timing Analysis , 2008, ISoLA.

[37]  Raimund Kirner,et al.  Classification of Code Annotations and Discussion of Compiler-Support for Worst-Case Execution Time Analysis , 2005, WCET.

[38]  Lili Tan,et al.  The worst-case execution time tool challenge 2006 , 2006, Second International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (isola 2006).

[39]  Jakob Engblom,et al.  Clustered worst-case execution-time calculation , 2005, IEEE Transactions on Computers.

[40]  Albrecht Kadlec,et al.  From Trusted Annotations to Verified Knowledge , 2009, WCET.

[41]  Pascal Sainrat,et al.  OTAWA, a Framework for Experimenting WCET Computations , 2006 .

[42]  Chang Yun Park,et al.  Predicting deterministic execution times of real-time programs , 1992 .

[43]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

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

[45]  Johann Blieberger Discrete Loops and Worst Case Performance , 1994, Comput. Lang..

[46]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

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

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

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

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

[51]  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.