skip to main content
10.5555/956417.956551acmconferencesArticle/Chapter ViewAbstractPublication PagesmicroConference Proceedingsconference-collections
Article

Generational Cache Management of Code Traces in Dynamic Optimization Systems

Published: 03 December 2003 Publication History

Abstract

A dynamic optimizer is a runtime software system thatgroups a program's instruction sequences into traces, optimizesthose traces, stores the optimized traces in a software-basedcode cache, and then executes the optimized code inthe code cache. To maximize performance, the vast majorityof the program's execution should occur in the codecache and not in the different aspects of the dynamic optimizationsystem. In the past, designers of dynamic optimizershave used the SPEC2000 benchmark suite to justifytheir use of simple code cache management schemes.In this paper, we show that the problem and importance ofcode cache management changes dramatically as we movefrom SPEC2000, with its relatively small number of dynamicallygenerated code traces, to large interactive Windowsapplications. We also propose and evaluate a new cachemanagement algorithm based on generational code cachesthat results in an average miss rate reduction of 18% over aunified cache, which translates into 19% fewer instructionsspent in the dynamic optimizer. The algorithm categorizescode traces based on their expected lifetimes and groupstraces with similar lifetimes together in separate storage areas.Using this algorithm, short-lived code traces can easilybe removed from a code cache without introducing fragmentationand without suffering the performance penaltiesassociated with evicting long-lived code traces.

References

[1]
{1} A. W. Appel. Simple generational garbage collection and fast allocation. Software Practice and Experience, 19(2):171-183, 1989.
[2]
{2} V. Bala, E. Duesterwald, and S. Banerjia. Transparent dynamic optimization. Technical Report HPL-1999-77, Hewlett Packard, June 1999.
[3]
{3} V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: A transparent dynamic optimization system. In ACM Conference on Programming Language Design and Implementation, pages 1-12, 2000.
[4]
{4} L. Breslau, P. Cao, L. Fan, G. Phillips, and S. Shenker. Web caching and zipf-like distributions: Evidence and implications. In INFOCOM, pages 126-134, 1999.
[5]
{5} D. Bruening, T. Garnett, and S. Amarasinghe. An infrastructure for adaptive dynamic optimization. In First Annual International Symposium on Code Generation and Optimization , pages 265-275, March 2003.
[6]
{6} P. Cao and S. Irani. Cost-aware WWW proxy caching algorithms. In Usenix Symposium on Internet Technologies and Systems, Monterey, CA, 1997.
[7]
{7} J. P. Casmira, D. R. Kaeli, and D. P. Hunter. Tracing and characterization of NT-based system workloads. Digital Technical Journal, 10(1):6-21, December 1998.
[8]
{8} W.-K. Chen, S. Lerner, R. Chaiken, and D. Gillies. Mojo: A dynamic optimization system. In 4th ACM Workshop on Feedback-Directed and Dynamic Optimization, pages 81- 90, 2000.
[9]
{9} D. Deaver, R. Gorton, and N. Rubin. Wiggins/redstone: An on-line program specializer. In IEEE Hot Chips XI, 1999.
[10]
{10} G. Desoli, N. Mateev, E. Duesterwald, P. Faraboschi, and J. A. Fisher. Deli: A new run-time control point. In 35th International Symposium on Microarchitecture, pages 257- 268, 2002.
[11]
{11} E. Duesterwald and V. Bala. Software profiling for hot path prediction: Less is more. In 12th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 202-211, October 2000.
[12]
{12} K. Hazelwood and M. D. Smith. Code cache management schemes for dynamic optimizers. In 6th Workshop on Interaction between Compilers and Computer Architectures, pages 102-110, February 2002.
[13]
{13} S. Irani. Page replacement with multi-size pages and applications to web caching. In 29th ACM Symposium on Theory of Computing, pages 701-710, May 1997.
[14]
{14} D. C. Lee, P. Crowley, J.-L. Baer, T. E. Anderson, and B. N. Bershad. Execution characteristics of desktop applications in windows NT. In 25th International Symposium on Computer Architecture, pages 27-38, 1998.
[15]
{15} K. London, J. Dongarra, S. Moore, P. Mucci, K. Seymour, and T. Spencer. End-user tools for application performance analysis using hardware counters. In 14th Conference on Parallel and Distributed Computing Systems, August 2001.
[16]
{16} K. Scott, N. Kumar, S. Velusamy, B. Childers, J. Davidson, and M. L. Soffa. Reconfigurable and retargetable software dynamic translation. In First Annual International Symposium on Code Generation and Optimization, pages 36-47, March 2003.
[17]
{17} D. Ungar. Generation scavenging: a non-disruptive high performance storage reclamation algorithm. ACM SIGPLAN Notices, 19(5):157-167, May 1984.

Cited By

View all

Index Terms

  1. Generational Cache Management of Code Traces in Dynamic Optimization Systems

          Recommendations

          Comments

          Information & Contributors

          Information

          Published In

          cover image ACM Conferences
          MICRO 36: Proceedings of the 36th annual IEEE/ACM International Symposium on Microarchitecture
          December 2003
          412 pages
          ISBN:076952043X

          Sponsors

          Publisher

          IEEE Computer Society

          United States

          Publication History

          Published: 03 December 2003

          Check for updates

          Qualifiers

          • Article

          Conference

          MICRO-36
          Sponsor:

          Acceptance Rates

          MICRO 36 Paper Acceptance Rate 35 of 134 submissions, 26%;
          Overall Acceptance Rate 484 of 2,242 submissions, 22%

          Contributors

          Other Metrics

          Bibliometrics & Citations

          Bibliometrics

          Article Metrics

          • Downloads (Last 12 months)0
          • Downloads (Last 6 weeks)0
          Reflects downloads up to 07 Mar 2025

          Other Metrics

          Citations

          Cited By

          View all
          • (2016)PowerChopACM SIGARCH Computer Architecture News10.1145/3007787.300115244:3(140-152)Online publication date: 18-Jun-2016
          • (2016)PowerChopProceedings of the 43rd International Symposium on Computer Architecture10.1109/ISCA.2016.22(140-152)Online publication date: 18-Jun-2016
          • (2014)SPTUProceedings of International Conference on Systems and Storage10.1145/2611354.2611368(1-12)Online publication date: 30-Jun-2014
          • (2014)DTTProceedings of the 11th ACM Conference on Computing Frontiers10.1145/2597917.2597944(1-10)Online publication date: 20-May-2014
          • (2011)Evaluating indirect branch handling mechanisms in software dynamic translation systemsACM Transactions on Architecture and Code Optimization10.1145/1970386.19703908:2(1-28)Online publication date: 22-Jun-2011
          • (2010)DistriBitProceedings of the 19th ACM International Symposium on High Performance Distributed Computing10.1145/1851476.1851577(684-691)Online publication date: 21-Jun-2010
          • (2008)Efficient code caching to improve performance and energy consumption for java applicationsProceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems10.1145/1450095.1450115(119-126)Online publication date: 19-Oct-2008
          • (2007)Evaluating Indirect Branch Handling Mechanisms in Software Dynamic Translation SystemsProceedings of the International Symposium on Code Generation and Optimization10.1109/CGO.2007.10(61-73)Online publication date: 11-Mar-2007
          • (2006)A dynamic binary instrumentation engine for the ARM architectureProceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems10.1145/1176760.1176793(261-270)Online publication date: 22-Oct-2006
          • (2006)HDTransProceedings of the 2nd international conference on Virtual execution environments10.1145/1134760.1220166(175-185)Online publication date: 14-Jun-2006
          • Show More Cited By

          View Options

          Login options

          View options

          PDF

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          Figures

          Tables

          Media

          Share

          Share

          Share this Publication link

          Share on social media