As the gap between processor and memory speeds increases, memory latencies have become a critical bottleneck for computer performance. To reduce the bottleneck, designers have had to create methods to hide these latencies. One popular method is prefetching. This method fetches the data from the memory system before being asked for by the processor, with the expectation that it will soon be referenced. An effective prefetching scheme reduces cache miss rates and therefore hides the memory latency. The aim of this paper is to provide a survey of hardware prefetching techniques. To achieve this goal, we provide a brief introduction to the concepts behind prefetching. An overview of software prefetching techniques is also given. We are then in a position to examine a number of instruction and data prefetching schemes that have previously been proposed
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.