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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
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.
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.
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.
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.
Wolfgang A. Halang and Krzysztof M. Sacha. Real-Time Systems. World Scientific, 1992.
Ludwell Harrison. Personal communication on Abstract Interpretation, Dagstuhl Seminar, 1995.
J.L Hennessy and D.A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 1990.
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.
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.
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.
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.
P. Puschner and Ch. Koza. Calculating the maximum execution time of real-time programs. Real-Time Systems, 1:159–176, 1989.
J. Rawat. Static analysis of cache performance for real-time programming. Masters thesis, Iowa State University, May 1993.
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.
A.J. Smith. Cache memories. ACM Computing surveys, 14(3):473–530, Sep 1983.
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.
Reinhard Wilhelm and Dieter Maurer. Compiler Design. International Computer Science Series. Addison-Wesley, 1995.
Author information
Authors and Affiliations
Editor information
Rights 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