Efficient and Precise Cache Behavior Prediction for Real-Time Systems

Abstract interpretation is a technique for the static detection of dynamic properties of programs. It is semantics based, that is, it computes approximative properties of the semantics of programs. On this basis, it supports correctness proofs of analyses. It replaces commonly used ad hoc techniques by systematic, provable ones, and it allows for the automatic generation of analyzers from specifications by existing tools. In this work, abstract interpretation is applied to the problem of predicting the cache behavior of programs. Abstract semantics of machine programs are defined which determine the contents of caches. For interprocedural analysis, existing methods are examined and a new approach that is especially tailored for the cache analysis is presented. This allows for a static classification of the cache behavior of memory references of programs. The calculated information can be used to improve worst case execution time estimations. It is possible to analyze instruction, data, and combined instruction/data caches for common (re)placement and write strategies. Experimental results are presented that demonstrate the applicability of the analyses.

[1]  Frank Mueller,et al.  Static cache simulation and its applications , 1995 .

[2]  Scott McFarling,et al.  Program optimization for instruction caches , 1989, ASPLOS III.

[3]  Flemming Nielson,et al.  Abstract interpretation: a semantics-based tool for program analysis , 1995, LICS 1995.

[4]  Chang-Gun Lee,et al.  Enhanced analysis of cache-related preemption delay in fixed-priority preemptive scheduling , 1996, Proceedings Real-Time Systems Symposium.

[5]  David B. Whalley,et al.  A retargetable technique for predicting execution time of code segments , 2005, Real-Time Systems.

[6]  Sang Lyul Min,et al.  Worst case timing analysis of RISC processors: R3000/R3010 case study , 1995, Proceedings 16th IEEE Real-Time Systems Symposium.

[7]  Kelvin D. Nilsen,et al.  Worst-case execution time analysis on modern processors , 1995 .

[8]  Reinhard Wilhelm,et al.  On Predicting Data Cache Behavior for Real-Time Systems , 1998, LCTES.

[9]  P. Höller,et al.  Nondestructive characterization of materials : proceedings of the 3rd International Symposium, Saarbrücken, FRG, October 3-6, 1988 , 1989 .

[10]  Alan Jay Smith,et al.  Cache Memories , 1982, CSUR.

[11]  Reinhard Wilhelm,et al.  Cache Behavior Prediction by Abstract Interpretation , 1996, Sci. Comput. Program..

[12]  Frank Müller,et al.  Generalizing timing predictions to set-associative caches , 1997, Proceedings Ninth Euromicro Workshop on Real Time Systems.

[13]  Sharad Malik,et al.  Cache modeling for real-time software: beyond direct mapped instruction caches , 1996, 17th IEEE Real-Time Systems Symposium.

[14]  David Whalley,et al.  Predicting Instruction Cache Behavior , 1993, PLDI 1993.

[15]  Alan Burns,et al.  Pipelined processors and worst case execution times , 1993, Real-Time Systems.

[16]  Sharad Malik,et al.  Efficient microarchitecture modeling and path analysis for real-time software , 1995, Proceedings 16th IEEE Real-Time Systems Symposium.

[17]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[18]  Peter P. Puschner,et al.  A Tool for the Computation of Worst Case Task Execution Times , 1993, Fifth Euromicro Workshop on Real-Time Systems.

[19]  Kelvin D. Nilsen,et al.  Portable Execution Time Analysis for RISC Processors , 1994 .

[20]  James R. Larus,et al.  EEL: machine-independent executable editing , 1995, PLDI '95.

[21]  John A. Stankovic Real-time and embedded systems , 1996, CSUR.

[22]  Michael J. Flynn,et al.  Computer Architecture: Pipelined and Parallel Processor Design , 1995 .

[23]  Shlomit S. Pinter,et al.  Compile Time Instruction Cache Optimizations , 1994, CC.

[24]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[25]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[26]  Jeffrey D. Ullman,et al.  Monotone data flow analysis frameworks , 1977, Acta Informatica.

[27]  Christian Ferdinand A fast and efficient cache persistence analysis , 2005 .

[28]  Sang Lyul Min,et al.  Analysis of cache-related preemption delay in fixed-priority preemptive scheduling , 1998, 17th IEEE Real-Time Systems Symposium.

[29]  James R. Larus,et al.  Abstract execution: A technique for efficiently tracing programs , 1990, Softw. Pract. Exp..

[30]  Martin Alt,et al.  Generation of Efficient Interprocedural Analyzers with PAG , 1995, SAS.

[31]  Martin Alt,et al.  Generating analyzers with PAG , 1995 .

[32]  David A. Patterson,et al.  Computer architecture (2nd ed.): a quantitative approach , 1996 .

[33]  Andy J. Wellings,et al.  Adding instruction cache effect to schedulability analysis of preemptive real-time systems , 1996, Proceedings Real-Time Technology and Applications.

[34]  Peter P. Puschner,et al.  Calculating the maximum execution time of real-time programs , 1989, Real-Time Systems.

[35]  James R. Larus,et al.  Optimally profiling and tracing programs , 1994, TOPL.

[36]  Jyh-Charn Liu,et al.  Deterministic upperbounds of the worst-case execution times of cached programs , 1994, 1994 Proceedings Real-Time Systems Symposium.

[37]  David B. Whalley,et al.  Timing analysis for data caches and set-associative caches , 1997, Proceedings Third IEEE Real-Time Technology and Applications Symposium.

[38]  Florian Martin,et al.  PAG – an efficient program analyzer generator , 1998, International Journal on Software Tools for Technology Transfer.

[39]  Kelvin D. Nilsen,et al.  Cache Issues in Real-Time Systems , 1994 .

[40]  Sharad Malik,et al.  Performance Analysis of Embedded Software Using Implicit Path Enumeration , 1995, 32nd Design Automation Conference.

[41]  Alan Burns,et al.  Static worst-case timing analysis of Ada , 1994, ALET.

[42]  Sang Lyul Min,et al.  An Accurate Worst Case Timing Analysis for RISC Processors , 1995, IEEE Trans. Software Eng..

[43]  Henrik Theiling,et al.  Combining abstract interpretation and ILP for microarchitecture modelling and program path analysis , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[44]  David B. Whalley,et al.  A retargetable technique for predicting execution time , 1992, [1992] Proceedings Real-Time Systems Symposium.

[45]  Greger Ottosson,et al.  Worst-case execution time analysis for modern hardware architectures , 1997 .

[46]  David B. Whalley,et al.  Bounding worst-case instruction cache performance , 1994, 1994 Proceedings Real-Time Systems Symposium.

[47]  Sang Lyul Min,et al.  Efficient worst case timing analysis of data caching , 1996, Proceedings Real-Time Technology and Applications.

[48]  Jack W. Davidson,et al.  Profile guided code positioning , 1990, SIGP.

[49]  Christian Ferdinand,et al.  Cache behavior prediction for real-time systems , 1997 .