Go to the documentation of this file.
33 #ifndef __CPU_PRED_BI_MODE_PRED_HH__
34 #define __CPU_PRED_BI_MODE_PRED_HH__
38 #include "params/BiModeBP.hh"
111 #endif // __CPU_PRED_BI_MODE_PRED_HH__
int16_t ThreadID
Thread index/ID type.
unsigned globalHistoryBits
std::vector< SatCounter > choiceCounters
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.
unsigned globalPredictorSize
std::vector< unsigned > globalHistoryReg
unsigned globalHistoryReg
void updateGlobalHistReg(ThreadID tid, bool taken)
Implements a bi-mode branch predictor.
unsigned choiceHistoryMask
Basically a wrapper class to hold both the branch predictor and the BTB.
unsigned historyRegisterMask
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::vector< SatCounter > takenCounters
const Params * params() const
unsigned choicePredictorSize
void update(ThreadID tid, Addr branch_addr, bool taken, void *bp_history, bool squashed, const StaticInstPtr &inst, Addr corrTarget)
Updates the BP with taken/not taken information.
unsigned globalHistoryMask
std::vector< SatCounter > notTakenCounters
void squash(ThreadID tid, void *bp_history)
unsigned notTakenThreshold
void uncondBranch(ThreadID tid, Addr pc, 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...
BiModeBP(const BiModeBPParams *params)
Generated on Wed Sep 30 2020 14:02:09 for gem5 by doxygen 1.8.17