In this paper, we propose a formal analysis approach to estimate the expected (average) data cache access time of an application across all possible program inputs. Towards this goal, we introduce the notion of probabilistic access history that intuitively summarizes the history of data memory accesses along different program paths (to reach a particular program point) and their associated probabilities. An efficient static program analysis technique has been developed to compute the access history at all program points. We estimate the cache hit/miss probabilities and hence the expected access time of each data memory reference from the access history. Our experimental evaluation confirms the accuracy and viability of the probabilistic data cache modeling approach. Categories and Subject Descriptors C.4 [Performance of Systems]: Modeling techniques; D.2.8 [Software Engineering]: Metrics—Performance Measures; F.3.2 [Logics and Meanings of Programs]: Semantics of Programming Langua...
Vinayak Puranik, Tulika Mitra, Y. N. Srikant