Data prefetch mechanisms
- 1 June 2000
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Computing Surveys
- Vol. 32 (2) , 174-199
- https://doi.org/10.1145/358923.358939
Abstract
The expanding gap between microprocessor and DRAM performance has necessitated the use of increasingly aggressive techniques designed to reduce or hide the latency of main memory access. Although large cache hierarchies have proven to be effective in reducing this latency for the most frequently used data, it is still not uncommon for many programs to spend more than half their run times stalled on memory requests. Data prefetching has been proposed as a technique for hiding the access latency of data referencing patterns that defeat caching strategies. Rather than waiting for a cache miss to initiate a memory fetch, data prefetching anticipates such misses and issues a fetch to the memory system in advance of the actual memory reference. To be effective, prefetching must be implemented in such a way that prefetches are timely, useful, and introduce little overhead. Secondary effects such as cache pollution and increased memory bandwidth requirements must also be taken into consideration. Despite these obstacles, prefetching has the potential to significantly improve overall program execution time by overlapping computation with memory accesses. Prefetching strategies are diverse, and no single strategy has yet been proposed that provides optimal performance. The following survey examines several alternative approaches, and discusses the design tradeoffs involved when implementing a data prefetch strategy.Keywords
This publication has 28 references indexed in Scilit:
- When caches aren't enough: data prefetching techniquesComputer, 1997
- Limited bandwidth to affect processor designIEEE Micro, 1997
- Compiler-based prefetching for recursive data structuresACM SIGOPS Operating Systems Review, 1996
- The Mips R10000 superscalar microprocessorIEEE Micro, 1996
- Effective hardware-based data prefetching for high-performance processorsIEEE Transactions on Computers, 1995
- Cache coherence in large-scale shared-memory multiprocessorsACM Computing Surveys, 1993
- Tolerating latency through software-controlled prefetching in shared-memory multiprocessorsJournal of Parallel and Distributed Computing, 1991
- Software prefetchingACM SIGARCH Computer Architecture News, 1991
- An architecture for software-controlled data prefetchingACM SIGARCH Computer Architecture News, 1991
- Cache MemoriesACM Computing Surveys, 1982