35 #ifndef __CPU_PRED_BI_MODE_PRED_HH__
36 #define __CPU_PRED_BI_MODE_PRED_HH__
40 #include "params/BiModeBP.hh"
114 #endif // __CPU_PRED_BI_MODE_PRED_HH__
unsigned globalHistoryBits
void squash(ThreadID tid, void *bp_history)
void btbUpdate(ThreadID tid, Addr branch_addr, void *&bp_history)
If a branch is not taken, because the BTB address is invalid or missing, this function sets the appro...
bool lookup(ThreadID tid, Addr branch_addr, void *&bp_history)
Looks up a given PC in the BP to see if it is taken or not taken.
void updateGlobalHistReg(ThreadID tid, bool taken)
std::vector< SatCounter > choiceCounters
unsigned globalPredictorSize
std::vector< unsigned > globalHistoryReg
const Params * params() const
unsigned globalHistoryReg
unsigned choiceHistoryMask
unsigned historyRegisterMask
unsigned choicePredictorSize
std::vector< SatCounter > notTakenCounters
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Basically a wrapper class to hold both the branch predictor and the BTB.
int16_t ThreadID
Thread index/ID type.
unsigned getGHR(ThreadID tid, void *bp_history) const
std::vector< SatCounter > takenCounters
unsigned globalHistoryMask
void update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history, bool squashed)
Updates the BP with taken/not taken information.
BiModeBP(const BiModeBPParams *params)
Implements a bi-mode branch predictor.
void uncondBranch(ThreadID tid, Addr pc, void *&bp_history)
unsigned notTakenThreshold