Stalls in pipeline due to branches represent one of the most significant impediments to realizing a processor with good performance. To reduce branch stalls, many schemes have been proposed such as branch predictors and Y-pipeline. In this paper, we introduce a new scheme, Branch Cell Buffer(BCB), to reduce branch stalls and show that it has very good performance even in the case of consecutive branches. And it has very short worm-up time so it is more accurate than any previously scheme in the case of context switching.
Branch Instruction with Target pair(BIT), which is simplified version of BCB and can be used in scalar, outperforms 2bc and gshare.
The CPI of BIT is 1.01. 2bc's CPI is 1.06 and gshare's CPI is 1.05.
Main reason of such an improvement is because BIT can handle No register branch instruction efficiently.
파이프라인 구조에서 분기 명령 때문에 생기는 성능 저하가 좋은 프로세서를 만드는데 있어 가장 큰 문제점이다. 분기 명령에 의한 손실을 줄이기 위해 분기 예측이나 Y-pipeline같은 구조들 같은 방법들이 제안되었다. 본 논문에서는 분기 명령의 성능 저하를 줄이기 위한 새로운 구조인 Branch Cell Buffer(BCB)라는 구조를 제안하고, 이 구조가 연속적으로 분기 명령이 발생하는 상황에서도 좋은 성능을 가짐을 보인다. 그리고 이 구조는 Context-switching과 같은 상황에서도 좋은 성능을 가진다. 또 BCB의 간략화된 형태로써 BIT라는 구조를 제한한다. 이 구조는 분기 명령을 예측하는 2bc, gshare 보다 좋은 성능을 가진다. BIT의 CPI는 1.01이고 2bc, gshare는 각각 1.06, 1.05이다. BIT를 이용한 구조에서 성능 향상은 BIT가 No register 분기 명령을 효율적으로 처리 할 수 있기 때문이다.