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