Abstract
Techniques for analyzing and improving memory referencing behaviour continue to be important for achieving good overall program performance due to the ever-increasing performance gap between processors and main memory. This paper offers afresh perspective on the problem of predicting and optimizing memory behaviour. Namely, we show quantitatively the extent to which detailed timing characteristics of past memory reference events are strongly predictive of future program reference behaviour. We propose a family of time-keeping techniques that optimize behaviour based on observations about particular cache time durations, such as the cache access interval or the cache dead time. Timekeeping techniques can be used to build small, simple, and high-accuracy (often 90% or more) predictors for identifying conflict misses, for predicting dead blocks, and even for estimating the time at which the next reference to a cache frame will occur and the address that will be accessed. Based on these predictors, we demonstrate two new and complementary time-based hardware structures: (1) a time-based victim cache that improves performance by only storing conflict miss lines with likely reuse, and (2) a time-based prefetching technique that hones in on the right address to prefetch, and the right time to schedule the prefetch. Our victim cache technique improves performance over previous proposals by better selections of what to place in the victim cache. Our prefetching technique outperforms similar prior hardware pre fetching proposals, despite being orders of magnitude smaller. Overall, these techniques improve performance by more than 11% across the SPEC2000 benchmark suite.
Original language | English (US) |
---|---|
Pages (from-to) | 209-220 |
Number of pages | 12 |
Journal | Conference Proceedings - Annual International Symposium on Computer Architecture, ISCA |
State | Published - 2002 |
Event | 29th Annual International Symposium on Computer Architecture - Anchorage, AK, United States Duration: May 25 2002 → May 29 2002 |
All Science Journal Classification (ASJC) codes
- Hardware and Architecture