Automated Worst-Case Execution Time Analysis Based on Program Modes

A program mode is a regular trajectory of the execution of a program that is determined by the values of its input variables. By exploiting program modes, we may make worst-case execution time (WCET) analysis more precise. This paper presents a novel method to automatically find program modes and calculate the WCET estimates of programs. First, the modes of a program will be identified automatically by mode-relevant program slicing, and the precondition will be calculated for each mode using a path-wise test data generation method. Then, for each feasible mode, we show how to calculate its WCET estimate for modern reduced instruction set computer (RISC) processors with caches and pipelines and for traditional complex instruction set computer (CISC) processors. We also present a method to obtain the symbolic expression for each mode for CISC processors. The experimental results show the effectiveness of the method.

[1]  Ji Mengluo An Automatic WCET Analysis Tool Based on Abstract Interpretation , 2006 .

[2]  David Whalley,et al.  Parametric Timing Analysis , 2001 .

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

[4]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[5]  Wang Huaimin,et al.  Symbolic WCET Analysis of Programs Containing Input-Dependent Branches , 2006 .

[6]  Allen Van Gelder,et al.  Computer Algorithms: Introduction to Design and Analysis , 1978 .

[7]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[8]  James E. Smith,et al.  A study of branch prediction strategies , 1981, ISCA '98.

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

[10]  C. Q. Lee,et al.  The Computer Journal , 1958, Nature.

[11]  Ronald L. Graham,et al.  Concrete mathematics - a foundation for computer science , 1991 .

[12]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[13]  Alan Burns,et al.  Guest Editorial: A Review of Worst-Case Execution-Time Analysis , 2000, Real-Time Systems.

[14]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[15]  William H. Harrison,et al.  Compiler Analysis of the Value Ranges for Variables , 1977, IEEE Transactions on Software Engineering.

[16]  Harish Gupta Computer Algorithms: Introduction To Design And Analysis , 2011 .

[17]  James R. Larus,et al.  Static branch frequency and program profile analysis , 1994, MICRO 27.

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

[19]  Mary Lou Soffa,et al.  Automated test data generation using an iterative relaxation method , 1998, SIGSOFT '98/FSE-6.

[20]  Sang Lyul Min,et al.  Languages, Compilers, and Tools for Embedded Systems , 2001, Lecture Notes in Computer Science.

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

[22]  James R. Larus,et al.  Efficient path profiling , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

[23]  Ji Wang,et al.  Improved method to generate path-wise test data , 2003, Journal of Computer Science and Technology.

[24]  Sander Stuijk,et al.  Automatic scenario detection for improved WCET estimation , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[25]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

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

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

[28]  Johann Blieberger,et al.  Data-Flow Frameworks for Worst-Case Execution Time Analysis , 2002, Real-Time Systems.

[29]  Guillem Bernat,et al.  An Approach to Symbolic Worst-Case Execution Time Analysis , 2000 .

[30]  David A. Patterson,et al.  Computer Architecture - A Quantitative Approach, 5th Edition , 1996 .

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

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

[33]  Ronald L. Graham,et al.  Concrete mathematics - a foundation for computer science (2. ed.) , 1994 .