A Compiler-Assisted Data Prefetch Controller
Abstract:
Data prefetching has been proposed as a means of hiding the memory access latencies of data referencing patterns that defeat caching strategies. Prefetching techniques that either use special cache logic to issue prefetches or that rely on the processor to issue prefetch requests typically involve some compromise between accuracy and instruction overhead. A data prefetch controller (DPC) is proposed that combines low instruction overhead with the flexibility and accuracy of a compiler-directed prefetch mechanism. At run-time, the processor and prefetch controller each execute separate, but cooperating, instruction streams. Simulations in which both programs are generated from a single application source file using a commercial compiler show that the prefetch controller can significantly improve the cache utilization and execution time of several SPECfp95 benchmarks. Performance comparisons also indicate that the DPC outperforms software prefetching techniques and prefetching via a hardware reference prediction table.
Citations
| 554 | Cache memories – Smith - 1982 |
| 468 | Design and evaluation of a compiler algorithm for prefetching – Mowry, Lam, et al. - 1992 |
| 165 | Effective hardware-based data prefetching for high-performance processors – Chen, Baer - 1995 |
| 138 | Decoupled access/execute computer architectures – Smith - 1982 |
| 43 | An Effective Programmable Prefetch Engine for OnChip Caches – Chen - 1995 |
| 4 | FAST-MIPS: A MIPS ISA Simulation Environment – Plender - 1997 |
| 4 | MIPSpro Compiling and Performance Tuning Guide – Graphics, Inc - 1997 |
| 3 | Masking Memory Latency with a Compiler-Assisted Data Prefetch Controller – VanderWiel - 1998 |

