Abstract
In this article we give an overview of the worst-case execution time (WCET) analysis research performed by the WCET group of the ASTEC Competence Centre at Uppsala University. Knowing the WCET of a program is necessary when designing and verifying real-time systems. The WCET depends both on the program flow, such as loop iterations and function calls, and on hardware factors, such as caches and pipelines. WCET estimates should be both safe (no underestimation allowed) and tight (as little overestimation as possible). We have defined a modular architecture for a WCET tool, used both to identify the components of the overall WCET analysis problem, and as a starting point for the development of a WCET tool prototype. Within this framework we have proposed solutions to several key problems in WCET analysis, including representation and analysis of the control flow of programs, modeling of the behavior and timing of pipelines and other low-level timing aspects, integration of control flow information and low-level timing to obtain a safe and tight WCET estimate, and validation of our tools and methods. We have focussed on the needs of embedded real-time systems in designing our tools and directing our research. Our long-term goal is to provide WCET analysis as a part of the standard tool chain for embedded development (together with compilers, debuggers, and simulators). This is facilitated by our cooperation with the embedded systems programming-tools vendor IAR Systems.
Similar content being viewed by others
References
Audsley, N., Burns, A., Davis, K., Tindell, R., Wellings A.: Fixed priority pre-emptive scheduling: an historical perspective. Real-Time Syst 8(2/3):129–154, 1995
Altenbernd, P.: On the false path problem in hard real-time programs. In: Proc. 8th Euromicro Workshop of Real-Time Systems, pp. 102–107, 1996
ARM (Advanced Risc Machines) WWW Homepage.: URL: http://www.arm.com
Aho, A., Sethi, R., Ullman, J.: Compilers: principles, techniques and tools. Addison-Wesley, Reading, Mass., USA, 1986. Generally known as the “Dragon book”
Bate, I., Bernat, G., Murphy, G., Puschner, P.: Low-level analysis of a portable java byte code WCET analysis framework. In: Proc. 7th International Conference on Real-Time Computing Systems and Applications (RTCSA’00), pp. 39–48, 2000
Bernat, G., Burns, A., Wellings, A.: Portable worst-case execution time analysis using java byte code. In: Proc. 12th Euromicro Conference of Real-Time Systems, (ECRTS’00), pp. 81–88, 2000
Benitez, M.E., Davidson, J.W.: A portable global optimizer and linker. In: Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’98), pp. 329–338, June 1988
Bozga, M., Daws, C., Maler, O., Olivero, A., Tripakis, S., Yovine, S.: KRONOS: a model-checking tool for real-time systems. In: Proc. of the 10th International Conference on Computer Aided Verification, Lecture Notes in Computer Science, vol. 1427. Berlin, Heidelberg, New York: Springer, 1998, pp. 546–550
Busquets-Mataix, J.V., Serrano, J.J., Ors, P., Gil, R., Wellings, A.: Adding instruction cache effects to schedulability analysis of preemptive real-time systems. In: Proc. 2nd IEEE Real-Time Technology and Applications Symposium (RTAS’96), June, pp. 204–212. IEEE Computer Society, New York, 1996
Börjesson, H.: Incorporating worst-case execution time in a commercial c-compiler. Master’s thesis, Department of Computer Systems, Uppsala University, December 1995. DoCS MSc Thesis 95/69
Bermudo, N., Vera, X., González, A., Llosa, J.: An efficient solver for cache miss equations. In: IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS’00), 2000
Chapman, R., Burns, A., Wellings, A.: Integrated program proof and worst-case timing analysis of SPARK Ada. In: Proc. ACM SIGPLAN Workshop on Languages, Compilers and Tools for Real-Time Systems (LCT-RTS’94), 1994
Cousot, P.: Abstract interpretation. ACM Comput Surv 28(2):324–328, 1996
Colin, A., Puaut, I.: Worst case execution time analysis for a processor with branch prediction. J Real-Time Syst May 2000
Colin, A., Puaut, I.: A modular and retargetable framework for tree-based WCET analysis. In: Proc. 13th Euromicro Conference of Real-Time Systems, (ECRTS’01), June 2001
Colin, A., Puaut, I.: Worst-case execution time analysis for the RTEMS real-time operating system. In: Proc. 13th Euromicro Conference of Real-Time Systems, (ECRTS’01), June 2001
Casparsson, L., Rajnak, A., Tindell, K., Malmberg, P.: Volcano – a revolution in on-board communications. Volvo Technology Report, 1:9–19, 1998
Dean, A., Shen, J.P.: System-level issues for software thread integration: guest triggering and host selection. In: Proc. 20th IEEE Real-Time Systems Symposium (RTSS’99), 1999
Engblom, J., Altenbernd, P., Ermedahl, A.: Facilitating worst-case execution times analysis for optimized code. In: Proc. 10th Euromicro Workshop of Real-Time Systems, pp. 146–153, June 1998
Engblom, J., Ermedahl, A.: Pipeline timing analysis using a trace-driven simulator. In: Proc. 6th International Conference on Real-Time Computing Systems and Applications (RTCSA’99). IEEE Computer Society Press, December 1999
Engblom, J., Ermedahl, A.: Modeling complex flows for worst-case execution time analysis. In: Proc. 21st IEEE Real-Time Systems Symposium (RTSS’00), November 2000
Engblom, J., Ermedahl, A.: Validating a worst-case execution time analysis method for an embedded processor. In: Work-in-Progress Session, 21st IEEE Real-Time Systems Symposium (RTSS’00), November 2000
Ermedahl, A., Gustafsson, J.: Deriving annotations for tight calculation of execution time. In: Proc. 3rd International European Conference on Parallel Processing, (Euro-Par’97), Lecture Notes in Computer Science, vol. 1300. Berlin, Heidelberg, New York: Springer, 1998, pp. 1298–1307
Engblom, J.: Worst-case execution time analysis for optimized code. Master’s thesis, Department of Computer Systems, Uppsala University, September 1997. DoCS MSc Thesis 97/94
Engblom, J.: Static properties of embedded real-time programs, and their implications for worst-case execution time analysis. In: Proc. 5th IEEE Real-Time Technology and Applications Symposium (RTAS’99). IEEE Computer Society, New York, 1999
Erpenbach, E., Stappert, F., Stroop, J.: Compilation and timing analysis of statecharts models for embedded systems. In: Proc. 2nd International Workshop on Compiler and Architecture Support for Embedded Systems, (CASES’99), October 1999
Ernst, R., Ye, W.: Embedded program timing analysis based on path clustering and architecture classification. In: International Conference on Computer-Aided Design (ICCAD ’97), 1997
Ferdinand, C., Martin, F., Wilhelm, R.: Applying compiler techniques to cache behavior prediction. In: Proc. ACM SIGPLAN Workshop on Languages, Compilers and Tools for Real-Time Systems (LCT-RTS’97), 1997
Gustafsson, J., Ermedahl, A.: Automatic derivation of path and loop annotations in object-oriented real-time programs. J Parallel Distrib Comput Pract 1998
Ghosh, S., Martonosi, M., Malik, S.: Cache miss equations: a compiler framework for analyzing and tuning memory behavior. In: ACM Transactions on Programming Languages and Systems, 1998
Gustafsson, J.: Analyzing execution-time of object-oriented programs using abstract interpretation. PhD thesis, Department of Computer Systems, Information Technology, Uppsala University, May 2000
Halfhill, T.R.: Embedded market breaks new ground. Microprocessor Report, January 17, 2000
Healy, C., Arnold, R., Müller, F., Whalley, D., Harmon, M.: Bounding pipeline and instruction cache performance. IEEE Trans Comput 48(1), 1999
Henzinger, T.A., Ho, P-H., Wong-Toi, H.: HYTECH: a model checker for hybrid systems. In: Proc. of the 9th International Conference on Computer Aided Verification, Lecture Notes in Computer Science, vol. 1254. Berlin, Heidelberg, New York: Springer, 1997, pp. 460–463
Holzmann, G.J.: The model checker spin. IEEE Trans Software Eng 23(5):279–295, 1997
Healy, C., Sjödin, M., Rustagi, V., Whalley, D., van Engelen, R.: Supporting timing analysis by automatic bounding of loop iterations. J Real-Time Syst May 2000
Healy, C., Sjödin, M., Rustagi, V., Whalley, D.: Bounding loop iterations for timing analysis. In: Proc. 4th IEEE Real-Time Technology and Applications Symposium (RTAS’98), June 1998
I-Logix WWW Homepage.: URL: http://www.ilogix.com/smover_c.htm
IAR Systems WWW Homepage.: URL: http://www.iar.com
IAR Systems.: Reference Applications of VisualSTATE. http://www.iar.dk/products/references.htm
IAR Systems.: V850 C/EC++ Compiler Programming Guide, 1st edn. January 1999
ISL (Intelligent Systems Laboratory).: SICStus Prolog user’s manual. ISBN 91-630-3648-7, Swedish Institute of Computer Science, 1995
Kim, S.-K., Min, S.L., Ha, R.: Efficient worst case timing analysis of data caching. In: Proc. 2nd IEEE Real-Time Technology and Applications Symposium (RTAS’96), pp. 230–240, 1996
Lim, S.-S., Bae, Y.H., Jang, C.T., Rhee, B.-D., Min, S.L., Park, C.Y., Shin, H., Park, K., Ki, C.S.: An accurate worst-case timing analysis for RISC processors. IEEE Trans Software Eng 21(7):593–604, 1995
Liu, Y.A., Gomez, G.: Automatic accurate time-bound analysis for high-level languages. In: Proc. ACM SIGPLAN Workshop on Languages, Compilers and Tools for Embedded Systems (LCTES’98), 1998
Lim, S.-S., Han, J.H., Kim, J., Min, S.L.: A worst case timing analysis technique for multiple-issue machines. In: Proc. 19th IEEE Real-Time Systems Symposium (RTSS’98), December 1998
Lee, C., Han, J., Seo, Y., Min, S., Ha, R., Hong, S., Park, C., Lee, M., Kim, C.: Analysis of cache-related preemption delay in fixed-priority preemptive scheduling. In: Proc. 17th IEEE Real-Time Systems Symposium (RTSS’96), December 1996
Lindgren, M.: Measurements and simulation based techniques for real-time systems analysis. Licentiate Thesis, Uppsala University of Technology, Uppsala, Sweden, 2000
Lim, S-S., Kim, J., Min, S.L.: A worst case timing analysis technique for optimized programs. In: Proc. 5th International Conference on Real-Time Computing Systems and Applications (RTCSA’98), pp. 151–157, Oct 1998
Liu, C., Layland, J.: Scheduling algorithms for multiprogramming in a hard-real-time environment. J ACM, 20(1):46–61, 1973
Li, Y-T.S., Malik, S.: Performance analysis of embedded software using implicit path enumeration. In: Proc. of the 32nd Design Automation Conference, pp. 456–461, 1995
Li, Y-T.S., Malik, S., Wolfe, A.: Cache modelling for real-time software: beyond direct mapped instruction caches. In: Proc. 17th IEEE Real-Time Systems Symposium (RTSS’96), pp. 254–263. IEEE Computer Society, December 1996
Larsen, K.G., Pettersson, P., Yi, W.: Uppaal in a nutshell,. Int J Software Tools Technol Transfer 1(1–2):134–152, 1997
Lundqvist, T., Stenström, P.: Integrating path and timing analysis using instruction-level simulation techniques. In: Proc. ACM SIGPLAN Workshop on Languages, Compilers and Tools for Embedded Systems (LCTES’98), June 1998
Microprocessor Report.: Tera-Gen Reveals 8-bit Threaded Processor. Microprocessor Report, January 25, 1999
Muchnick, S.S.: Advanced compiler design. San Francisco: Morgan Kaufmann, 1997
Müller, F.: Timing predictions for multi-level caches. In: Proc. ACM SIGPLAN Workshop on Languages, Compilers and Tools for Real-Time Systems (LCT-RTS’97), pp. 29–36, Jun 1997
NEC Corporation.: V850E/MS1 32/16-bit Single Chip Microcontroller: Architecture, 3rd edn. January 1999. Document no. U12197EJ3V0UM00
Ottosson, G., Sjödin, M.: Worst-case execution time analysis for modern hardware architectures. In: Proc. ACM SIGPLAN Workshop on Languages, Compilers and Tools for Real-Time Systems (LCT-RTS’97), June 1997
Park, C.Y.: Predicting program execution times by analyzing static and dynamic program paths. Real-Time Syst 5(1):31–62, 1993
Petters, S., Färber, G.: Making worst-case execution time analysis for hard real-time tasks on state of the art processors feasible. In: Proc. 6th International Conference on Real-Time Computing Systems and Applications (RTCSA’99), December 1999
Persson, P., Hedin, G.: Interactive execution time predictions using reference attributed grammars. In: Proc. of the 2nd Workshop on Attribute Grammars and their Applications (WAGA’99), Amsterdam, Netherlands, pp. 173–184, August 1998
Puschner, P., Koza, C.: Calculating the maximum execution time of real-time programs. J Real-Time Syst, 1(1):159–176, 1989
Park, C.Y., Shaw, A.C.: Experiments with a program timing tool based on a source-level timing schema. In: Proc. 11th IEEE Real-Time Systems Symposium (RTSS’90), pp. 72–81, December 1990
Puschner, P., Schedl, A.: Computing maximum task execution times with linear programming techniques. Technical report, Technische Universität, Institut für Technische Informatik, Wien, April 1995
Raymond, E.: The Jargon File, version 4.2.0. URL: http://www.tuxedo.org/~esr/jargon/html/index.html, February 2000
Runeson, J.: Code compression through procedural abstraction before register allocation. Master’s thesis, Department of Information Technology, Uppsala University, March 2000
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
Scenix Semiconductor Inc.: Scenix SX Family User’s Manual, 3rd edn. 2000
Schneider, J.: Cache and pipeline sensitive fixed priority scheduling for preemptive real-time systems. In: Proc. 21st IEEE Real-Time Systems Symposium (RTSS’00), pp. 195–204, Nov 2000
Schneider, J., Ferdinand C.: Pipeline behaviour prediction for superscalar processors by abstract interpretation. In: Proc. ACM SIGPLAN Workshop on Languages, Compilers and Tools for Embedded Systems (LCTES’99), May 1999
Seppänen, V., Kähkönen, A-M., Oivo, M., Perunka, H., Isomursu, P., Pulli, P.: Strategic needs and future trends of embedded software. Technical Report Technology Review 48/96, TEKES Technology Development Center, Oulu, Finland, October 1996
Telelogic WWW Homepage.: URL: http://www.telelogic.com/tau4
David Tennenhouse (Intel Director of Research).: Keynote Speech at the 20th IEEE Real-Time Systems Symposium (RTSS’99), Phoenix, Ariz., December 1999
White, R., Müller, F., Healy, C., Whalley, D., Harmon, M.: Timing Analysis for Data Caches and Set-Associative Caches. In: Proc. 3rd IEEE Real-Time Technology and Applications Symposium (RTAS’97), pp. 192–202, June 1997
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Engblom , J., Ermedahl , A., Sjödin , M. et al. Worst-case execution-time analysis for embedded real-time systems. STTT 4, 437–455 (2003). https://doi.org/10.1007/s100090100054
Published:
Issue Date:
DOI: https://doi.org/10.1007/s100090100054