Advertisement

Cache behavior prediction by abstract interpretation

  • Martin Alt
  • Christian Ferdinand
  • Florian Martin
  • Reinhard Wilhelm
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1145)

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.

Keywords

abstract interpretation program analysis cache memories real time applications worst case execution time prediction 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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. 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. 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. 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. 6.
    Wolfgang A. Halang and Krzysztof M. Sacha. Real-Time Systems. World Scientific, 1992.Google Scholar
  7. 7.
    Ludwell Harrison. Personal communication on Abstract Interpretation, Dagstuhl Seminar, 1995.Google Scholar
  8. 8.
    J.L Hennessy and D.A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 1990.Google Scholar
  9. 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. 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. 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. 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. 13.
    P. Puschner and Ch. Koza. Calculating the maximum execution time of real-time programs. Real-Time Systems, 1:159–176, 1989.CrossRefGoogle Scholar
  14. 14.
    J. Rawat. Static analysis of cache performance for real-time programming. Masters thesis, Iowa State University, May 1993.Google Scholar
  15. 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. 16.
    A.J. Smith. Cache memories. ACM Computing surveys, 14(3):473–530, Sep 1983.Google Scholar
  17. 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. 18.
    Reinhard Wilhelm and Dieter Maurer. Compiler Design. International Computer Science Series. Addison-Wesley, 1995.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Martin Alt
    • 1
  • Christian Ferdinand
    • 1
  • Florian Martin
    • 1
  • Reinhard Wilhelm
    • 1
  1. 1.Fachbereich InformatikUniversität des SaarlandesSaarbrückenGermany

Personalised recommendations