Everything about Cache prefetching
Computer processing technique to boost memory performance
Cache prefetching is a technique used by central processing units (CPUs) to boost execution performance by fetching instructions or data from their primary or main storage in slower memory to a faster local memory before it is actually needed. Most modern CPUs have fast and local cache memory in which prefetched data is held until it is required. The source for the prefetch operation is usually main memory. Because of their design, accessing cache memories is typically much faster than accessing main memory. Prefetching can be done with non-blocking cache control instructions. Prefetching is based on the principle of data locality. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Cache prefetchingA 5-minute orientation
- Skim a recent paper: SPACE: Segment Prefetching and Caching at the Edge for Adaptive Video StreamingInfluential work since 2022
- Pick up a classic book: SPARC Architecture, Assembly Language Programming, and CThe most-reprinted book on the subject
- Read the landmark paper: Using predictive prefetching to improve World Wide Web latencyCited 400 times
- Go sideways: PrefetchingA closely related topic
- Go sideways: Memory-level parallelismA closely related topic
📖 Definitions
Verb present participle and gerund of prefetch
🏆 Landmark papers (most cited)
Using predictive prefetching to improve World Wide Web latency
Effective hardware-based data prefetching for high-performance processors
The Exact Rate-Memory Tradeoff for Caching With Uncoded Prefetching
Sequential Program Prefetching in Memory Hierarchies
Tolerating latency through software-controlled prefetching in shared-memory multiprocessors
Implementation and performance of integrated application-controlled file caching, prefetching, and disk scheduling
Sequentiality and prefetching in database systems
Prefetching using Markov predictors
🆕 Influential since 2022
SPACE: Segment Prefetching and Caching at the Edge for Adaptive Video Streaming
Deep learning based data prefetching in CPU-GPU unified virtual memory
Pattern-Based Prefetching with Adaptive Cache Management Inside of Solid-State Drives
RL-CoPref: a reinforcement learning-based coordinated prefetching controller for multiple prefetchers
Practical Temporal Prefetching With Compressed On-Chip Metadata
📚 Books worth reading
SPARC Architecture, Assembly Language Programming, and CRichard P. Paul · 1994- 📕Primer on Hardware PrefetchingBabak Falsafi, Thomas F. Wenisch · 2014
- 📕Data Prefetching Techniques in Computer SystemsPejman Lotfi-Kamran, Hamid Sarbazi-Azad · 2022
- 📕Multiuser network-aware Web prefetching in heterogeneous wireless networksStephen Drew · 2005
- 📕Per-instance type shifting for effective data-centric software prefetching in .NETAndrew P. Wilson · 2005
Cyber foragingJason Flinn · 2011
Writing OS/2 Warp Device Drivers in CSteven J. Mastrianni · 1997- 📕Web prefetching with client clusteringGordon Wong · 2004
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Prefetching Prefetching is a technique used in computing to improve performance by retrieving data or instructions before they are needed. By predicting what a program…
- Memory-level parallelism In computer architecture, memory-level parallelism (MLP) is the ability to have pending multiple memory operations, in particular cache misses or translation…
- Runahead In computer science and processor design, runahead is a technique that allows a computer processor to speculatively pre-process instructions during cache…
- International Symposium on Computer Architecture The International Symposium on Computer Architecture (ISCA) is an annual academic conference on computer architecture, generally viewed as the top-tier…
- Memory access pattern In computing, a memory access pattern or IO access pattern is the pattern with which a system or program reads and writes memory on secondary storage.…
- Cache replacement policies In computing, cache replacement policies (also known as cache replacement algorithms or cache algorithms) are optimizing instructions or algorithms which…
- Speculative execution In computer science and processor design, speculative execution or speculation is a design characteristic where a processor is able to perform potentially…
- Data memory-dependent prefetcher A data memory-dependent prefetcher (DMP) is a cache prefetcher that looks at cache memory content for possible pointer values, and prefetches the data…