학술논문

Memory forwarding: enabling aggressive layout optimizations by guaranteeing the safety of data relocation
Document Type
Conference
Source
Proceedings of the 26th International Symposium on Computer Architecture (Cat. No.99CB36367) Computer architecture Computer Architecture, 1999. Proceedings of the 26th International Symposium on. :88-99 1999
Subject
Computing and Processing
Safety
Bandwidth
Delay
Computer science
Electrical capacitance tomography
Prefetching
Runtime
Hardware
Language
ISSN
1063-6897
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.