•There are many variations on the idea:
–gselect: many combinations of n
and m
–global: use only the global
history to index the BHT - ignore the PC of the branch being predicted (an
extreme (n,m) gselect scheme)
–gshare: arrange bimodal predictors
in single BHT, but construct its index by XORing low-order PC address
bits with
global branch history shift register - claimed to reduce
conflicts
–Per-address Two-level Adaptive using
Per-address pattern history (PAp): for each
branch, keep a k-bit shift register recording its history, and use
this to index a BHT for this branch (see Yeh and Patt, 1992)
•Each suits some programs well but not all