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.
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.
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.
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.
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.
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.
Huang, J. 1990. State constraints and pathwise decomposition of programs. IEEE Transactions on Software Engineering 16(8): 880–896.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Puschner, P., and Koza, C. 1989. Calculating the maximum execution time of real-time programs. Journal of Real Time Systems 1(2): 159–176.
PVL 1992a. Generation of Path Functions and Verification Conditions for SPARK Programs Edition 1.2(c). Southampton, U.K.: Program Validation Limited.
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.
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.
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.
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.
Wichmann, B. A. 1988. Validation Code for the Whetstone Benchmark. Teddington, Middlesex, TW11 OLW, U.K.: National Physical Laboratory.
Wolfram, S. 1988. Mathematica: A System for Doing Mathematics by Computer. Redwood City: Addison-Wesley.
Zhang, N., Burns, A., and Nicholson, M. 1993. Pipelined processors and worst-case execution times. Journal of Real Time Systems 5(4): 319–343.
Author information
Authors and Affiliations
Additional information
This work was completed while Rod Chapman was with the Dependable Computing Systems Centre at the University of York.
Rights 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
Issue Date:
DOI: https://doi.org/10.1007/BF00365316