Previous: Profiled Hybrid Branch Predictor, Up: Path Predictor
The RTIs below control the path predictor, which includes the block address predictor, branch predictor, jump predictor, and return-address stack. This list is currently not complete.
char*
bp_method methodUse method for branch prediction. Valid values are `gshare', `yags', `ez' (bimodal), `ezpro' (demo profiled hybrid), `hybrid', `hybrid-pro' (profiled hybrid), `hybrid-pro-write' (profiled hybrid, for collecting profile).
int
bp_size_lg size_lgUse a pattern history table (PHT) of 2^size_lg entries. For most predictors, use a GHR of length size_lg. For most predictors use this variable to set the GHR size and set
bp_history_len_param
to a large number.
int
bp_history_len_param lengthConsider a GHR of length length. Must not be smaller than
bp_size_lg
. For now, all predictors that use the GHR will use one of lengthmin(bp_history_len_param,bp_size_lg)
. For most predictors set this to a large number (say, 1000) and usebp_size_lg
to set the GHR size.
int
mbp_bac_lg bac_lgUse a block address cache (BAC) of 2^bac_lg entries. The BAC is roughly akin to the branch history table in a conventional system. It is a PC-indexed table that stores information about the blocks reachable from the PC. The information stored includes the block length, the type of instruction at its end, branch predictor counters, and for some CTIs, their target. A reasonable value is 14.