Article ID Journal Published Year Pages File Type
463112 Microprocessors and Microsystems 2007 14 Pages PDF
Abstract

Branch misprediction limits processor performance significantly, as the pipeline deepens and the instruction issued per cycle increases. Since the introduction of the two-level adaptive branch predictor, branch history has been a major input vector in branch prediction, together with the address of a branch instruction. Until now, the length of branch history has been statically fixed for all branch instructions, and the history length is usually selected in accordance with the size of branch prediction table. However, different branch instructions require different length histories to achieve high prediction accuracies.Therefore, to dynamically adjust to the optimal history length for each branch instruction, this paper presents “dynamic per-branch history length adjustment” policy, by tracking data dependencies of branches and identifying strongly correlated branches in branch history. Our method provides optimal history length for each branch instruction, resulting in substantial improvement in prediction accuracy. The proposed solution does not require any forms of prior-profilings, and it provides up to 6% improvement in prediction accuracy. Further, it even outperforms, in some applications, the prediction accuracy of optimally selected history length by prior-profilings.

Related Topics
Physical Sciences and Engineering Computer Science Computer Networks and Communications
Authors
, ,