pub enum BranchPredictionError {
ReturnAddressStackZeroEntries,
BranchTargetBufferZeroEntries,
TaggedGeometricHistoryLowTooSmall,
TaggedGeometricHistoryFactorTooSmall,
TaggedGeometricHistoryTooLong,
TaggedGeometricHistoryHighLowerThanLow,
TaggedGeometricTableZeroEntries(usize),
TaggedGeometricTableTooSmallTag(usize),
TaggedGeometricTableTooLargeTag(usize),
}Expand description
Represents an error inside the configuration of a branch predictor.
Variants§
ReturnAddressStackZeroEntries
The return address doesn’t have any entries and thus doesn’t function.
BranchTargetBufferZeroEntries
The branch target buffer doesn’t hold any entries and thus doesn’t function.
TaggedGeometricHistoryLowTooSmall
A history length below 2 would mean no history tracking, defeating the purpose.
TaggedGeometricHistoryFactorTooSmall
The history size must increase from one table to the next for the predictor to function. The calculated factor is too small to achieve that.
TaggedGeometricHistoryTooLong
The global history grows to excessive values.
TaggedGeometricHistoryHighLowerThanLow
The history length of the table with the longest one is smaller than the history length of the table with the smallest one.
TaggedGeometricTableZeroEntries(usize)
The prediction table contains no value, making it useless. Contains index of the offending table.
TaggedGeometricTableTooSmallTag(usize)
The tag of entries inside the table is too small to be useful. Contains index of the offending table.
TaggedGeometricTableTooLargeTag(usize)
The tag of entries inside the table is too big. It’s an arbitrary limit to achieve fast simulation.