Dynamic per-branch history length adjustment to improve branch prediction accuracy

  • Authors:
  • Jong Wook Kwak;Chu Shik Jhon

  • Affiliations:
  • Processor Architecture Lab., SOC R&D Center, System LSI Division, Semiconductor Business, Samsung Electronics, Co. Ltd, Gyeonggi-do, Republic of Korea;Department of Electrical Engineering and Computer Science, Seoul National University, Seoul, Republic of Korea

  • Venue:
  • Microprocessors & Microsystems
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

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.