Cache miss heuristics and preloading techniques for general-purpose programs
- 1 November 1995
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10724451,p. 243-248
- https://doi.org/10.1109/micro.1995.476832
Abstract
Previous research on hiding memory latencies has tended to focus on regular numerical programs. This paper presents a latency-hiding compiler technique that is applicable to general-purpose C programs. By assuming a lock-up free cache and instruction score-boarding, our technique 'preloads' the data that are likely to cause a cache-miss before they are used, and thereby hiding the cache miss latency. We have developed simple compiler heuristics to identify load instructions that are likely to cause a cache-miss. Experimentation with a set of SPEC92 benchmarks shows that our heuristics are successful in identifying 85% of cache misses. We have also developed an algorithm that flexibly schedules the selected load instruction and instructions that use the loaded data to hide memory latency. Our simulation suggests that our technique is successful in hiding memory latency and improves the overall performance.Keywords
This publication has 10 references indexed in Scilit:
- Cache profiling and the SPEC benchmarks: a case studyComputer, 1994
- Cache performance of the SPEC92 benchmark suiteIEEE Micro, 1993
- An evaluation of bottom-up and top-down thread generation techniquesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1993
- Software support for speculative loadsPublished by Association for Computing Machinery (ACM) ,1992
- Reducing memory latency via non-blocking and prefetching cachesPublished by Association for Computing Machinery (ACM) ,1992
- The cache performance and optimizations of blocked algorithmsPublished by Association for Computing Machinery (ACM) ,1991
- Data access microarchitectures for superscalar processors with compiler-assisted data prefetchingPublished by Association for Computing Machinery (ACM) ,1991
- High-bandwidth data memory systems for superscalar processorsPublished by Association for Computing Machinery (ACM) ,1991
- Software prefetchingPublished by Association for Computing Machinery (ACM) ,1991
- A VLIW architecture for a trace scheduling compilerIEEE Transactions on Computers, 1988