10 Profile-Tuned Heap Access

Efe Yardlmcl, David R Kaeli · 2004

As memory latencies continue to grow, effective use of cache memories is necessary. A disproportionate number of cache misses are caused by accesses to dynamically allocated memory, and a small number of heap objects account for a large percentage of heap misses. In this chapter we describe two methods that attempt to increase cache util­ ity using profile-guided allocation of heap objects. In our first approach, we have modified an existing malloc library to allocate heap objects with the aim of reduc­ ing first-level data cache conflicts. Our allocation routines utilize information about the target cache architecture. We use program behavior obtained from profiling to classify objects and allocate them to regions in the cache where they will poten­ tially cause fewer cache conflicts. We perform our work on a Compaq Alpha 21264 processor as our target architecture. In our second approach, we explicitly guide allocation of objects to increase spa­ tiallocality. We maintain Tempoml Relationship Gmphs (TRGs) for subsets of ob­ jects and allocate objects that are observed to have strong temporal interaction into localized regions in the heap to increase spatial locality. We introduce the concept of allocation phases to capture the allocation of objects and the temporal relationship displayed by accesses to those objects. To motivate this work, we provide an evaluation of the differences between heap­ based and nonheap-based accesses. We show that by using a procedure-stack-based predictor as the input to the allocator, we can achieve speedups of up to 5.5%.

Read the paper · More papers on PaperTik