Multi-hybrid branch predictor
Hybrid predictors comprise several predictors, each targeting different classes of branches.
Idea: each predictor scheme works best for another branch type.
McFarling already combined two predictors (see also PowerPC 620, Alpha 21364,...).
As predictors increase in size, they often take more time to react to changes in a program (warm-up time).
A hybrid predictor with several components can solve this problem by using component predictors with shorter warm-up times while the larger predictors are warming up.
Examples of predictors with shorter warm-up times are two-level predictors with shorter histories as well as smaller dynamic predictors.
The Multi-Hybrid uses a set of selection counters for each entry in the branch target buffer, in the trace cache, or in a similar structure, keeping track of the predictor currently most accurate for each branch and then using the prediction from that predictor for that branch.