Speculation implies prediction
many conditional branches are bimodal but not static
a significant minority are dynamic - not bimodal
many of those are correlated with other branches
analysis of payoff matrix can tell you when it’s better to
execute both branches - predication
many branch predictor variants, including ‘selective’
predictor, attempts to use best of several other
predictors
multi-issue processors need to predict a trace of
branches
similar ideas can be applied to other forms of
speculation, including prefetching, load-no-allocate,
adaptive load-exclusive, value prediction etc
34