Skip to main content

Cache behavior prediction by abstract interpretation

  • Contributed Papers
  • Conference paper
  • First Online:
Static Analysis (SAS 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1145))

Included in the following conference series:

  • 319 Accesses

Abstract

Abstract Interpretation is a technique for the static analysis of dynamic properties of programs. It is semantics based, that is, it computes approximative properties of the semantics of programs. On this basis, it allows for correctness proofs of analyzes. It thus replaces commonly used ad hoc techniques by systematic, provable ones, and it allows the automatic generation of analyzers from specifications as in the Program Analyzer Generator, PAG.

In this paper, abstract interpretation is applied to the problem of predicting the cache behavior of programs. Abstract semantics of machine programs for different types of caches are defined which determine the contents of caches. The calculated information allows to sharpen worst case execution times of programs by replacing the worst case assumption ‘cache miss’ by ‘cache hit’ at some places in the programs. It is possible to analyse instruction, data, and combined instruction/data caches for common (re)placement and write strategies. The analysis is designed generic with the cache logic as parameter.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Martin Alt and Florian Martin. Generation of efficient interprocedural analyzers with PAG. In SAS'95, Static Analysis Symposium, pages 33–50. Springer-Verlag LNCS 983, September 1995.

    Google Scholar 

  2. Robert Arnold, Frank Mueller, David B. Whalley, and Marion Harmon. Bounding worst-case instruction cache performance. In IEEE Symposium on Real-Time Systems, pages 172–181, Dec 1994.

    Google Scholar 

  3. Swagato Basumallick and Kelvin Nilsen. Cache issues in real-time systems. In Proceedings of the 1994 ACM SIGPLAN Workshop on Language, Compiler and Tool Support for Real-Time Systems, June 1994.

    Google Scholar 

  4. P. Cousot and R. Cousot. Static determination of dynamic properties of programs. In Proceedings of the second International Symposium on Programming, pages 106–130, Dunod, Paris, France, 1976.

    Google Scholar 

  5. P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the 4th ACM Symposium on Principles of Programming Languages, pages 238–252, Los Angeles, CA, January 1977.

    Google Scholar 

  6. Wolfgang A. Halang and Krzysztof M. Sacha. Real-Time Systems. World Scientific, 1992.

    Google Scholar 

  7. Ludwell Harrison. Personal communication on Abstract Interpretation, Dagstuhl Seminar, 1995.

    Google Scholar 

  8. J.L Hennessy and D.A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 1990.

    Google Scholar 

  9. Sung-Soo Lim, Young Hyun Bae, Gye Tae Jang, Byung-Do Rhee, Sang Lyul Min, Chang Yun Park, Heonshik Shin, Kunsoo Park, Soo-Mook Moon, and Chong Sangz Kim. An accurate worst case timing analysis for risc processors. IEEE Transactions on Software Engineering, 21(7):593–604, July 1995.

    Google Scholar 

  10. Frank Mueller, David B. Whalley, and Marion Harmon. Predicting instruction cache behavior. In Proceedings of the 1994 ACM SIGPLAN Workshop on Language, Compiler and Tool Support for Real-Time Systems, June 1994.

    Google Scholar 

  11. Kelvin D. Nilsen and Bernt Rygg. Worst-case execution time analysis on modern processors. In Proceedings of the 1995 ACM SIGPLAN Workshop on Language, Compiler and Tool Support for Real-Time Systems, June 1995.

    Google Scholar 

  12. Chang Yun Park and Alan C. Shaw. Experiments with a program timing tool based on source-level timing schema. IEEE Computer, 25(5):48–57, May 1991.

    Google Scholar 

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

    Article  Google Scholar 

  14. J. Rawat. Static analysis of cache performance for real-time programming. Masters thesis, Iowa State University, May 1993.

    Google Scholar 

  15. Micha Sharir and Amir Pnueli. Two approaches to interprocedural data flow analysis. In Steven S. Muchnick and Neil D. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 7, pages 189–233. Prentice-Hall, 1981.

    Google Scholar 

  16. A.J. Smith. Cache memories. ACM Computing surveys, 14(3):473–530, Sep 1983.

    Google Scholar 

  17. Alexander D. Stoyenko, V. Carl Hamacher, and Richard C. Holt. Analyzing hard-real-time programs for guaranteed schedulability. IEEE Transactions on Software Engineering, 17(8), August 1991.

    Google Scholar 

  18. Reinhard Wilhelm and Dieter Maurer. Compiler Design. International Computer Science Series. Addison-Wesley, 1995.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Radhia Cousot David A. Schmidt

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Alt, M., Ferdinand, C., Martin, F., Wilhelm, R. (1996). Cache behavior prediction by abstract interpretation. In: Cousot, R., Schmidt, D.A. (eds) Static Analysis. SAS 1996. Lecture Notes in Computer Science, vol 1145. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61739-6_33

Download citation

  • DOI: https://doi.org/10.1007/3-540-61739-6_33

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61739-6

  • Online ISBN: 978-3-540-70674-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics