Abstract
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.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
AbsInt. aiT. Web page. http://www.absint.com/aiT. Accessed online in February (2010)
Aho A.V., Lam M.S., Sethi R., Ullman J.D.: Compilers, Principles, Techniques, and Tools. Addison-Wesley, New York (2007) ISBN 0-321-48681-1
Ballabriga, C., Cassé, H., Nemer, F., Rochange, C., Sainrat, P.: OTAWA. Online Program Documentation. University of Toulouse, France. http://www.otawa.fr/ (2008)
Bernat, G., Colin, A., Petters, S.M.: WCET analysis of probabilistic hard real-time systems. In: Proceedings of the 23rd Real-Time Systems Symposium, December, pp. 279–288, Austin, TX, USA (2002)
Bodík R., Gupta R., Soffa M.L.: Refining data flow information using infeasible paths. SIGSOFT Softw. Eng. Notes 22(6), 361–377 (1997)
Blieberger J.: Discrete loops and worst case performance. Comp. Lang. 20(3), 193–212 (1994)
Chapman, R., Burns, A., Wellings, A.: Integrated program proof and worst-case timing analysis of SPARK Ada. In: Proceedings of the ACM Workshop on Language, Compiler and Tool Support for Real-time Systems, pp. K1–K11, June (1994)
Chapman R., Burns A., Wellings A.: Combining static worst-case timing analysis and program proof. Real-Time Syst. 11(2), 145–171 (1996)
Chen, M.: A Timing Analysis Language—(TAL). Department of Computer Science, University of Texas, Austin, TX, USA (1987). Programmer’s Manual
Colin, A., Puaut, I.: A modular and retargetable framework for tree-based WCET analysis. In: Proceedings of the 13th Euromicro Conference on Real-Time Systems, pp. 37–44, Delft, Netherland, June (2001). Technical University of Delft
Cassé, H., Sainrat, P.: OTAWA, a framework for experimenting WCET computations. In: European Congress on Embedded Real-Time Software (ERTS), Toulouse, 25/01/06-27/01/06, page (electronic medium), http://www.see.asso.fr, January, See p. 8 (2006)
Engblom, J., Ermedahl, A.: Modeling complex flows for worst-case execution time analysis. In: Proceedings of the 21st IEEE Real-Time Systems Symposium (RTSS), December, Orlando, FL, USA (2000)
Ermedahl, A., Engblom, J., Stappert, F.: A unified flow information language for WCET analysis. In: Proceedings of the 2nd International Workshop on Worst Case Execution Time Analysis. Technical University of Vienna, Austria, June (2002)
Ermedahl A., Stappert F., Engblom J.: Clustered worst-case execution time calculation. IEEE Trans. Comp. 54(9), 1104–1122 (2005)
Ferdinand, C., Heckmann, R., Theiling, H.: Convenient user annotations for a WCET tool. In: Proceedings of the 3rd International Workshop on Worst-Case Execution Time Analysis, pp. 17–20, Porto, Portugal, July (2003)
Floyd, R.: Assigning meaning to programs. In: Proceedings of the AMS Symposia in Applied Mathematics, pp. 19–32 (1967)
Gustafsson, J.: The WCET tool challenge 2006. In: Preliminary Proceedings of the 2nd Int. IEEE Symposium on Leveraging Applications of Formal Methods, Verification and Validation, pp. 248–249, Paphos, Cyprus, November (2006)
Healy, C.A., Arnold, R.D., Mueller, F., Whalley, D., Harmon, M.G.: Bounding pipeline and instruction cache performance. IEEE Trans. Comp. 48(1) (1999)
Hecht M.S.: Flow Analysis of Computer Programs. Elsevier, North-Holland (1977)
Heptane (Hades embedded processor timing analyzer). Tool web page: http://www.irisa.fr/aces/work/heptane-demo/heptane.html. Accessed online in February (2010)
Heckmann, R., Ferdinand, C.: Combining automatic analysis and user annotations for successful worst-case execution time prediction. In: Embedded World 2005 Conference, February, Nürnberg, Germany (2005)
Holsti, N., Gustafsson, J., Bernat, G., Ballabriga, C., Bonenfant, A., Bourgade, R., Cassé, H., Cordes, D., Kadlec, A., Kirner, R., Knoop, J., Lokuciejewski, P., Merriam, N., de Michiel, M., Prantl, A., Rieder, B., Rochange, C., Sainrat, P., Schordan, M.: WCET 2008—Report from the Tool Challenge 2008. In: Proceedings of the 8th International Workshop on Worst-Case Execution Time Analysis, July, pp. 149–171, Prague, Czech Republic (2008)
Harbour, M.G., Garcia, J.J.G., Gutierrez, J.C.P., Moyano, J.M.D.: MAST: Modeling and analysis suite for real time applications. In: Proceedings of the 13th Euromicro Conference on Real-Time Systems, pp. 125 –134, Delft, The Netherlands. Euromicro (2001)
Holsti, N., Långbacka, T., Saarinen, S.: Worst-case execution time analysis for digital signal processors. In: European Signal Processing Conference 2000 (EUSIPCO 2000) (2000)
Holsti, N., Långbacka, T., Saarinen, S.: Bound-T timing analysis tool User Manual. Tidorum Ltd (2005)]
Hoare C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)
Holsti N.: Bound-T assertion language: Planned extensions. Technical report. Tidorum Ltd, (2005)
IBM: IBM ILOG CPLEX—High-performance mathematical programming engine. Web page. http://www.ibm.com/software/integration/optimization/cplex/. Accessed in Feb. (2010)
Kirner, R.: User’s Manual—WCET-Analysis Framework based on wcetC. Vienna University of Technology, July, Vienna, Austria, 0.0.3 edition, 2001. available at http://www.vmars.tuwien.ac.at/~raimund/calc_wcet/
Kirner, R.: The programming language wcetC. Technical report, Technische Universität Wien, Institut für Technische Informatik, Treitlstr. 1-3/182-1, 1040 Vienna, Austria (2002)
Kirner, R.: Compiler Support for Timing Analysis of Optimized Code: Precise Timing Analysis of Machine Code with Convenient Annotation of Source Code. VDM Verlag, Germany, July 2008. ISBN: 978-3-8364-6883-1
Kirner, R., Knoop, J., Prantl, A., Schordan, M., Wenzel, I.: WCET analysis: the annotation language challenge. In: Proceedings of the 7th International Workshop on Worst-Case Execution Time Analysis, pp. 83–99, Pisa, Italy, July (2007)
Kirner, R., Kadlec, A., Puschner, P., Prantl, A., Schordan, M., Knoop, J.: Towards a common WCET annotation language: essential ingredients. In: Proceedings of the 8th International Workshop on Worst-Case Execution Time Analysis, pp. 53–65, Prague, Czech Republic, July (2008)
Kirner, R., Kadlec, A., Puschner, P.: Precise worst-case execution time analysis for processors with timing anomalies. In: Proceedings of the 21st Euromicro Conference on Real-Time Systems, pp. 119–128, Dublin, Ireland, July 2009. IEEE, New York
Kirner, R., Lang, R., Freiberger, G., Puschner, P.: Fully automatic worst-case execution time analysis for Matlab/Simulink models. In: Proceedings of the 14th Euromicro Conference on Real-Time Systems, pp. 31–40, Vienna, Austria, June 2002. Vienna University of Technology. IEEE, New York
Kirner, R., Puschner, P.: Classification of code annotations and discussion of compiler-support for worst-case execution time analysis. In: Proceedings of the 5th International Workshop on Worst-Case Execution Time Analysis, Palma, Spain, July (2005)
Klingerman E., Stoyenko Alexander D.: Real-time euclid: a language for reliable real-time systems. IEEE Trans. Softw. Eng. 12(9), 941–989 (1986)
Lokuciejewski, P., Falk, H., Marwedel, P., Theiling, H.: Wcet-driven, code-size critical procedure cloning. In: Falk, H. (ed.) SCOPES, ACM International Conference Proceeding Series, vol. 296, pp. 21–30 (2008)
Lisper, B.: Ideas for annotation language(s). Technical Report Oct. 25, Department of Computer Science and Engineering, University of Mälardalen (2005)
Li, X., Liang, Y., Mitra, T., Roychoudhury, A.: Chronos user manual. Web page. http://www.comp.nus.edu.sg/~rpembed/chronos/chronos_manual.pdf. Accessed online in February (2010)
Li, X., Liang, Y., Mitra, T., Roychoudury, A.: Chronos: A timing analyzer for embedded software. Science of Computer Programming, 69(1–3):56–67, (2007). http://www.comp.nus.edu.sg/~rpembed/chronos
Li, Y.-T.S., Malik, S.: Performance analysis of embedded software using implicit path enumeration. In: Proceedings of the 32nd ACM/IEEE Design Automation Conference, June, pp. 456–461 (1995)
lpsolve. Tool web page: http://lpsolve.sourceforge.net/. Accessed online in February (2010)
Lundqvist, T., Stenström, P.: Timing analysis in dynamically scheduled microprocessors. In: Proceedings of the 20th IEEE Real-Time Systems Symposium (RTSS), December, pp. 12–21 (1999)
Mok, A.K., Amerasinghe, P., Chen, M., Tantisirivat, K.: Evaluating tight execution time bounds of programs by annotations. In: Proceedings of the 6th IEEE Workshop on Real-Time Operating Systems And Software, May, pp. 74–80, Pittsburgh, PA, USA (1989)
Maxima Manual, 5.18 edn. Available online at http://maxima.sourceforge.net/docs/manual/en/maxima.pdf
Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco (1997). ISBN 1-55860-320-4
MacNaughton, R., Yamada, H.: Regular expressions and state graphs for automata. IRE Trans. Electron. Comp. 9(39–47), (1960)
OMG. UML Profile for Modeling and Analysis of Real-time and Embedded Systems (MARTE). Object Management Group, June (2008)
Park, C.Y.: Predicting Deterministic Execution Times of Real-Time Programs. Ph.D. Thesis, University of Washington, Seattle, USA, 1992. TR 92-08-02
Park C.Y.: Predicting program execution times by analyzing static and dynamic program paths. Real-Time Syst. 5(1), 31–62 (1993)
Puschner P., Koza C.: Calculating the maximum execution time of real-time programs. J. Real-Time Syst. 1, 159–176 (1989)
Prantl, A., Knoop, J., Kirner, R., Kadlec, A., Schordan, M.: From trusted annotations to verified knowledge. In Proceedings of the 9th International Workshop on Worst-Case Execution Time Analysis, Dublin, Ireland, June (2009)
Park C.Y., Shaw A.C.: Experiments with a program timing tool based on a source-level timing schema. Computer 24(5), 48–57 (1991)
Puschner P., Schedl A.V.: Computing maximum task execution times—a graph-based approach. J. Real-Time Syst. 13, 67–91 (1997)
Prantl, A., Schordan, M., Knoop, J.: TuBound—a conceptually new tool for worst-case execution time analysis. In: 8th International Workshop on Worst-Case Execution Time Analysis (WCET 2008), pp. 141–148, Prague, Czech Republic, 2008. ISBN: 978-3-85403-237-3
RAPITA Systems Ltd. Worst-case execution time analysis. White Paper (Automotive), Rev. 1.32, 21st Sep. (2006)
Stappert F., Altenbernd P.: Complete worst-case execution time analysis of straight-line hard real-time programs. J. Syst. Archit. 46(4), 339–355 (2000)
Shaw A.C.: Reasoning about time in higher level language software. IEEE Trans. Softw. Eng. 15(7), 875–889 (1989)
Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Muchnick, S.S., Jones, N.D. (eds.) Program Flow Analysis: Theory and Applications, chapter 7, pp. 189–233. Prentice Hall, Englewood Cliffs (1981)
Tarjan R.E.: Fast algorithms for solving path problems. J. ACM 28(3), 594–614 (1981)
Tan, L., Echtle, K.: The WCET tool challenge 2006: external evaluation—draft report. In: Handout at the 2nd Int. IEEE Symposium on Leveraging Applications of Formal Methods, Verification and Validation, Paphos, Cyprus, November 2006, 13 pp.
Vrchoticky, A.: Modula/R—Language Definition. Technical Report 02/1992, Technische Universität Wien, Institut für Technische Informatik, Treitlstr. 1-3/182-1, 1040, March. Vienna, Austria (1992)
Vrchoticky, A.: Compilation support for fine-grained execution time analysis. In: Proceedings of the ACM SIGPLAN Workshop on Language, Compiler and Tool Support for Real-Time Systems, June. Orlando FL (1994)
WCET annotation language challenge. Web page: http://costa.tuwien.ac.at/languages.html. Accessed online in Feb. (2010)
Wilhelm, R., Engblom, J., Ermedahl, A., Holsti, N., Thesing, S., Whalley, D., Bernat, G., Ferdinand, C., Heckman, R., Mitra, T., Mueller, F., Puaut, I., Puschner, P., Staschulat, J., Stenstrom, P.: The worst-case execution time problem—overview of methods and survey of tools. ACM Trans. Embedded Comput. Syst. (TECS) 7(3), (2008)
Wenzel, I., Kirner, R., Rieder, B., Puschner, P.: Measurement-based timing analysis. In: Proceedings of the 3rd Int’l Symposium on Leveraging Applications of Formal Methods, Verification and Validation, Porto Sani, Greece (2008)
Wright, F.: Computing with Maple. Crc Mathematics Series. Chapman & Hall, London (2001)
Wenzel, I., Rieder, B., Kirner, R., Puschner, P.: Automatic timing model generation by CFG partitioning and model checking. In: Proceedings of the Conference on Design, Automation and Test in Europe (DATE’05), March, pp. 606–611. Munich, Germany. IEEE New York (2005)
Acknowledgments
We gratefully acknowledge the helpful comments of the anonymous referees and the feedback of the participants of the WCET’07 workshop. Especially, we would like to thank Niklas Holsti and Henrik Theiling for their many and very detailed comments, which helped to clarify and improve the presentation of this article.
Open Access
This article is distributed under the terms of the Creative Commons Attribution Noncommercial License which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Marko Boškovic, Bernhard Schätz, Claus Pahl, and Dragan Gasevic.
This work was partially funded by the Austrian Science Fund (Fonds zur Förderung der wissenschaftlichen Forschung) within the research project “Compiler-Support for Timing Analysis” (CoSTA) under contract P18925-N13, by the ARTIST2 and ARTIST-Design Networks of Excellence (http://www.artist-embedded.org/), and the research project “Integrating European Timing Analysis Technology” (ALL-TIMES) under contract No 215068 funded by the 7th EU R&D Framework Programme.
Rights and permissions
Open Access This is an open access article distributed under the terms of the Creative Commons Attribution Noncommercial License (https://creativecommons.org/licenses/by-nc/2.0), which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
About this article
Cite this article
Kirner, R., Knoop, J., Prantl, A. et al. Beyond loop bounds: comparing annotation languages for worst-case execution time analysis. Softw Syst Model 10, 411–437 (2011). https://doi.org/10.1007/s10270-010-0161-0
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-010-0161-0