Efficient procedure mapping using cache line coloring
- 1 May 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 32 (5) , 171-182
- https://doi.org/10.1145/258916.258931
Abstract
As the gap between memory and processor performance continues to widen, it becomes increasingly important to exploit cache memory eflectively. Both hardware and aoftware approaches can be explored to optimize cache performance. Hardware designers focus on cache organization issues, including replacement policy, associativity, line size and the resulting cache access time. Software writers use various optimization techniques, including software prefetching, data scheduling and code reordering. Our focus is on improving memory usage through code reordering compiler techniques.In this paper we present a link-time procedure mapping algorithm which can significantly improve the eflectiveness of the instruction cache. Our algorithm produces an improved program layout by performing a color mapping of procedures to cache lines, taking into consideration the procedure size, cache size, cache line size, and call graph. We use cache line coloring to guide the procedure mapping, indicating which cache lines to avoid when placing a procedure in the program layout. Our algorithm reduces on average the instruction cache miss rate by 40% over the original mapping and by 17% over the mapping algorithm of Pettis and Hansen [12].This publication has 11 references indexed in Scilit:
- Improving the accuracy of static branch prediction using branch correlationPublished by Association for Computing Machinery (ACM) ,1994
- Avoiding conflict misses dynamically in large direct-mapped cachesPublished by Association for Computing Machinery (ACM) ,1994
- Reducing branch costs via branch alignmentPublished by Association for Computing Machinery (ACM) ,1994
- ATOMPublished by Association for Computing Machinery (ACM) ,1994
- Predicting program behavior using real or estimated profilesPublished by Association for Computing Machinery (ACM) ,1991
- Profile guided code positioningPublished by Association for Computing Machinery (ACM) ,1990
- Program optimization for instruction cachesPublished by Association for Computing Machinery (ACM) ,1989
- Achieving high instruction cache performance with an optimizing compilerPublished by Association for Computing Machinery (ACM) ,1989
- Properties of the working-set modelCommunications of the ACM, 1972
- A study of replacement algorithms for a virtual-storage computerIBM Systems Journal, 1966