SPAID: Software Prefetching In Pointer and Call-Intensive Environments

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


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.


compiler, heuristic, prefetch, cache, pointer

Talk Overheads (174464 bytes)