Using Data Values to Aid Branch-Prediction

Zachary S. Smith

Project Report Submitted in Partial Fulfillment of the Requirements for the MS ECE Degree
(Dec 17 1998)
Advisor Prof. James E. Smith
Dept. of Electrical and Computer Engineering
University of Wisconsin - Madison

Abstract

My research was a concerned with gaining an understanding of some program constructs which create "hard to predict" branches, and figuring out how to use data-value information to predict branches. I started with a low-level investigation of the source-level constructs corresponding to the static branches with the most misses. Next, I investigated the predictability of register values leading up to these branches. I constructed several predictors for some particular branches in an effort to improve accuracy by utilizing available program information.

Data-values have the potential to help branch prediction accuracies a great deal --- even more than 20% accuracy improvement over gshare for particular branches --- though work remains to be done to determine an implementable, efficient method for exploiting this potential.

This research was meant to provide some basic insight into the problem so that further, more complete, studies could be done. The purpose of my research was not to be a comprehensive study, but instead a time-effective investigation of possible heuristics to aid branch-prediction. Finally, I contributed to a study of an implementable scheme which used data-values to aid branch prediction.

Full Report

The full report is available as a Acrobat PDF file [575k], and a PostScript file [2800k].

Micro-32 Paper

"Improving Branch Predictors by Correlating on Data Values",
Timothy Heil, Zak Smith, James E. Smith,
To appear Proceedings of the 32nd Annual International Symposium on Microarchitecture,
November 1999.

Available as a PostScript file [464k], and as a Acrobat PDF file [113k].

[Zak Smith] [zak@computer.org]
was last built on
All text and photographs © copyright 1997-2000 by Zak Smith, all rights reserved, unless otherwise noted.