Dynamic history-length fitting: a third level of adaptivity for branch prediction

@article{Juan1998DynamicHF,
  title={Dynamic history-length fitting: a third level of adaptivity for branch prediction},
  author={Toni Juan and Kana Sanjeevan and Juan J. Navarro},
  journal={Proceedings. 25th Annual International Symposium on Computer Architecture (Cat. No.98CB36235)},
  year={1998},
  pages={155-166}
}
  • Toni Juan, K. Sanjeevan, J. Navarro
  • Published 16 April 1998
  • Computer Science
  • Proceedings. 25th Annual International Symposium on Computer Architecture (Cat. No.98CB36235)
Accurate branch prediction is essential for obtaining high performance in pipelined superscalar processors that execute instructions speculatively. Some of the best current predictors combine a part of the branch address with a fixed amount of global history of branch outcomes in order to make a prediction. These predictors cannot perform uniformly well across all workloads because the best amount of history to be used depends on the code, the input data and the frequency of context switches… 
Accuracy Enhancement by Selective Use of Branch History in Embedded Processor
TLDR
Compared to the previous bimodal style predictors and the fixed history length predictors in embedded processors, this method provides better history length for each branch instruction, resulting in substantial improvement in prediction accuracy.
Improving branch prediction by dynamic dataflow-based identification of correlated branches from a large global history
TLDR
Experimental studies show that adding an 8KB corrector predictor (that uses affector information) to a 16KB perceptron predictor reduces the average misprediction rate for 12 benchmarks from 6.3% to 5.7%, an improvement achieved only by a 64KB perceptrons predictor.
Variable length path branch prediction
TLDR
A new branch predictor in which the value of N is allowed to vary is introduced, and by constructing the index into the table using the last N target addresses, and using profiling information to select the propervalue of N for each branch, extremely accurate branch prediction is achieved.
Improving branch predictors by correlating on data values
TLDR
The branch difference predictor (BDP) uses data values as additional information to improve the accuracy of conditional branch predictors and maintains a history of differences between branch source register operands, and feeds these into the prediction process.
Novel Branch Prediction Strategy based on Adaptive History Length for High-Performance Microprocessor
TLDR
In this paper, a new method called Instruction Address alloyed History Length Modification branch predictor is proposed to handle the useless history bits.
The effects of context switching on branch predictor performance
  • M. Co, K. Skadron
  • Business
    2001 IEEE International Symposium on Performance Analysis of Systems and Software. ISPASS.
  • 2001
TLDR
It is shown that contezt switching is not a significant factor to be considered when performing general branch prediction studies, and operating system wntezt switches have little effect on branch prediction rate when using time slices representative of today's operating systems.
Control-flow speculation through value prediction for superscalar processors
TLDR
A new branch predictor that predicts the outcomes of branches by predicting the value of their inputs and performing an early computation of their results according to the predicted values is introduced.
Exploring Virtualization Techniques for Branch Outcome Prediction
TLDR
This work introduces a new branch predictor design that increases the perceived predictor capacity without increasing its delay, by using a large virtual second- level table allocated in the second-level caches.
Assigning cost to branches for speculation control in superscalar processors
TLDR
The aim of this research is to apply power optimization techniques for mis-predicted branches by showing that the cost predictor can be used to reduce the power associated with the combined branch predictor by 20% with no performance loss in most of the authors' benchmarks.
...
...

References

SHOWING 1-10 OF 22 REFERENCES
Alternative implementations of two-level adaptive branch prediction
TLDR
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.
Trading Conflict And Capacity Aliasing In Conditional Branch Predictors
TLDR
The skewed branch predictor is proposed, a multi-bank, tag-less branch predictor designed specifically to reduce the impact of conflict aliasing, and a new classification for branch aliasing based on the three-Cs model for caches is proposed.
Improving the accuracy of dynamic branch prediction using branch correlation
TLDR
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.
The bi-mode branch predictor
TLDR
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.
Using Hybrid Branch Predictors to Improve Branch Prediction Accuracy in the Presence of Context Switches
TLDR
This paper introduces a new hybrid branch predictor and shows that it is more accurate (for a given cost) than any previously published scheme, especially if the branch histories are periodically flushed due to the presence of context switches.
Combining Branch Predictors
TLDR
This paper describes a method of increasing the usefulness of branch history by hashing it together with the branch address and shows that this new approach allows predictors with a single level of history array access to outperform schemes with multiple levels of history for all but the largest predictor sizes.
Branch Classification: A New Mechanism for Improving Branch Predictor Performance
TLDR
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.
Correlation and Aliasing in Dynamic Branch Predictors
TLDR
It is shown that for predictors with small available resources, aliasing between distinct branches can have the dominant influence on prediction accuracy, and the simple scheme of selecting a predictor using the branch address can be more effective than more elaborate correlating branch predictors.
The Agree Predictor: A Mechanism For Reducing Negative Branch History Interference
TLDR
This paper presents a new method to reduce the interference problem called agree prediction, which reduces the chance that two branches aliasing the same PHT entry will interfere negatively and evaluates the performance of this scheme using full traces of the SPECint95 benchmarks.
The performance impact of incomplete bypassing in processor pipelines
TLDR
A hardware scheme which records the path leading to a conditional branch in order to predict the outcome of the branch instruction more accurately is presented and it is indicated that knowledge of path information leads to better prediction than knowledge of simply the previous branch outcomes for a given number of history items.
...
...