The effect of code expanding optimizations on instruction cache design
- 1 January 1993
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Computers
- Vol. 42 (9) , 1045-1057
- https://doi.org/10.1109/12.241594
Abstract
Shows that code expanding optimizations have strong and nonintuitive implications on instruction cache design. Three types of code expanding optimizations are studied in this paper: instruction placement, function inline expansion, and superscalar optimizations. Overall, instruction placement reduces the miss ratio of small caches. Function inline expansion improves the performance for small cache sizes, but degrades the performance of medium caches. Superscalar optimizations increase the miss ratio for all cache sizes. However, they also increase the sequentiality of instruction access so that a simple load forwarding scheme effectively cancels the negative effects. Overall, the authors show that with load forwarding, the three types of code expanding optimizations jointly improve the performance of small caches and have little effect on large caches.Keywords
This publication has 18 references indexed in Scilit:
- Performance evaluation of on-chip register and cache organizationsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- The susceptibility of programs to context switchingIEEE Transactions on Computers, 1994
- The effects of processor architecture on instruction memory trafficACM Transactions on Computer Systems, 1990
- Profile guided code positioningPublished by Association for Computing Machinery (ACM) ,1990
- Program optimization for instruction cachesPublished by Association for Computing Machinery (ACM) ,1989
- The impact of code density on instruction cache performancePublished by Association for Computing Machinery (ACM) ,1989
- Achieving high instruction cache performance with an optimizing compilerPublished by Association for Computing Machinery (ACM) ,1989
- Instruction Cache Replacement Policies and OrganizationsIEEE Transactions on Computers, 1985
- Cache MemoriesACM Computing Surveys, 1982
- Trace Scheduling: A Technique for Global Microcode CompactionIEEE Transactions on Computers, 1981