SPAID: Software Prefetching In Pointer and Call-Intensive Environments

Mikko H. Lipasti, William J. Schmidt, Steven R. Kunkel, Robert R. Roediger

Abstract

Software prefetching, typically in the context of numeric- or loop-intensive benchmarks, has been proposed as one remedy for the performance bottleneck imposed on computer systems by the cost of servicing cache misses. This paper proposes a new heuristic--SPAID--for utilizing prefetch instructions in pointer- and call-intensive environments. We use trace-driven cache simulation of a number of pointer- and call-intensive benchmarks to evaluate the benefits and implementation trade-offs of SPAID. Our results indicate that a significant proportion of the cost of data cache misses can be eliminated or reduced with SPAID without unduly increasing memory traffic.

Keywords

compiler, heuristic, prefetch, cache, pointer

Talk Overheads (174464 bytes)