BACKGROUND

Branch prediction is a technique used by pipeline processing processors to speculatively execute instructions. Branch prediction attempts to determine the appropriate path a branch should take by assessing the likelihood a branch is taken or not taken by the processor. When the branch predictor correctly predicts the path to be taken, branch prediction improves instruction pipeline flow. However, when the branch predictor incorrectly predicts the path (branch misprediction), the result is a waste of processor time and resources as the processor discards the speculatively executed or partially executed instructions.

Typical branch prediction techniques utilize generic conditional predictors for branch prediction. These generic conditional predictors use an associated confidence level to generate the branch prediction. However, when the confidence level is unreliable, the branch predictor can generate branch predictions that have an increased misprediction rate. The increased misprediction rate can lead to a waste of power and resources in the overall processing system. Thus, an improved branch prediction technique that improves the branch misprediction rate is desirable.

