Skip to main content
Log in

Symbolic Cache Analysis for Real-Time Systems

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

Abstract

Caches impose a major problem for predicting execution times of real-time systems since the cache behavior depends on the history of previous memory references. Too pessimistic assumptions on cache hits can obtain worst-case execution time estimates that are prohibitive for real-time systems. This paper presents a novel approach for deriving a highly accurate analytical cache hit function for C-programs at compile-time based on the assumption that no external cache interference (e.g. process dispatching or DMA activity) occurs. First, a symbolic tracefile of an instrumented C-program is generated based on symbolic evaluation, which is a static technique to determine the dynamic behavior of programs. All memory references of a program are described by symbolic expressions and recurrences and stored in chronological order in the symbolic tracefile. Second, a cache hit function for several cache architectures is computed based on a cache evaluation technique. Our approach goes beyond previous work by precisely modelling program control flow and program unknowns, modelling large classes of cache architectures, and providing very accurate cache hit predictions. Examples for the SPARC architecture are used to illustrate the accuracy and effectiveness of our symbolic cache prediction.

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

  • Alt, M., Ferdinand, C., Martin, F., and Wilhelm, R. 1996. Cache behaviour prediction by abstract interpretation. Proc. of Static Analysis Symposium, pp. 52–66.

  • Altenbernd, P. 1996. On the false path problem in hard real-time programs. Proc. Euromicro Workshop on Real-Time Systems.

  • Arnold, R., Mueller, F., Whalley, D., and Harmon, M. 1994. Bounding worst-case instruction cache performance. Proc. of the IEEE Real-Time Systems Symposium, pp. 172–181.

  • Blieberger, J. 1994. Discrete loops and worst case performance. Computer Languages 20(3): 193–212.

    Google Scholar 

  • Blieberger, J. 1997. Data-flow frameworks for worst-case execution time analysis. To appear in Real-Time Systems.

  • Blieberger, J., and Burgstaller, B. 1998. Symbolic reaching definitions analysis of Ada programs. Proc. of the Ada-Europe International Conference on Reliable Software Technologies, pp. 238–250.

  • Blieberger, J., Burgstaller, B., and Scholz, B. 1999. Interprocedural symbolic analysis of Ada programs with aliases. Proc. of the Ada-Europe International Conference on Reliable Software Technologies. pp. 136–145.

  • Blieberger, J., and Lieger, R. 1996. Worst-case space and time complexity of recursive procedures. Real-Time Systems 11(2): 115–144.

    Google Scholar 

  • Callahan, D., Kennedy, K., and Portfield, A. 1990. Analyzing and Visualizing Performance of Memory Hierachies, Instrumentation for Visualization. ACM Press.

  • Chapman, R., Burns, A., and Wellings, A. 1996. Combining static worst-case timing analysis and program proof. The Journal of Real-Time Systems 11(2): 145–171.

    Google Scholar 

  • Cheatham, T., Holloway, H., and Townley, J. 1979. Symbolic evaluation and the analysis of programs. IEEE Trans. Software Eng. 5(4): 403–417.

    Google Scholar 

  • Dijkstra, E. 1976. A Discipline of Programming. New Jersey: Prentice Hall.

    Google Scholar 

  • Engblom, J., Altenbernd, P., and Ermedahl, A. 1998. Facilitating worst-case execution times analysis for optimized code. Proc. Euromicro Workshop on Real-Time Systems.

  • Fahringer, T. 1996. Automatic Performance Prediction of Parallel Programs. Boston: Kluwer Academic Publishers.

    Google Scholar 

  • Fahringer, T. 1997. Estimating cache performance for sequential and data parallel programs. Proc. of the International Conference and Exhibition on High-Performance Computing and Networking.

  • Fahringer, T. 1998a. Efficient symbolic analysis for parallelizing compilers and performance estimators. Journal of Supercomputing, Kluwer Academic Publishers 12(3).

  • Fahringer, T. 1998b. Symbolic analysis techniques for program parallelization. Journal of Future Generation Computer Systems, Elsevier Science, North-Holland 13(1997/98): 385–396.

    Google Scholar 

  • Fahringer, T., and Scholz, B. 1997. Symbolic evaluation for parallelizing compilers. Proc. of the ACM International Conference on Supercomputing.

  • Fahringer, T., and Scholz, B. 1999. Aunified symbolic evaluation framework for parallelizing compilers. Technical Report AURORA TR1999-15 (http://www.vcpc.univie.ac.at/aurora/), University of Vienna, Austria.

    Google Scholar 

  • Ferrante, J., Sarkar, V., and Trash, W. 1991. On estimating and enhancing cache effectiveness. Proc. of the Workshop on Languages and Compilers for Parallel Computing.

  • Gerlek, M. P., Stoltz, E., and Wolfe, M. 1995. Beyond induction variables: Detecting and classifying sequences using a demand-driven SSA form. ACM Transactions on Programming Languages and Systems (TOPLAS) 17(1): 85–122.

    Google Scholar 

  • Ghosh, S., Martonosi, M., and Malik, S. 1997. Cache miss equations: an analytical representation of cache misses. International Conference on Supercomputing.

  • Goldberg, A., and Hennessy, J. 1991. Performance debugging shared memory multiprocessor programs with MTOOL. Proc. of the Supercomputing Conference.

  • Haghighat, M., and Polychronopoulos, C. 1996. Symbolic analysis for parallelizing compilers. ACMTransactions on Programming Languages and Systems 18(4): 477–518.

    Google Scholar 

  • Healy, C., Whalley, D., and Harmon, M. 1995. Integrating the timing analysis of pipelining and instruction caching. Proc. of the IEEE Real-Time Systems Symposium, pp. 288–297.

  • Healy, C. A., Arnold, R. D., Mueller, F., Whalley, D., and Harmon, M. G. 1999. Bounding pipeline and instruction cache performance. IEEE Transactions on Computers 48(1).

  • Hennessy, J., and Patterson, D. 1990. Computer Architecture-A Quantitative Approach. San Mateo, CA: Morgan Kaufmann.

    Google Scholar 

  • Hunt, B. 1997. Acme Cache Simulator. Parallel Architecture Research Laboratory (PARL), Klipsch School of Electrical and Computer Engineering, New Mexico. URL http://tracebase.nmsu.edu/»acme/acs.html.

    Google Scholar 

  • Johnson, E., and Ha, J. 1994. PDATS lossless address trace compression for reducing file size and access time. Proc. of the IEEE International Phoenix Conference on omputers and Communication.

  • King, J. 1976. Symbolic execution and program testing. Commun. ACM 19(7): 385–394.

    Google Scholar 

  • Lam, M., Rothberg, E., and Wolf, M. 1991. The cache performance and optimization of blocked algorithms. Proc. of the Int. Conference on Architectural Support for Prog. Languages Operating Systems.

  • Lebeck, A., and Wood, D. 1994. Cache profiling and the SPEC benchmarks: A case study. IEEE Computer 27(10).

  • Li, Y., Malik, S., and Wolfe, A. 1995. Performance estimation of embedded software with instruction cache modeling. Proc. of the ACM/IEEE International Conference on Computer-Aided Design.

  • Li, Y., Malik, S., and Wolfe, A. 1996. Cache modeling for real-time software: Beyond direct mapped instruction caches. Proc. of the IEEE Real-Time Systems Symposium.

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

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

  • Lueker, G. S. 1980. Some techniques for solving recurrences. ACM Computing Surveys 12(4): 419–435.

    Google Scholar 

  • Mueller, F. 1997. Generalizing timing predictions to set-associative caches. Proc. of the EuroMicro, Workshop on Real Time Systems.

  • Nilsen, K., and Rygg, B. 1995. Worst-case execution time analysis on modern processors. Proc. of ACMSIGPLAN, Workshop on Languages, Computer and Tool Support for Real-Time Systems, pp. 20–30.

  • Ottosson, G., and Sjoedin, M. 1997. Worst case execution time analysis for modern hardware architectures. Proc. of ACM SIGPLAN, Workshop on Languages, Compilers and Tools for Real-Time Systems.

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

    Google Scholar 

  • Ploedereder, E. 1980. A semantic model for the analysis and verification of programs in general, higher-level languages. Ph.D. thesis, Harvard University.

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

    Google Scholar 

  • Rawat, J. 1993. Static analysis of cache performance for real-time programming. Master's thesis, Iowa State University of Science and Technology, Dept. of Computer Science.

  • Scheibl, M., Celic, A., and Fahringer, T. 1996. Interfacing Mathematica from the Vienna Fortran compilation system. Technical Report, Institute for Software Technology and Parallel Systems, Univ. of Vienna.

  • Smith, A. 1982. Cache memories. Computing Surveys 14(3).

  • Temam, O., Fricker, C., and Jalby, W. 1994. Cache interference phenomena. Proc. of the ACM SIGMETRICS Conference.

  • Theiling, H., and Ferdinand, C. 1998. Combining abstract interpretation and ILP for microarchitecture modelling and program path analysis. Proc. of the IEEE Real-Time Systems Symposium.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Blieberger, J., Fahringer, T. & Scholz, B. Symbolic Cache Analysis for Real-Time Systems. Real-Time Systems 18, 181–215 (2000). https://doi.org/10.1023/A:1008193114940

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008193114940

Navigation