  Data prefetching, i.e., the act of predicting application's future memory
accesses and fetching those that are not in the on-chip caches, is a well-known
and widely-used approach to hide the long latency of memory accesses. The
fruitfulness of data prefetching is evident to both industry and academy:
nowadays, almost every high-performance processor incorporates a few data
prefetchers for capturing various access patterns of applications; besides,
there is a myriad of proposals for data prefetching in the research literature,
where each proposal enhances the efficiency of prefetching in a specific way.
In this survey, we discuss the fundamental concepts in data prefetching and
study state-of-the-art hardware data prefetching approaches. Additional Key
Words and Phrases: Data Prefetching, Scale-Out Workloads, Server Processors,
and Spatio-Temporal Correlation.
