DOI QR코드

DOI QR Code

분기 명령어의 조기 예측을 통한 예측지연시간 문제 해결

Early Start Branch Prediction to Resolve Prediction Delay

  • 곽종욱 (영남대학교 컴퓨터공학과) ;
  • 김주환 (서울대학교 전기컴퓨터공학부)
  • 발행 : 2009.10.31

초록

정교한 분기 예측기의 설계는 오늘날의 프로세서 성능 향상에 중요한 역할을 하게 되었다. 분기 예측의 정확도가 더욱 더 중요해 지면서 정확도의 향상을 위한 다수의 기법들이 제안되었지만, 기존의 연구들은 예측 지연 시간을 간과하는 경향이 있었다. 본 논문에서는 예측 지연 시간 문제를 해결하고자 조기 예측 기법 (ESP, Early Start Prediction)을 제안한다. 조기 예측 기법은 분기 예측에 있어서 활용되는 분기 명령어의 주소 대신 그것과 일대일 대응이 되는 기본 블록의 시작 주소 (BB_SA, Basic Block Start Address)를 이용한다. 즉, 분기 명령어의 주소가 사용되는 기존의 환경에서, BB_SA를 활용하여 조기 예측을 시작함으로써, 예측 지연 시간을 숨긴다. 또한 제안된 기법은 짧은 간격 숨김 기법(short interval hiding technique)을 통해 보다 더 나은 성능 향상을 기대할 수 있다. 실험 결과 본 논문에서 제안된 기법은 예측 지연 시간을 줄임으로써, 예측 지연 시간이 1 사이클인 이상적인 분기 예측기의 성능에 0.25% 이내로 근접한 IPC 결과를 얻었다. 또한 기본 블록의 시작주소와 분기 명령어 사이에 짧은 간격을 가질 경우에 대한 개선 방법을 추가적으로 적용시킬 경우, 기존의 방식과 비교하여 평균 4.2%, 최대 10.1%의 IPC 향상을 가져왔다.

Precise branch prediction is a critical factor in the IPC Improvement of modern microprocessor architectures. In addition to the branch prediction accuracy, branch prediction delay have a profound impact on overall system performance as well. However, it tends to be overlooked when the architects design the branch predictor. To tolerate branch prediction delay, this paper proposes Early Start Prediction (ESP) technique. The proposed solution dynamically identifies the start instruction of basic block, called as Basic Block Start Address (BB_SA), and the solution uses BB_SA when predicting the branch direction, instead of branch instruction address itself. The performance of the proposed scheme can be further improved by combining short interval hiding technique between BB_SA and branch instruction. The simulation result shows that the proposed solution hides prediction latency, with providing same level of prediction accuracy compared to the conventional predictors. Furthermore, the combination with short interval hiding technique provides a substantial IPC improvement of up to 10.1%, and the IPC is actually same with ideal branch predictor, regardless of branch predictor configurations, such as clock frequency, delay model, and PHT size.

키워드

참고문헌

  1. D. A. Patterson and J. L. Hennessy, "Computer architecture: a quantitative approach" 4th edition, Morgan Kaufman, 2007.
  2. E. Sprangle and D. Carmean, "Increasing processor performance by implementing deeper pipelines," In Proc. 29th Int'l Symp. on Computer Architecture, pp.25-34, 2002. https://doi.org/10.1145/545214.545219
  3. D. A. Jimenez, "Reconsidering Complex Branch Predictor",In Proceedings of the 9th International Symposium on High Performance Computer Architecture, pp.43-52, 2003. https://doi.org/10.1109/HPCA.2003.1183523
  4. O. J. Santana, A. Ramirez, M. Valero, "Latency Tolerant Branch Predictors," In Proceedings of Innovative Architecture for Future Generation High-Performance Processors and Systems, pp.30-39, 2003. https://doi.org/10.1109/IWIA.2003.1262780
  5. G. H. Loh, "Revisiting the Performance Impact of Branch Predictor Latencies," In Proceedings of IEEE International Symposium on Performance Analysis of Systems and Software, pp.59-69, 2006. https://doi.org/10.1109/ISPASS.2006.1620790
  6. S. S. Muchnick, "Advanced Compiler Design Implementation," Morgan Kaufman, 1997.
  7. A. Seznec and A. Fraboulet, "Effective ahead pipelining of instruction block address generation," In Proceedings of the 30th ISCA, 2003. https://doi.org/10.1109/ISCA.2003.1207004
  8. A. Seznec, S. Jourdan, P. Sainrat, P. Michaud, "Multiple-block ahead branch predictors," In Proceedings of the 7th ASPLOS, pp.116-127, 1996. https://doi.org/10.1145/248209.237169
  9. D. A. Jimenez, S. W. Keckler, and C. Lin, "The impact of delay on the design of branch predictors," In Proc. 33rd Int'l Symp. on Microarchitecture, pp.67-76, 2000. https://doi.org/10.1145/360128.360137
  10. A. Falcon, O. Santana, A. Ramirez and M. Valero, "Tolerating Branch Predictor Latency on SMT," ISHPC2003, LNCS 2858, pp.86-98, 2003.
  11. E. Rotenberg, S. Bennett, J. Smith, "Trace Cache: a low latency approach to high bandwidth instruction fetching," 29th IEEE MICRO, 1996.
  12. SPEC CPU2000 Benchmarks, http://specbench.org
  13. SimpleScalar LLC to serve and project, http://www. simplescalar.com/
  14. S. McFarling, "Combining branch predictors. Tech. Rep. TN-36m," Digital Western Research Lab., June, 1993.
  15. J. W. Kwak and C. S. Jhon., "High Performance Embedded Branch Predictor by Combining Branch Direction History and Global Branch History," IET Computer & Digital Techniques, Vol.2, Issue 2, pp.142-154, 2008. https://doi.org/10.1049/iet-cdt:20060130
  16. R. Thomas, M. Franklin, C. Wilkerson and J. Stark, "Improving Branch Prediction By Dynamic Dataflow-based Identification of Correlated Branches From a Large Global History," In Proc. of the International Symposium on Computer Architecture, pp.314-323, 2003.