A Comprehensive Analysis of Indirect Branch Prediction
Indirect branch prediction is a performance limiting factor for current computer systems, preventing superscalar processors from exploiting the available ILP. Indirect branches are responsible for 55.7% of mispredictions in our benchmark set, although they only stand for 15.5% of dynamic branches. Moreover, a 10.8% average IPC speedup is achievable by perfectly predicting all indirect branches.
The Multi-Stage Cascaded Predictor (MSCP) is a mechanism proposed for improving indirect branch prediction. In this paper, we show that a MSCP can replace a BTB and accurately predict the target address of both indirect and non-indirect branches. We do a detailed analysis of MSCP behavior and evaluate it in a realistic setup, showing that a 5.7% average IPC speedup is achievable.
Keywordsmicroarchitecture branch prediction Branch Target Buffer indirect branch Multi-Stage Cascaded Predictor
Unable to display preview. Download preview PDF.
- 1.B. Calder and D. Grunwald. Reducing indirect function call overhead in C++ programs. 21st Symp. on Principles of Programming Languages, 1994.Google Scholar
- 2.B. Calder and D. Grunwald. Fast accurate instruction fetch and branch prediction. 21st Intl. Symp. on Computer Architecture, 1994.Google Scholar
- 3.P. Y. Chang, E. Hao and Y. Patt. Target prediction for indirect jumps. 24th Intl. Symp. on Computer Architecture, 1997.Google Scholar
- 4.K. Driesen and U. Hölzle. Accurate indirect branch prediction. 25th Intl. Symp. on Computer Architecture, 1998.Google Scholar
- 5.K. Driesen and U. Hölzle. The cascaded predictor: economical and adaptive branch target prediction. 31st Intl. Symp. on Microarchitecture, 1998.Google Scholar
- 6.K. Driesen and U. Hölzle. Multi-Stage Cascaded Prediction. 5th Intl. Euro-Par Conf., 1999Google Scholar
- 7.D. Kaeli and P. Emma. Branch history table prediction of moving target branches due to subroutine returns. 18th Intl. Symp. on Computer Architecture, 1991.Google Scholar
- 8.J. Lee and A. Smith. Branch prediction strategies and branch target buffer design. IEEE Computer Magazine, 17(1), 1984.Google Scholar
- 9.S. McFarling Combining branch predictors. Digital Equipment Corporation, WRL Technical Note TN-36, 1993.Google Scholar
- 10.P. Michaud, A. Seznec and R. Uhlig. Trading conflict and capacity aliasing in conditional branch predictors. 24th Intl. Symp. on Computer Architecture, 1997.Google Scholar
- 11.R. Nair. Dynamic path-based branch correlation. 28th Intl. Symp. on Microarchitecture, 1995.Google Scholar
- 12.C. Perleberg and A. Smith. Branch target buffer design and optimization. IEEE Transactions on Computers, 42(4), 1993.Google Scholar
- 13.O. J. Santana, A. Falcón, E. Fernández, P. Medina, A. Ramírez and M. Valero. Analysis and evaluation of the Multi-Stage Cascaded Predictor. Departamento de Arquitectura de Computadores, UPC, Technical Report DAC-UPC-2001-24, 2001.Google Scholar
- 14.J. Stark, M. Evers and Y. Patt. Variable length path branch prediction. 8th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, 1998.Google Scholar
- 15.T. Y. Yeh and Y. Patt. Two level adaptive training branch prediction. 24th Intl. Symp. on Microarchitecture, 1991.Google Scholar
- 16.T. Y. Yeh and Y. Patt. A comprehensive instruction fetch mechanism for a processor supporting speculative execution. 25th Intl. Symp. on Microarchitecture, 1995Google Scholar