DOI QR코드

DOI QR Code

A Branch Misprediction Recovery Mechanism by Control Independence

제어 독립성과 분기예측 실패 복구 메커니즘

  • Published : 2012.06.20

Abstract

Control independence has been put forward as a significant new 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.

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

Keywords