Generational cache management of code traces in dynamic optimization systems
- 25 May 2004
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
A dynamic optimizer is a runtime software system that groups a program's instruction sequences into traces, optimizes those traces, stores the optimized traces in a software-based code cache, and then executes the optimized code in the code cache. To maximize performance, the vast majority of the program's execution should occur in the code cache and not in the different aspects of the dynamic optimization system. In the past, designers of dynamic optimizers have used the SPEC2000 benchmark suite to justify their use of simple code cache management schemes. In this paper, we show that the problem and importance of code cache management changes dramatically as we move from SPEC2000, with its relatively small number of dynamically generated code traces, to large interactive Windows applications. We also propose and evaluate a new cache management algorithm based on generational code caches that results in an average miss rate reduction of 18% over a unified cache, which translates into 19% fewer instructions spent in the dynamic optimizer. The algorithm categorizes code traces based on their expected lifetimes and group traces with similar lifetimes together in separate storage areas. Using this algorithm, short-lived code traces can easily be removed from a code cache without introducing fragmentation and without suffering the performance penalties associated with evicting long-lived code traces.Keywords
This publication has 10 references indexed in Scilit:
- Code cache management schemes for dynamic optimizersPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- An infrastructure for adaptive dynamic optimizationPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- DELI: a new run-time control pointPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Execution characteristics of desktop applications on Windows NTPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Software profiling for hot path predictionPublished by Association for Computing Machinery (ACM) ,2000
- DynamoPublished by Association for Computing Machinery (ACM) ,2000
- Web caching and Zipf-like distributions: evidence and implicationsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,1999
- Page replacement with multi-size pages and applications to Web cachingPublished by Association for Computing Machinery (ACM) ,1997
- Simple generational garbage collection and fast allocationSoftware: Practice and Experience, 1989
- Generation ScavengingACM SIGPLAN Notices, 1984