Title
Temporal-Based Procedure Reordering for Improved Instruction Cache Performance
Abstract
As the gap between memory and processor performance continues to grow, it becomes increasingly important to ex- ploit cache memory effectively. Both hardware and software techniques can be used to better utilize the cache. Hard- ware solutions focus on organization, while most software solutions investigate how to best layout a program on the available memory space. In this paper we present a new link-time code reordering algorithm targeted at reducing the frequency of misses in the cache. In past work we focused on eliminatingfirst genera- tion cache conflicts (i.e., conflicts between a procedure, and any of its immediate callers or callees) based on calling fre- quencies. In this work we exploit procedure-level temporal interaction, using a structure called aConflict Miss Graph (CMG) . In the CMG every edge weight is an approxima- tion of the worst-case number of misses two competing pro- cedures can inflict upon one another. We use the ordering implied by the edge weights to apply color-based mapping and eliminate conflict misses between procedures lying ei- ther in the same or in different call chains. Using programs taken from SPEC 95, Gnu applications, and C++ applications, we have been able to improve upon previous algorithms, reducing the number of instruction cache conflicts by 20% on average compared to the best procedure reordering algorithm.
Year
DOI
Venue
1998
10.1109/HPCA.1998.650563
HPCA
Keywords
Field
DocType
improved instruction cache performance,temporal-based procedure reordering,cache memory,instruction sets,graph theory,frequency,information analysis,hardware
Cache-oblivious algorithm,Cache invalidation,Cache pollution,Cache,Computer science,Parallel computing,Real-time computing,Cache algorithms,Page cache,Cache coloring,Smart Cache
Conference
ISBN
Citations 
PageRank 
0-8186-8323-6
23
1.71
References 
Authors
3
3
Name
Order
Citations
PageRank
J. Kalamatianos1324.19
David R. Kaeli215631.36
Kalamationos, J.3231.71