The Bimode++ Branch Predictor
Citations Over Time
Abstract
Modern wide-issue superscalar processors tend to adopt deeper pipelines in order to attain high clock rates. This trend increases the number of on-the-fly instructions in processors and a mispredicted branch can result in substantial amounts of wasted work. In order to mitigate these wasted works, an accurate branch prediction is required for the high performance processors. In order to improve the prediction accuracy, we propose the bimode++ branch predictor. It is an enhanced version of the bimode branch predictor. Throughout execution from the start to the end of a program, some branch instructions have the same result at all times. These branches are defined as extremely biased branches. The bimode++ branch predictor is unique in predicting the output of an extremely biased branch with a simple hardware structure. In addition, the bimode++ branch predictor improves the accuracy using the refined indexing and a fusion function. Our experimental results with benchmarks from SpecFP, SpecINT, multi-media and server area show that the bimode++ branch predictor can reduce the misprediction rate by 13.2% to the bimode and by 32.5% to the gshare.
Related Papers
- → Cost effective speculation with the omnipredictor(2018)6 cited
- → A first-order superscalar processor model(2004)124 cited
- → Branch history table indexing to prevent pipeline bubbles in wide-issue superscalar processors(1993)13 cited
- → An Out-of-order Superscalar Processor With Speculative Execution And Fast, Precise Interrupts(2005)9 cited
- → Microarchitecture support for reducing branch penalty in a superscaler processor(2002)