Combining static worst-case timing analysis and program proof

This paper describes SPATS—a new toolset for the development of safety-critical and hard real-time systems. SPATS integrates the analysis traditionally offered by program proof and static timing analysis tools through analysis of program basic-path graphs. This paper concentrates on SPATS' facilities for high-level static timing analysis and analysis of worst-case stack usage. The integration of timing analysis and program proof allows timing analysis to be performed where worst-case execution time (WCET) depends on a program's input data, and allows timing annotations to be formally verified. The approach is developed and illustrated with a worked example. The implementation and experimental application of SPATS to realistic industrial case-studies are also described. We conclude that SPATS offers a novel new approach to static timing analysis, offers several new analyses not seen in previous systems, and can be implemented in a useful and efficient toolset.

[1]  Richard C. Holt,et al.  Analyzing Hard-Real-Time Programs For Guaranteed Schedulability , 1991, IEEE Trans. Software Eng..

[2]  Lawrence S. Kroll Mathematica--A System for Doing Mathematics by Computer. , 1989 .

[3]  Juris Hartmanis,et al.  The Programming Language Ada Reference Manual American National Standards Institute, Inc. ANSI/MIL-STD-1815A-1983 , 1983, Lecture Notes in Computer Science.

[4]  David B. Whalley,et al.  A retargetable technique for predicting execution time of code segments , 2005, Real-Time Systems.

[5]  David B. Whalley,et al.  A retargetable technique for predicting execution time , 1992, [1992] Proceedings Real-Time Systems Symposium.

[6]  Sang Lyul Min,et al.  An accurate worst case timing analysis technique for RISC processors , 1994, 1994 Proceedings Real-Time Systems Symposium.

[7]  Nancy G. Leveson,et al.  An experimental evaluation of the assumption of independence in multiversion programming , 1986, IEEE Transactions on Software Engineering.

[8]  Keith E. Williamson,et al.  Test data generation and feasible path analysis , 1994, ISSTA '94.

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

[10]  David B. Whalley,et al.  Supporting User-Friendly Analysis of Timing Constraints , 1995, Workshop on Languages, Compilers, & Tools for Real-Time Systems.

[11]  Alan C. Shaw,et al.  Experiments with a program timing tool based on source-level timing schema , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[12]  B. W. Suter,et al.  Analysis of an ADA Based Version of Glassman's General N Point Fast Fourier Transform , 1993 .

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

[14]  Robert E. Tarjan,et al.  A Unified Approach to Path Problems , 1981, JACM.

[15]  Wolfgang A. Halang On real-time features available in high-level languages and yet to be implemented , 1983 .

[16]  Chang Yun Park,et al.  Predicting program execution times by analyzing static and dynamic program paths , 1993, Real-Time Systems.

[17]  Kelvin D. Nilsen,et al.  Portable Execution Time Analysis for RISC Processors , 1994 .

[18]  Bernard Carré,et al.  Information-flow and data-flow analysis of while-programs , 1985, TOPL.

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

[20]  Jyh-Charn Liu,et al.  Deterministic upperbounds of the worst-case execution times of cached programs , 1994, 1994 Proceedings Real-Time Systems Symposium.

[21]  Gerhard Fohler,et al.  The programmer's view of MARS , 1992, [1992] Proceedings Real-Time Systems Symposium.

[22]  Allen Goldberg,et al.  Applications of feasible path analysis to program testing , 1994, ISSTA '94.

[23]  Aloysius K. Mok,et al.  Safety analysis of timing properties in real-time systems , 1986, IEEE Transactions on Software Engineering.

[24]  Alan Burns,et al.  Pipelined processors and worst case execution times , 1993, Real-Time Systems.

[25]  J. C. Huang State Constraints and Pathwise Decomposition of Programs , 1990, IEEE Trans. Software Eng..

[26]  Richard A. Kemmerer,et al.  Unisex: A unix‐based symbolic executor for pascal , 1985, Softw. Pract. Exp..

[27]  Zohar Manna,et al.  Mathematical Theory of Computation , 2003 .

[28]  Robert Sedgewick Algorithms, 2nd Edition , 1988 .

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

[30]  Bruce W. Char,et al.  First Leaves: A Tutorial Introduction to Maple V , 1992 .

[31]  W. Ames Algorithms (2nd edition) , 1990 .

[32]  Wolfgang A. Halang,et al.  Enabling efficient schedulability analysis through conditional linking and program transformations , 1993 .

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

[34]  I. C. Wand,et al.  The compilation of Ada , 1996 .

[35]  W. A. Halang A priori execution time analysis for parallel processes , 1989, [1989] Proceedings. EUROMICRO Workshop on Real Time.

[36]  Flavio De Paoli,et al.  SESADA: An Environment Supporting Software Specialization , 1991, ESEC.

[37]  Kelvin D. Nilsen,et al.  Cache Issues in Real-Time Systems , 1994 .

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

[39]  SIDNEY L. HANTLER,et al.  An Introduction to Proving the Correctness of Programs , 1976, CSUR.

[40]  Sang Lyul Min,et al.  A dual-mode instruction prefetch scheme for improved worst case and average case program execution times , 1993, 1993 Proceedings Real-Time Systems Symposium.

[41]  William Pugh,et al.  Counting solutions to Presburger formulas: how and why , 1994, PLDI '94.

[42]  R. C. Welland,et al.  Software Engineering for Electronic Systems Designers , 1990 .

[43]  David Whalley,et al.  Supporting user-friendly analysis of timing constraints , 1995 .

[44]  Roderick Chapman,et al.  Static timing analysis and program proof , 1995 .

[45]  F. De Paoli,et al.  SYMBAD: A SYMBOLIC EXECUTOR OF SEQUENTIAL ADA PROGRAMS , 1990 .