Dynamic Code Value Specialization Using the Trace Cache Fill Unit

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

In International Conference on Computer Design (ICCD), 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{ZCCT06, 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 = {ICCD}, year = 2006, month = oct, pages = {10-16}, doi = {10.1109/ICCD.2006.4380787}, ISSN = {1063-6404}, url = {http://cseweb.ucsd.edu/~scheckow/papers/iccd2006.html}, }

Valid XHTML 1.0 Strict Valid CSS! Level Triple-A conformance icon, W3C-WAI Web
		Content Accessibility Guidelines 1.0