• Corpus ID: 7832831

Combining Branch Predictors

  title={Combining Branch Predictors},
  author={Scott McFarling},
One of the key factors determining computer performance is the degree to which the implementation can take advantage of instruction-level parallelism. Perhaps the most critical limit to this parallelism is the presence of conditional branches that determine which instructions need to be executed next. To increase parallelism, several authors have suggested ways of predicting the direction of conditional branches with hardware that uses the history of previous branches. The different proposed… 

A high-performance branch predictor design considering memory capacity limitations

A new scheme with high prediction rate while maintaining the low memory consumption is proposed and is the most appropriate branch predictor among comparison group presented in this paper.

Branch Classification: A New Mechanism for Improving Branch Predictor Performance

This paper proposes branch classification, a methodology for building more accurate branch predictors, and an example classification scheme is given and a new hybrid predictor is built based on this scheme which achieves a higher prediction accuracy than any branch predictor previously reported in the literature.

The bi-mode branch predictor

A new dynamic predictor is proposed, the bi mode predictor, which divides the prediction tables into two halves and by dynamically determining the current "mode" of the program, selects the appropriate half of the table for prediction.

The PYTHIA Branch Predictor : Performance Analysis of a Hybrid Branch Predictor

The aim of this paper is to study a new hybrid scheme, PYTHIA, based on a set of tested and popular branch predictors, to combine different predictors which perform better for different patterns of branch behaviors, measure the PyTHIA performance and compare it with each involved standalone branch predictor using the same benchmarks.

Analysis of Combined Bimodal and GShare Branch Prediction Schemes

Two branch prediction schemes were implemented and both resulted in an increase in performance, and a performance increase was observed with the combined prediction scheme versus the individual schemes alone.

Evaluating the effects of branch prediction accuracy on the performance of SMT architectures

It is observed that the effect of the improvement in the prediction accuracy is similar for both architectures, the SMT and superscalar.

Skewed Branch Predictors

Through both analytical and simulation models, it is shown that the skewed branch predictor removes a substantial portion of conflict aliasing by introducing redundancy to the branch-predictor tables, which increases capacity aliasing compared to a standard one-bank structure of comparable size.

The effect of code reordering on branch prediction

  • A. RamírezJ. Larriba-PeyM. Valero
  • Computer Science
    Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622)
  • 2000
This paper examines the effect of code layout optimizations on branch prediction accuracy and final processor performance, and shows that code reordering techniques always improve processor performance when all three factors are considered together.

Evaluation of Dynamic Branch Prediction Schemes in a MIPS Pipeline

This project explores some well-known branch prediction schemes proposed in the literature that can alleviate the problem of dead cycles in the front-end of the pipeline in super-pipelined and superscalar architectures.

Techniques for improving efficiency and accuracy of contemporary dynamic branch predictors

A scalable per-address (SPA) predictor is proposed that leverages value locality in the history of branch outcomes to reduce the size of pattern history table (PHT) by about 50%, while maintaining high prediction accuracy, and alternative designs of SPA predictor are proposed to reduce internal conflicts within the PHT and improve its prediction accuracy.



Improving the accuracy of dynamic branch prediction using branch correlation

A correlation-based scheme that uses the information provided by a proper subhistory of a branch to predict the outcome of that branch, and the accuracy of the new scheme surpasses that of the counter–based branch predction at saturation.

Alternative Implementations of Two-Level Adaptive Branch Prediction

  • Tse-Yu YehY. Patt
  • Computer Science
    [1992] Proceedings the 19th Annual International Symposium on Computer Architecture
  • 1992
This work proposes a new dynamic branch predictor that achieves substantially higher accuracy than any other scheme reported in the literature, and measures the effectiveness of different prediction algorithms and different amounts of history and pattern information.

A Comparison Of Dynamic Branch Predictors That Use Two Levels Of Branch History

  • Tse-Yu YehY. Patt
  • Business
    Proceedings of the 20th Annual International Symposium on Computer Architecture
  • 1993
This paper adopts the terminology of [2] and shows that there are really nine variations of the same basic model, which is the basic model Two-Level Adaptive Branch Prediction; Pan, So, and Rahmeh call it Correlation Branch Prediction.

Branch prediction for free

This work presents a program-based branch predictor that performs well for a large and diverse set of programs written in C and Fortran and focuses on heuristics for predicting non-loop branches, which dominate the dynamic branch count of many programs.

Limits of instruction-level parallelism

The results of simulations of 18 different test programs under 375 different models of available parallelism analysis are presented, showing how simulations based on instruction traces can model techniques at the limits of feasibility and even beyond.

Link-time optimization of address calculation on a 64-bit architecture

This paper has used its link-time code modification system OM to perform program transformations related to global address use on the Alpha AXP, and describes the optimizations performed and shows their effects on program size and performance.

Comparing Software And Hardware Schemes For Reducing The Cost Of Branches

  • W. HwuT. ConteP. Chang
  • Computer Science
    The 16th Annual International Symposium on Computer Architecture
  • 1989
Three schemes to reduce the cost of branches are presented in the context of a general pipeline model to increase throughput of the instruction fetch, instruction decode, and instruction execution portions of modern computers.

Reducing the cost of branches

A range of schemes for reducing branch cost focusing on both static (compile-time) and dynamic (hardware-assisted) prediction of branches are examined, from quantitative performance and implementation viewpoints.

Available instruction-level parallelism for superscalar and superpipelined machines

A parameterizable code reorganization and simulation system was developed and used to measure instruction-level parallelism and the average degree of superpipelining metric is introduced, suggesting that this metric is already high for many machines.

Limits of Control Flow on Parallelism

  • M. LamRobert P. Wilson
  • Computer Science
    [1992] Proceedings the 19th Annual International Symposium on Computer Architecture
  • 1992
This paper discusses three techniques useful in relaxing the constraints imposed by control flow on parallelism: control dependence analysis, executing multiple flows of control simultaneously, and