Branch Misprediction Recovery Mechanism That Exploits Control Independence on Program

프로그램 상의 제어 독립성을 이용한 분기 예상 실패 복구 메커니즘

  • 윤성룡 (SK텔레텍 S/W개발) ;
  • 이원모 (경인여자대학 컴퓨터정보학부) ;
  • 조영일 (수원대학교 정보공학대학 컴퓨터학과)
  • Published : 2002.08.01

Abstract

Control independence has been put forward as a new significant source of instruction-level parallelism for superscalar processors. In branch prediction mechanisms, all instructions after a mispredicted branch have to be squashed and then instructions of a correct path have to be re-fetched and re-executed. This paper presents a new branch misprediction recovery mechanism to reduce the number of instructions squashed on a misprediction. Detection of control independent instructions is accomplished with the help of the static method using a profiling and the dynamic method using a control flow of program sequences. We show that the suggested branch misprediction recovery mechanism improves the performance by 2~7% on a 4-issue processor, by 4~15% on an 8-issue processor and by 8~28% on a 16-issue processor.

제어 독립성은 슈퍼스칼라 프로세서에서 명령어 수준 병렬성을 향상시키기 위한 중요한 요소로 작용하고 있다. 분기 예측기에서 예상이 잘못된 경우에는 예상한 분기 방향의 명령어들을 무효화시키고 올바른 분기 방향의 명령어들을 다시 반입하여 수행해야 한다. 본 논문에서는 컴파일 시 프로파일링을 통한 정적인 방법과 프로그램상의 제어 흐름을 통해 동적으로 제어 독립적인 명령어를 탐지해서 분기 명령어의 잘못된 예상으로 인해 무효화되는 명령어를 효과적으로 감소시켜 프로세서의 성능을 향상시키는 메커니즘을 제안한다. SPECint95 벤치마크 프로그램에 대해 기존의 방법과 본 논문에서 제안한 방법 사이의 사이클 당 수행된 명령어 수를 분석한 결과, 4-이슈 프로세서에서 2%~7%, 8-이슈 프로세서에서 4%~15%, 16-이슈 프로세서에서 18%~28%의 성능 향상을 보이고 있다.

Keywords

References

  1. S. McFarling, 'Combinig branch predictors,' Technical Report TN-36, Digital Western Research Lab., June 1993
  2. C. C. Lee, I. C. Chen and T. Mudge, 'The Bi-Mode Branch Predictor,' in Proc. of 30th MICRO, Dec. 1997
  3. S. T. Pan, K. So and J. T. Rahmeh, 'Improving the accuracy of dynamic branch prediction using branch correlation,' In 5th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 76-84, October 1992
  4. E. Sprangle, R. Chappell, M. Alsup and Y. Patt, 'The Agree Predictor: A Mechanism for Reducing Negative Branch History Interference,' in Proc. of 24th ISCA, May 1997
  5. E. Jacobsen, E. Rotenberg and J. E. Smith, 'Assigning Confidence to Conditional Branch Predictors,' in Proc. of 29th MICRO, pp 142-131, 1998
  6. D. I. August, W. W. Hwu and S. A. Mahlke, 'A Framework for Balancing Control Flow and Prediction,' in Proc. of 30th MICRO, pp 92-103, 1997
  7. J. F. Lee and A. J. Smith, 'Branch prediction strategies and branch target buffer design,' IEEE Computer, pp. 6-22, January 1984 https://doi.org/10.1109/MC.1984.1658927
  8. C. Perleberg and A. J. Smith, 'Branch target buffer design and optimization,' IEEE Transactions on Computers, pp. 396-412, April 1993 https://doi.org/10.1109/12.214687
  9. E. Rotenberg, Q. Jacobson, and J. Smith, 'A Study of Control Independence in Superscalar Processors,' in Proc. of 5th HPCA, 1999
  10. T. Y. Yeh and Y. N. Patt, 'A comparison of dynamic branch predictors that use two levels of branch history,' In 20th ISCA, May 1993
  11. K. Lick and G. Tyson, 'Hybrid Branch Prediction Using Limited Dual Path Execution,' Technical Report UCR-CS-96-7, Univ. of California, July 1996
  12. A. Sodani and G. S. Sohi, 'Understanding the Differences Between Value Prediction and Instruction Reuse,' in Proc. of 31st Ann. Int. Symp. on Microarchitecture, 1998
  13. E. Rotenberg and J. E. Smith, 'Control Independence in Trace Processors,' Journal of Instruction-Level Parallelism, May 2000
  14. Y. Chou, J. Fung and J. Shen, 'Reducing branch misprediction penalties via dynamic control independence detection,' Intl. Conf. on Supercomputing, June 1999
  15. Charles Price, 'MIPS IV Instruction Set, revision 3.1,' MIPS Technologies, Inc., Mountain View, CA, January 1995
  16. A. Sodani and G. S. Sohi, 'Dynamic Instruction Reuse,' in Proc. of 24th ISCA, June 1997
  17. T. M. Austin and D. Burger, 'The SimpleScalar Tool Set, Version 3.0,' University of Wisconsin-Madison, 1998
  18. G. S. Sohi, 'Instruction issue logic for highperformance, interruptible, multiple functional unit, pipelined computers,' IEEE Trans. Com put. , 1990 https://doi.org/10.1109/12.48865