Title
Memory forwarding: enabling aggressive layout optimizations by guaranteeing the safety of data relocation
Abstract
By optimizing data layout at run-time, we can potentially enhance the performance of caches by actively creating spatial locality, facilitating prefetching, and avoiding cache conflicts and false sharing. Unfortunately, it is extremely difficult to guarantee that such optimizations are safe in practice on today's machines, since accurately updating all pointers to an object requires perfect alias information, which is well beyond the scope of the compiler for languages such as C. To overcome this limitation, we propose a technique called memory forwarding which effectively adds a new layer of indirection within the memory system whenever necessary to guarantee that data relocation is always safe. Because actual forwarding rarely occurs (it exists as a safety net), the mechanism can be implemented as an exception in modern superscalar processors. Our experimental results demonstrate that the aggressive layout optimizations enabled by memory forwarding can result in significant speedups---more than twofold in some cases---by reducing the number of cache misses, improving the effectiveness of prefetching, and conserving memory bandwidth.
Year
DOI
Venue
1999
10.1145/300979.300987
ISCA '08 Proceedings of the 35th Annual International Symposium on Computer Architecture
Keywords
Field
DocType
memory bandwidth,hardware,performance,computer science,bandwidth
Pointer (computer programming),Indirection,Alias,Memory bandwidth,Cache,Computer science,Parallel computing,False sharing,Real-time computing,Compiler,Memory architecture
Conference
Volume
Issue
ISSN
27
2
0163-5964
ISBN
Citations 
PageRank 
0-7695-0170-2
16
2.07
References 
Authors
27
2
Name
Order
Citations
PageRank
Chi-Keung Luk12537116.49
Todd C. Mowry23021253.75