2012 21st International Conference on Parallel Architectures and Compilation Techniques (PACT) (2012)
Minneapolis, MN, USA
Sept. 19, 2012 to Sept. 23, 2012
DOI Bookmark: http://doi.ieeecomputersociety.org/
Ioana Burcea , IBM Research T.J. Watson, USA
Livio Soares , IBM Research T.J. Watson, USA
Andreas Moshovos , University of Toronto, Canada
This work proposes Pointy, a software assisted hardware pointer prefetcher for Java applications. Pointy exploits the strengths of both software and hardware. Its runtime software component communicates points-to relationships between objects to the underlying hardware. This points-to information is maintained and tracked in any managed runtime that implements automatic garbage collection. Pointy stores the object connectivity information in a separate hardware structure and uses it to generate timely pointer prefetches. To achieve a low-cost hardware implementation, Pointy spills the object metadata to the conventional memory hierarchy and retrieves it only when needed. Taking advantage of its hybrid design, Pointy can selectively communicate points-to metadata to the hardware based on class profiling that is readily available at the runtime level, while impractical to extract at the hardware level. Experimental results show that Pointy improves performance for pointer intensive benchmarks even in the presence of conventional prefetchers. When used in conjunction with traditional prefetchers, such as striding and next line, Pointy improves application performance by 53% for SpecJBB 2005 and by 72% on average1, which represents a speedup of 19% and 18%, respectively, compared to traditional prefetchers.
Prefetching, Hardware, Runtime, Metadata, Memory management, Java
I. Burcea, L. Soares and A. Moshovos, "Pointy: A hybrid pointer prefetcher for managed runtime systems," 2012 21st International Conference on Parallel Architectures and Compilation Techniques (PACT), Minneapolis, MN, USA, 2012, pp. 97-106.