A Decoupled Predictor-Directed Stream Prefetching Architecture

Suleyman Sair, Tim Sherwood, and Brad Calder

IEEE Transactions on Computers, 2002.


An effective method for reducing the effect of load latency in modern processors is data prefetching. One form of hardware-based data prefetching, stream buffers, has been shown to be particularly effective due to its ability to detect data streams and run ahead of them, prefetching as it goes. Unfortunately, in the past, the applicability of streaming was limited to stride intensive code.

In this paper we propose {\em Predictor-Directed Stream Buffers} ({\em PSB}), which allows the stream buffer to follow a general address prediction stream instead of a fixed stride. A general address prediction stream complicates the allocation of both stream buffer and memory resources, because the predictions generated will not be as reliable as prior sequential next-line and stride-based stream buffer implementations. To address this, we examine using confidence-based techniques to guide the allocation and prioritization of stream buffers and their prefetch requests. Our results show, when using PSB on a benchmark suite heavy in pointer-based applications, that PSB provides a 23\% speedup on average over the best previous stream buffer implementation, and an improvement of 75\% over using no prefetching at all.