Static Load Classification for Improving the Value Predictability of Data Cache Misses

Static Load Classification for Improving the Value Predictability of Data Cache Misses
Related tools & artifacts:
Conference Paper: PLDI'02, June, 2002

While caches are effective at avoiding most main-memory accesses, the few remaining memory references are still expensive. Even one cache miss per one hundred accesses can double a program's execution time. To better tolerate the data-cache miss latency, architects have proposed various speculation mechanisms, including load-value prediction. A load-value predictor guesses the result of a load so that the dependent instructions can immediately proceed without having to wait for the memory access to complete. To use the prediction resources most effectively, speculation should be restricted to loads that are likely to miss in the cache and that are likely to be predicted correctly. Prior work has considered hardware- and profile-based methods to make these decisions. Our work focuses on making these decisions at compile time. We show that a simple compiler classification is effective at separating the loads that should be speculated from the loads that should not. We present results for a number of C and Java programs and demonstrate that our results are consistent across programming languages and across program inputs.

@inproceedings{Burtscher02, author = {Burtscher, Martin and Diwan, Amer and Hauswirth, Matthias}, title = {Static load classification for improving the value predictability of data-cache misses}, booktitle = {Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation}, series = {PLDI '02}, year = {2002}, isbn = {1-58113-463-0}, location = {Berlin, Germany}, pages = {222--233}, numpages = {12}, url = {http://doi.acm.org/10.1145/512529.512556}, doi = {http://doi.acm.org/10.1145/512529.512556}, acmid = {512556}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {load-value prediction, type-based analysis}, }

ACM DL Author-ize service