Hi All,

It seems to me that some of the tournament branch predictor parameters are redundant, at least given how the predictor is currently implemented. Has anyone else run into this?

Specifically, the tournament predictor takes nine parameters that can be configured independently:
localPredictorSize,
localCtrBits,
localHistoryTableSize,
localHistoryBits,
globalPredictorSize,
globalHistoryBits,
globalCtrBits,
choicePredictorSize,
choiceCtrBits

However, the code assumes that 2^(globalHistoryBits) = globalPredictorSize = choicePredictorSize, and 2^(localHistoryBits) = localPredictorSize. These assumptions aren't tested, so it's possible to crash gem5 if, for example, 2^(globalHistoryBits) > globalPredictorSize.

There's also a redundancy in the three *CtrBits. The prediction threshold is based on localCtrBits, but used for the other two as well. The *CtrBits can be defined independently, but it looks like the saturating counters' thresholds will be skewed unless all the *CtrBits are the same. (There is a comment that the thresholds should be separated)

So the question is, how much of this is bug, and how much is feature? Has this caused problems for anyone?

Thanks,
Erik


--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to