Software & Systems Modeling

, Volume 10, Issue 3, pp 411–437 | Cite as

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

  • Raimund Kirner
  • Jens Knoop
  • Adrian Prantl
  • Markus Schordan
  • Albrecht Kadlec
Open Access
Theme Section

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.

Keywords

Worst-case execution time (WCET) analysis Annotation languages Path-oriented, constraint-oriented, and hierarchy-oriented WCET annotation languages WCET annotation language challenge 

References

  1. 1.
    AbsInt. aiT. Web page. http://www.absint.com/aiT. Accessed online in February (2010)
  2. 2.
    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-1Google Scholar
  3. 3.
    Ballabriga, C., Cassé, H., Nemer, F., Rochange, C., Sainrat, P.: OTAWA. Online Program Documentation. University of Toulouse, France. http://www.otawa.fr/ (2008)
  4. 4.
    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)Google Scholar
  5. 5.
    Bodík R., Gupta R., Soffa M.L.: Refining data flow information using infeasible paths. SIGSOFT Softw. Eng. Notes 22(6), 361–377 (1997)CrossRefGoogle Scholar
  6. 6.
    Blieberger J.: Discrete loops and worst case performance. Comp. Lang. 20(3), 193–212 (1994)CrossRefGoogle Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    Chapman R., Burns A., Wellings A.: Combining static worst-case timing analysis and program proof. Real-Time Syst. 11(2), 145–171 (1996)CrossRefGoogle Scholar
  9. 9.
    Chen, M.: A Timing Analysis Language—(TAL). Department of Computer Science, University of Texas, Austin, TX, USA (1987). Programmer’s ManualGoogle Scholar
  10. 10.
    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 DelftGoogle Scholar
  11. 11.
    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)
  12. 12.
    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)Google Scholar
  13. 13.
    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)Google Scholar
  14. 14.
    Ermedahl A., Stappert F., Engblom J.: Clustered worst-case execution time calculation. IEEE Trans. Comp. 54(9), 1104–1122 (2005)CrossRefGoogle Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    Floyd, R.: Assigning meaning to programs. In: Proceedings of the AMS Symposia in Applied Mathematics, pp. 19–32 (1967)Google Scholar
  17. 17.
    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)Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    Hecht M.S.: Flow Analysis of Computer Programs. Elsevier, North-Holland (1977)MATHGoogle Scholar
  20. 20.
    Heptane (Hades embedded processor timing analyzer). Tool web page: http://www.irisa.fr/aces/work/heptane-demo/heptane.html. Accessed online in February (2010)
  21. 21.
    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)Google Scholar
  22. 22.
    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)Google Scholar
  23. 23.
    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)Google Scholar
  24. 24.
    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)Google Scholar
  25. 25.
    Holsti, N., Långbacka, T., Saarinen, S.: Bound-T timing analysis tool User Manual. Tidorum Ltd (2005)]Google Scholar
  26. 26.
    Hoare C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)MATHCrossRefGoogle Scholar
  27. 27.
    Holsti N.: Bound-T assertion language: Planned extensions. Technical report. Tidorum Ltd, (2005)Google Scholar
  28. 28.
    IBM: IBM ILOG CPLEX—High-performance mathematical programming engine. Web page. http://www.ibm.com/software/integration/optimization/cplex/. Accessed in Feb. (2010)
  29. 29.
    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/
  30. 30.
    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)Google Scholar
  31. 31.
    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-1Google Scholar
  32. 32.
    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)Google Scholar
  33. 33.
    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)Google Scholar
  34. 34.
    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 YorkGoogle Scholar
  35. 35.
    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 YorkGoogle Scholar
  36. 36.
    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)Google Scholar
  37. 37.
    Klingerman E., Stoyenko Alexander D.: Real-time euclid: a language for reliable real-time systems. IEEE Trans. Softw. Eng. 12(9), 941–989 (1986)Google Scholar
  38. 38.
    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)Google Scholar
  39. 39.
    Lisper, B.: Ideas for annotation language(s). Technical Report Oct. 25, Department of Computer Science and Engineering, University of Mälardalen (2005)Google Scholar
  40. 40.
    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)
  41. 41.
    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
  42. 42.
    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)Google Scholar
  43. 43.
    lpsolve. Tool web page: http://lpsolve.sourceforge.net/. Accessed online in February (2010)
  44. 44.
    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)Google Scholar
  45. 45.
    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)Google Scholar
  46. 46.
    Maxima Manual, 5.18 edn. Available online at http://maxima.sourceforge.net/docs/manual/en/maxima.pdf
  47. 47.
    Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco (1997). ISBN 1-55860-320-4Google Scholar
  48. 48.
    MacNaughton, R., Yamada, H.: Regular expressions and state graphs for automata. IRE Trans. Electron. Comp. 9(39–47), (1960)Google Scholar
  49. 49.
    OMG. UML Profile for Modeling and Analysis of Real-time and Embedded Systems (MARTE). Object Management Group, June (2008)Google Scholar
  50. 50.
    Park, C.Y.: Predicting Deterministic Execution Times of Real-Time Programs. Ph.D. Thesis, University of Washington, Seattle, USA, 1992. TR 92-08-02Google Scholar
  51. 51.
    Park C.Y.: Predicting program execution times by analyzing static and dynamic program paths. Real-Time Syst. 5(1), 31–62 (1993)CrossRefGoogle Scholar
  52. 52.
    Puschner P., Koza C.: Calculating the maximum execution time of real-time programs. J. Real-Time Syst. 1, 159–176 (1989)CrossRefGoogle Scholar
  53. 53.
    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)Google Scholar
  54. 54.
    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)CrossRefGoogle Scholar
  55. 55.
    Puschner P., Schedl A.V.: Computing maximum task execution times—a graph-based approach. J. Real-Time Syst. 13, 67–91 (1997)CrossRefGoogle Scholar
  56. 56.
    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-3Google Scholar
  57. 57.
    RAPITA Systems Ltd. Worst-case execution time analysis. White Paper (Automotive), Rev. 1.32, 21st Sep. (2006)Google Scholar
  58. 58.
    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)CrossRefGoogle Scholar
  59. 59.
    Shaw A.C.: Reasoning about time in higher level language software. IEEE Trans. Softw. Eng. 15(7), 875–889 (1989)CrossRefGoogle Scholar
  60. 60.
    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)Google Scholar
  61. 61.
    Tarjan R.E.: Fast algorithms for solving path problems. J. ACM 28(3), 594–614 (1981)MATHCrossRefMathSciNetGoogle Scholar
  62. 62.
    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.Google Scholar
  63. 63.
    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)Google Scholar
  64. 64.
    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)Google Scholar
  65. 65.
    WCET annotation language challenge. Web page: http://costa.tuwien.ac.at/languages.html. Accessed online in Feb. (2010)
  66. 66.
    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)Google Scholar
  67. 67.
    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)Google Scholar
  68. 68.
    Wright, F.: Computing with Maple. Crc Mathematics Series. Chapman & Hall, London (2001)Google Scholar
  69. 69.
    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)Google Scholar

Copyright information

© The Author(s) 2010

Authors and Affiliations

  • Raimund Kirner
    • 1
  • Jens Knoop
    • 2
  • Adrian Prantl
    • 2
  • Markus Schordan
    • 3
  • Albrecht Kadlec
    • 1
  1. 1.Institute of Computer EngineeringVienna University of TechnologyViennaAustria
  2. 2.Institute of Computer LanguagesVienna University of TechnologyViennaAustria
  3. 3.University of Applied Sciences Technikum WienViennaAustria

Personalised recommendations