Skip to main content
Log in

Combining static worst-case timing analysis and program proof

  • Published:
Real-Time Systems Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Carré, B., and Garnsworthy, J. 1990. Experiences with SPARK and its support tool, the SPARK Examiner. Ada User 11 (Supplement):

  • Carré, B. A. 1990. Validation Techniques II. Software Engineering for Electronic System Designers. Peter Peregrinus Ltd. 248–255.

  • Carré, B. A., and Bergeretti, J. F. 1985. Information-flow and data-flow analysis of while-programs. ACM Transactions on Programming Languages and Systems 7: 37–61.

    Google Scholar 

  • Carré, B. A., Jennings, T. J., Maclennan, F. J., Farrow, P. F., and Garnsworthy, J. R. 1992. SPARK: the SPADE Ada Kernel (edition 3.1). Program Validation Ltd.

  • Chapman, R. 1994. Worst-case timing analysis via finding longest paths in SPARK Ada basic-path graphs. Department of Computer Science, University of York.

  • Chapman, R. 1995. Static Timing Analysis and Program Proof. DPhil Thesis. Department of Computer Science, University of York, U.K. YCST-95-05. Also available via FTP from ftp.cs.york.ac.uk in file/reports/YCST-95-05.tar.Z

  • Char, B. W., Geddes, K. O., G. H., Leong, B. L., Monagan, M. B., and Watt, S. M. 1992. First Leaves: A Tutorial Introduction to Maple V. Springer-Verlag.

  • Coen-Porisini, A., and DePaoli, F. 1990. SYMBAD—A symbolic executor of sequential Ada programs. Safety of Computer Control Systems (SAFECOMP '90), Gatwick, England, IFAC Symposia Series ISS.17, 105–111.

  • Coen-Porisini, A., and DePaoli, F. 1991. SESAda, an Environment supporting Software Specialization. Third European Software Engineering Conference—ESEC '91 Milano, Italy, Springer-Verlag, Berlin, 226–289.

    Google Scholar 

  • DoD 1983. Reference Manual for the Ada Programming Language ANSI/MIL-STD 1815A.

  • Firth, J. R., Forsyth, C. H., and Wand, I. C. 1995. The Compilation of Ada. Department of Computer Science, University of York.

  • Goldberg, A., Wang, T. C., and Zimmerman, D. 1994. Applications of feasible path analysis to program testing. Proceedings of the International Symposium on Software Testing and Analysis, Seattle, Washington.

  • Halang, W. A. 1983. On real-time features available in high-level languages and yet to be implemented. Microprocessing and Microprogramming 12: 79–87.

    Google Scholar 

  • Halang, W. A. 1989. A Priori Execution Time Analysis for Parallel Processes. Proceedings of the Euromicro workshop on real-time systems, IEEE computer society press, 62–65.

  • Hantler, S. L., and King, J. C. 1976. An introduction to proving the correctness of programs. ACM Computing Surveys 8(3): 331–353.

    Google Scholar 

  • Harmon, M. G., Baker, T. P., and Whalley, D. B. 1994. A retargetable technique for predicting the execution time of code segments. Journal of Real Time Systems 7(2): 159–182.

    Google Scholar 

  • Huang, J. 1990. State constraints and pathwise decomposition of programs. IEEE Transactions on Software Engineering 16(8): 880–896.

    Google Scholar 

  • Internetrics 1995. Ada95 Reference Manual. International Standard ANSI/ISO/IEC-8652:1995. International Standards Organisation.

  • Jahanian, F., and Mok, A. K. 1986. Safety analysis of timing properties in real-time systems. IEEE Transactions on Software Engineering SE-12(1): 96–109.

    Google Scholar 

  • Jasper, R., Brennan, M., Williamson, K., Currier, C., and Zimmerman, D. 1994. Test data generation and feasible path analysis. Internanational Symposium on Software Testing and Analysis, Seattle, Washington.

  • Kemmerer, R. A., and Eckmann, S. T. 1985. UNISEX: A UNIx-based Symbolic EXecutor for Pascal. Software—Practice and Experience 15(5): 439–458.

    Google Scholar 

  • Ko, L., and Whalley, D. 1995. Supporting user-friendly analysis of timing constraints. Proceedings of the 1995 workshop on Language, Compiler and Tool Support for Real-Time Systems (in conjunction with the ACM conference on Programming Language Design and Implementation), La Jolla, California, USA.

  • Kopetz, H., Fohler, G., Grünsteidl, G., Kantz, H., Pospischil, G., Puschner, P., Reisinger, J., Schlatterbeck, R., Schütz, W., Vrchoticky, A., and Zainlinger, R. 1992. The Programmer's View of MARS, IEEE Real-Time Systems Symposium, Pheonix, Arizona, USA, IEEE Press, 223–226.

    Google Scholar 

  • Lee, M., Min, S. L., Park, C. Y., Bae, Y. H., Shin, H., and Kim, C. S. 1993. A Dual-Mode Instruction Prefetch Scheme for Improved Worst Case and Average Case Program Execution Times. Proceedings of the Real-Time Systems Symposium, Raliegh-Durham, North Carolina, IEEE Computer Society Press, 98–105.

    Google Scholar 

  • Lim, S., Rhee, B., Shin, H., Bae, Y. H., Min, S. L., Park, K., Jang, G. T., Park, C. Y., and Kim, C. S. 1994. An accurate worst-case timing analysis technique for RISC processors. Real-Time Systems Symposium, Puerto-Rico, IEEE Press, 97–108.

    Google Scholar 

  • Liu, J., and Lee, H. 1994. Deterministic upperbounds of the worst-case execution times of cached programs. Real-Time Systems Symposium, Puerto-Rico, IEEE Press, 182–191.

    Google Scholar 

  • Manna, Z. 1974. Mathematical Theory of Computation. McGraw Hill.

  • Mok, A. 1989. Evaluating Tight Execution Time Bounds of Programs by Annotations. Proceedings of 6th IEEE Workshop on Real-time operating Systems and Software, 74–80.

  • Motorola 1985. MC68020 32-Bit Microprocessor User's Manual (2nd edition). Prentice Hall, Inc.

  • Mueller, F., Arnold, R., and Whalley, D. 1994. Bounding Worst-Case Instruction Cache Performance. Real-Time Systems Symposium, Puerto-Rico, IEEE Press, 172–181.

    Google Scholar 

  • Nilsen, K., and Narasimhan, K. 1994. Portable Execution Time Analysis for RISC Processors. ACM Workshop on language, compiler and tool support for real-time systems (in conjunction with the 1994 ACM SUGPLAN PLDI conference), Walt Disney World, Florida, USA, University of Maryland.

  • Nilsen, K. D., and Basumallick, S. 1994. Cache Issues in Real-Time Systems. ACM Workshop on Language, Compiler, and Tool Support for Real-Time Systems (in conjuntion with the 1994 ACM SIGPLAN PLDI conference), Florida, University of Maryland.

  • Park, C. Y. 1992. Predicting determinstic execution times of real-time programs. PhD Thesis. University of Washington.

  • Park, C. Y. 1993. Predicting program execution times by analyzing static and dynamic program paths. Journal of Real Time Systems 5: 31–62.

    Google Scholar 

  • Park, C. Y., and Shaw, A. C. 1991. Experiments with a program timing tool based on source-level timing schema. IEEE Computer 24(5): 48–57.

    Google Scholar 

  • Pugh, W. 1994. Counting solutions to Presburger Formulas: How and Why. ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, Walt Disney World, Florida, U.S.A., ACM Press, 121–134.

    Google Scholar 

  • Puschner, P., and Koza, C. 1989. Calculating the maximum execution time of real-time programs. Journal of Real Time Systems 1(2): 159–176.

    Google Scholar 

  • PVL 1992a. Generation of Path Functions and Verification Conditions for SPARK Programs Edition 1.2(c). Southampton, U.K.: Program Validation Limited.

    Google Scholar 

  • PVL 1992b. SPARK Examiner Version A Release 1.2(a).

  • Radstone 1993. PME 68-23/23M CPU Manual. Radstone Technologies PLC, Towcester, Northants, U.K.

  • Raduenz, B. D., Suter, B. W., and Christensen, E. R. 1993. Analysis of an Ada based version of Glassman's general N point fast fourier transform. Computer and Mathematics with Applications 26(2): 61–65.

    Google Scholar 

  • Sedgewick, R. 1988. Algorithms (2nd edition). Addison-Wesley.

  • Shaw, A. C. 1989. Reasoning about time in higher level language software. IEEE Transactions on Software Engineering 15(7): 875–889.

    Google Scholar 

  • Stoyenko, A. D., Hamacher, C., and Holt, R. C. 1991. Analyzing hard real-time programs for guaranteed schedulability. IEEE Transactions on Software Engineering 17(8): 737–750.

    Google Scholar 

  • Stoyenko, A. D., Younis, M., Marlowe, T. J., and Halang, W. A. 1992. Enabling Efficient Schedulability Analysis through Conditional Linking and Program Transformations. New Jersey Institute of Technology.

  • Tarjan, R. E. 1981. A unified approach to path problems. Journal of the ACM 28(3): 577–593.

    Google Scholar 

  • Wichmann, B. A. 1988. Validation Code for the Whetstone Benchmark. Teddington, Middlesex, TW11 OLW, U.K.: National Physical Laboratory.

    Google Scholar 

  • Wolfram, S. 1988. Mathematica: A System for Doing Mathematics by Computer. Redwood City: Addison-Wesley.

    Google Scholar 

  • Zhang, N., Burns, A., and Nicholson, M. 1993. Pipelined processors and worst-case execution times. Journal of Real Time Systems 5(4): 319–343.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was completed while Rod Chapman was with the Dependable Computing Systems Centre at the University of York.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chapman, R., Burns, A. & Wellings, A. Combining static worst-case timing analysis and program proof. Real-Time Systems 11, 145–171 (1996). https://doi.org/10.1007/BF00365316

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00365316

Keywords

Navigation