A compiler framework for restructuring data declarations to enhance cache and TLB effectiveness

David F. Bacon, Jyh-Herng Chow, Dz-Ching Ju, Kalyan Muthukumar, Vivek Sarkar · 2010

It has been observed that memory access performance can be improved by restructuring data declarations, using simple transformations such as array dimension padding and inter-array padding (array alignment) to reduce the number of misses in the cache and TLB (translation lookaside buffer). These transformations can be applied to both static and dynamic array variables. In this paper, we provide a padding algorithm for selecting appropriate padding amounts, which takes into account various cache and TLB effects collectively within a single framework. In addition to reducing the number of misses, we identify the importance of reducing the impact of cache miss jamming by spreading cache misses more uniformly across loop iterations.

Read the paper · More papers on PaperTik