A Comprehensive Analysis of Indirect Branch Prediction

  • Oliverio J. Santana
  • Ayose Falcón
  • Enrique Fernández
  • Pedro Medina
  • Alex Ramírez
  • Mateo Valero
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2327)


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.


microarchitecture branch prediction Branch Target Buffer indirect branch Multi-Stage Cascaded Predictor 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 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. 2.
    B. Calder and D. Grunwald. Fast accurate instruction fetch and branch prediction. 21st Intl. Symp. on Computer Architecture, 1994.Google Scholar
  3. 3.
    P. Y. Chang, E. Hao and Y. Patt. Target prediction for indirect jumps. 24th Intl. Symp. on Computer Architecture, 1997.Google Scholar
  4. 4.
    K. Driesen and U. Hölzle. Accurate indirect branch prediction. 25th Intl. Symp. on Computer Architecture, 1998.Google Scholar
  5. 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. 6.
    K. Driesen and U. Hölzle. Multi-Stage Cascaded Prediction. 5th Intl. Euro-Par Conf., 1999Google Scholar
  7. 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. 8.
    J. Lee and A. Smith. Branch prediction strategies and branch target buffer design. IEEE Computer Magazine, 17(1), 1984.Google Scholar
  9. 9.
    S. McFarling Combining branch predictors. Digital Equipment Corporation, WRL Technical Note TN-36, 1993.Google Scholar
  10. 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. 11.
    R. Nair. Dynamic path-based branch correlation. 28th Intl. Symp. on Microarchitecture, 1995.Google Scholar
  12. 12.
    C. Perleberg and A. Smith. Branch target buffer design and optimization. IEEE Transactions on Computers, 42(4), 1993.Google Scholar
  13. 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. 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. 15.
    T. Y. Yeh and Y. Patt. Two level adaptive training branch prediction. 24th Intl. Symp. on Microarchitecture, 1991.Google Scholar
  16. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Oliverio J. Santana
    • 1
  • Ayose Falcón
    • 1
  • Enrique Fernández
    • 2
  • Pedro Medina
    • 2
  • Alex Ramírez
    • 1
  • Mateo Valero
    • 1
  1. 1.Dpto. de Arquitectura de ComputadoresUniversidad Politécnica de CataluccñaSpain
  2. 2.Dpto. de Informática y SistemasUniversidad de Las Palmas de Gran CanariaSpain

Personalised recommendations