• DocumentCode
    2704707
  • Title

    Maintaining consistency and bounding capacity of software code caches

  • Author

    Bruening, Derek ; Amarasinghe, Saman

  • Author_Institution
    Comput. Sci. & Artificial Intelligence Lab., MIT, Cambridge, MA, USA
  • fYear
    2005
  • fDate
    20-23 March 2005
  • Firstpage
    74
  • Lastpage
    85
  • Abstract
    Software code caches are becoming ubiquitous, in dynamic optimizers, runtime tool platforms, dynamic translators fast simulators and emulators, and dynamic compilers. Caching frequently executed fragments of code provides significant performance boosts, reducing the overhead of translation and emulation and meeting or exceeding native performance in dynamic optimizers. One disadvantage of caching, memory expansion, can sometimes be ignored when executing a single application. However, as optimizers and translators are applied more and more in production systems, the memory expansion from running multiple applications simultaneously becomes problematic. A second drawback to caching is the added requirement of maintaining consistency between the code cache and the original code. On architectures like IA-32 that do not require explicit application actions when modifying code, detecting code changes is challenging. Again, consistency can be ignored for certain sets of applications, but as caching systems scale up to executing large, modern, complex programs, consistency becomes critical. This paper presents efficient schemes for keeping a software code cache consistent and for dynamically bounding code cache size to match the current working set of the application. These schemes are evaluated in the DynamoRIO runtime code manipulation system, and operate on stock hardware in the presence of multiple threads and dynamic behavior, including dynamically-loaded, generated, and even modified code.
  • Keywords
    cache storage; computer architecture; multi-threading; program compilers; program interpreters; DynamoRIO runtime code manipulation system; consistency maintainance; dynamic optimizers; software code caches; Application software; Dynamic compiler; Emulation; Hardware; Optimizing compilers; Production systems; Runtime; Software maintenance; Software tools; Yarn;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Code Generation and Optimization, 2005. CGO 2005. International Symposium on
  • Print_ISBN
    0-7695-2298-X
  • Type

    conf

  • DOI
    10.1109/CGO.2005.19
  • Filename
    1402078