Title :
Effective jump-pointer prefetching for linked data structures
Author :
Roth, Amir ; Sohi, Gurindar S.
Author_Institution :
Dept. of Comput. Sci., Wisconsin Univ., Madison, WI, USA
Abstract :
Current techniques for prefetching linked data structures (LDS) exploit the work available in one loop iteration or recursive call to overlap pointer chasing latency. Jump-pointers, which provide direct access to non-adjacent nodes, can be used for prefetching when loop and recursive procedure bodies are small and do not have sufficient work to overlap a long latency. This paper describes a framework for jump-pointer prefetching (JPP) that supports four prefetching idioms: queue, full, chain, and root jumping and three implementations: software-only, hardware-only, and a cooperative software/hardware technique. On a suite of pointer intensive programs, jump-pointer prefetching reduces memory stall time by 72% for software, 83% for cooperative and 55% for hardware, producing speedups of 15%, 20% and 22% respectively
Keywords :
processor scheduling; tree data structures; jump-pointer prefetching; linked data structures; loop iteration; pointer chasing latency; pointer intensive programs; prefetching idioms; Costs; Data structures; Delay; Hardware; Prefetching; Tail;
Conference_Titel :
Computer Architecture, 1999. Proceedings of the 26th International Symposium on
Conference_Location :
Atlanta, GA
Print_ISBN :
0-7695-0170-2
DOI :
10.1109/ISCA.1999.765944