What is Prefetching?

Loading data into the cache before it is requested because it is likely to be needed soon. Hardware prefetchers detect access patterns, and software prefetching uses explicit instructions.

Field: Memory Hierarchy

Prefetching in the explanations

Questions that mention Prefetching (8)

  1. For which access pattern is hardware prefetching especially effective?
  2. In the loop above, an int is 4 bytes, a cache line is 64 bytes, and the array is not cached and starts on a line boundary. Without prefetching, what is the miss rate for reading the array?
  3. What is the performance limitation called that arises because improvements in memory bandwidth and latency have not kept up with improvements in processor performance?
  4. Which correctly lists the "three Cs" classification of cache misses?
  5. Which method is effective at reducing the cache misses that occur when a program accesses data for the first time?
  6. When inserting software prefetch instructions, which statement about how far ahead to fetch (the prefetch distance) is correct?
  7. Roughly how many times longer is a main-memory DRAM access than an L1 cache hit (for typical PC or server CPUs)?
  8. Why does traversing the linked list above tend to be much slower than reading an array with the same number of elements in order?

Related terms

Cache line Memory wall HBM Miss penalty Average memory access time Capacity miss Compulsory miss Conflict miss Direct-mapped cache Fully associative cache

Back to the glossary