A Branch Prediction Mechanism Using Adaptive Branch History Length

적응 가능한 분기 히스토리 길이를 사용하는 분기 예측 메커니즘

  • 조영일 (수원대학교 컴퓨터학과)
  • Published : 2007.01.25

Abstract

Processor pipelines have been growing deeper and issue widths wider over the years. If this trend continues, the branch misprediction penalty will become very high. Branch misprediction is the single most significant performance limiter for improving processor performance using deeper pipelining. Therefore, more accurate branch predictor becomes an essential part of modern processors. Several branch predictors combine a part of the branch address with a fixed amount of global branch history to make a prediction. These predictors cannot perform uniformly well across all programs because the best amount of branch history to be used depends on the program and branches in the program. Therefore, predictors that use a fixed history length are unable to perform up to their potential performance. In this paper, we propose a branch prediction mechanism, using variable length history, which predicts using a bank having higher prediction accuracy among predictions from five banks. Bank 0 is a bimodal predictor which is indexed with the 12 least significant bits of the branch address. Banks 1, 2, 3 and 4 are predictors which are indexed with different global history bits and the branch PC. In simulation results, the proposed mechanism outperforms gshare predictors using fixed history length of 12 and 13 , up to 6.34% in prediction accuracy. Furthermore, the proposed mechanism outperforms gshare predictors using best history lengths for benchmarks, up to 2.3% in prediction accuracy.

최근, 프로세서의 파이프라인 깊이와 이슈 폭이 점차로 증가함에 따라 분기예측 실패에 의한 페널티가 더욱 증가하고 있다. 분기예측 실패는 프로세서 성능을 개선하는데 가장 심각한 성능 장애 요소이다. 따라서 좀 더 정확한 분기 예측기는 최신 프로세서들에게 필수적이다. 많은 분기예측기들은 분기 명령의 주소와 고정 분기히스토리 길이로 예측을 수행한다. 최적의 분기히스토리 길이는 프로그램과 프로그램에 있는 분기 명령에 따라 달라지므로 고정 분기히스토리를 사용하는 예측기들은 잠재적 성능을 얻을 수 없다. 본 논문에서는 5개 뱅크로부터의 예측 중 가장 높은 예측정확도를 갖는 뱅크로 예측하는 가변 길이 분기 히스토리를 사용하는 분기예측 메커니즘을 제안한다. 뱅크 0는 분기 명령의 주소만을 사용하여 인덱스 하는 bimodal 예측기이고, 나머지 뱅크는 다른 히스토리 길이와 분기 명령 PC로 인덱스 하는 예측기이다. 실험결과 제안한 메커니즘은 12, 13의 고정 히스토리 길이를 사용하는 gshare보다 최대 6.34% 예측 정확도를 개선시켰고, 각 벤치마크에 대한 최적의 히스토리 길이를 사용하는 gshare와 비교해도 최대 2.3% 개선시켰다.

Keywords

References

  1. E. Sprangle and D. Carmean. 'Increasing processor performance by implementing deeper pipelines' In Proc. of the 29th ISCA, pp. 25-34, May 2002 https://doi.org/10.1109/ISCA.2002.1003559
  2. T. Y. Yeh and Y. N. Patt, 'Alternative implementations of two-level adaptive branch prediction,' In Proc. of the 19th ISCA, pp. 124-134, May 1992 https://doi.org/10.1145/139669.139709
  3. P. Y. Chang, E. Hao, T. Y. Yeh, and Y. Patt.,'Branch classification: a new mechanism for improving branch predictor performance.' In Proc. of the 27th MICRO, pp. 22-31, Nov. 1994 https://doi.org/10.1109/MICRO.1994.717404
  4. P. Y. Chang, E. Hao, and Y. N. Patt.'Alternative implementations of hybrid branch predictors.' In Proc. of 28th MICRO, pp. 252-257, Dec. 1995 https://doi.org/10.1109/MICRO.1995.476833
  5. K. Skadron, M. Martonosi and W. Clark, 'A Taxonomy of Branch Mispredictions, and Alloyed Prediction as a Robust Solution to Wrong-History Mispredictions', In Proc. of PACT-2000, pp. 196-206, Oct. 2000 https://doi.org/10.1109/PACT.2000.888344
  6. Ravi Nair, 'Dynamic path-based branch predictor', In Proc. of 28th MICRO, pp. 15-23, Dec. 1995 https://doi.org/10.1109/MICRO.1995.476809
  7. S. McFarling,'Combining branch predictors.', Tech. Rep. TN-36, Digital Western Research Lab., June 1993
  8. M. D. Tarlescu, K. B. Theobald, and G. R. Gao, 'Elastic history buffer: A low-cost method to improve branch prediction accuracy', In Proc. Int'l Conf. on Computer Design, pp. 82-87, 1997 https://doi.org/10.1109/ICCD.1997.628853
  9. T. Juan, S. Sanjeevan, and J. J. Navarro, 'Dynamic history length fitting: A third level of adaptivity for branch prediction', In Proc. of the 25th ISCA, pp. 155-166, May 1998 https://doi.org/10.1109/ISCA.1998.694771
  10. A. Falcon et al.,'Studying New Ways for Improving Adaptive History Length Branch predictors', ISHPC 2002, pp. 271-280, 2002
  11. A. Seznec, S. Felix, V. Krishnan, and Y. Sazeides. 'Design tradeoffs for the ev8 branch predictor', In Proc. of the 29th ISCA, pp. 295-306, May 2002
  12. Pierre Michaud,'A PPM-like, Tag-based Predictor', JILP Vol.7, pp. 1-10, April 2005
  13. D. A. Jimenez and C. Lin, 'Dynamic branch prediction with perceptrons.', In Proc. of the 7th HPCA, pp. 197-206, Feb. 2001 https://doi.org/10.1109/HPCA.2001.903263
  14. D. A. Jimenez, 'Reconsidering Complex Branch Predictors', In Proc. of the 9th HPCA, pp. 43-52, Feb. 2003
  15. D. Burger, T. M. Austin, and S. Bennett, 'Evaluating future micro-processors: the SimpleScalar tool set', Tech. Report TR-1308, Univ. of Wisconsin-Madison Computer Sciences Dept., 1997
  16. SPEC Benchmarks, http://www.specbench.org