2005 · 50 citations · 25 references
EngineeringComputer EngineeringComputer ScienceCompilersParallel ComputingSystem-on-chip DesignHardware AccelerationMemory Hierarchy OptimizationMulticore Processor DesignParallel Computer ArchitectureProcessor Core DesignShared-memory ParallelismCache PrefetchingMulti-core ComputingMultithreadingMultithreading MicroarchitecturePrefetchingPrefetching MechanismsShared Cache DesignThread
Helper threading is a technique that utilizes a second core or logical processor in a multi-threaded system to improve the performance of the main thread. A helper thread executes in parallel with the main thread that it attempts to accelerate. In this paper, the helper thread merely prefetches data into a shared cache and does not incur any other programmer visible effects. Helper thread prefetching has been proposed as a viable solution in various scenarios where it is difficult to prefetch efficiently within the main thread itself. This paper presents our helper threading experience on SUN's second dual-core SPARC microprocessor, the UltraSPARC IV+. The two cores on this processor share an on-chip L2 and an off-chip L3 cache. We present a compiler framework to automatically construct helper threads and evaluate our scheme on the UltraSPARC IV+ processor. Our preliminary results using helper threads on the SPEC CPU2000 suite show gains of up to 22% on programs that suffer substantial L2 cache misses while at the same time incurring negligible losses on programs that do not suffer L2 cache misses.
25
Design and evaluation of a compiler algorithm for prefetching
Todd C. Mowry, Monica S. Lam, Anoop Gupta · 1992 · 767 citations · Full text
Compiler-based prefetching for recursive data structures
Chi-Keung Luk, Todd C. Mowry · 1996 · 399 citations · Full text
Jamison D. Collins, Hong Wang, Dean M. Tullsen et al. · 2001 · 321 citations
The SPARC architecture manual (version 9)
Corporate · 1992 · 225 citations