Dynamic Code Value Specialization Using the Trace Cache Fill Unit

By Weifeng Zhang, Stephen Checkoway, Brad Calder, and Dean M. Tullsen.

In Proceedings of ICCD 2006. IEEE Computer Society, October 2006.

Abstract

Value specialization is a technique which can improve a program’s performance when its code frequently takes the same values. In this paper, speculative value specialization is applied dynamically by utilizing the trace cache hardware. We implement a small, efficient hardware profiler to identify loads that have semi-invariant runtime values. A specialization engine off the program’s critical path generates highly optimized traces using these values, which reside in the trace cache. Specialized traces are dynamically verified during execution, and mis-specialization is recovered automatically without new hardware overhead. Our simulation shows that dynamic value specialization in the trace cache achieves a 17% speedup, even over a system with support for hardware value prediction. When combined with other techniques aimed at tolerating memory latencies, this technique still performs well—this technique combined with an aggressive hardware prefetcher achieves 24% better performance than prefetching alone.

Material

Reference

@InProceedings{zhang-et-al:trace-cache:iccd06,
  author =       {Weifeng Zhang and Steve Checkoway and Brad Calder and Dean M. Tullsen},
  title =        {Dynamic Code Value Specialization Using the Trace Cache Fill Unit},
  booktitle =    {Proceedings of ICCD 2006},
  editor =       {Kevin Rudd and Carl Pixley},
  year =         2006,
  month =        oct,
  organization = {IEEE Computer Society},
  pages =        {10-16},
  doi =          {10.1109/ICCD.2006.4380787},
  ISSN =         {1063-6404},
  url =          {https://checkoway.net/papers/iccd2006},
}