Issue No. 02 - July-December (2007 vol. 6)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/L-CA.2007.13
Although high branch prediction accuracy is necessary for good performance, the cost of achieving such accuracy requires using a branch predictor that could either be too complex and/or large, which, due to higher latencies and misprediction penalty, could actually result in lower performance. Since these mechanisms are ultimately self-defeating, fundamentally different branch predictors are needed. In this paper, we propose a new class of branch predictors, complementary branch predictors, which can be easily added to any branch predictor to improve the overall prediction accuracy. This mechanism differs from conventional branch predictors in that it focuses only on mispredicted branches. As a result, this mechanism has the advantages of scalability and flexibility (can be implemented with any branch predictor), but is not on the critical path. More specifically, this mechanism improves the branch prediction accuracy by predicting which future branch will be mispredicted next and when that will occur, and then it changes the predicted direction at the predicted time. Our results show that a branch predictor with the branch misprediction predictor achieves the same prediction accuracy as a conventional branch predictor that is 4 to 16 times larger, but without significantly increasing the overall complexity or lengthening the critical path.
Emerging technologies, Pipeline processors
P. Chuang, R. Sendag and J. Yi, "Branch Misprediction Prediction: Complementary Branch Predictors," in IEEE Computer Architecture Letters, vol. 6, no. , pp. 49-52, 2007.