Go to the documentation of this file.
43 MPP_TAGE_8KBParams::create()
49 MPP_LoopPredictor_8KBParams::create()
55 const MPP_StatisticalCorrector_8KBParams *
p)
65 sh->setNumOrdinalHistories(1);
86 unsigned int pc = branch_pc;
87 lsum +=
gPredict((
pc << 1) +
bi->predBeforeSC,
sh->globalHist << 11,
91 lsum += 2 *
gPredict(branch_pc,
sh->getLocalHistory(1, branch_pc),
93 if (
sh->getLocalHistory(1, branch_pc) == 2047) lsum += 4;
94 if (
sh->getLocalHistory(1, branch_pc) == 0) lsum -= 4;
96 lsum +=
gPredict(branch_pc,
sh->getHistoryStackEntry(),
110 gUpdate((
pc << 1) +
bi->predBeforeSC, taken,
sh->globalHist << 11,
133 sh->globalHist = (
sh->globalHist << 1) + taken;
135 sh->updateHistoryStack(corrTarget, taken, inst->
isCall(),
171 MPP_StatisticalCorrector_8KBParams::create()
177 const MultiperspectivePerceptronTAGE8KBParams *
p)
193 MultiperspectivePerceptronTAGE8KBParams::create()
void gUpdates(ThreadID tid, Addr pc, bool taken, StatisticalCorrector::BranchInfo *bi, int64_t phist) override
int gPredictions(ThreadID tid, Addr branch_pc, StatisticalCorrector::BranchInfo *bi, int &lsum, int64_t phist) override
void gUpdate(Addr branch_pc, bool taken, int64_t hist, std::vector< int > &length, std::vector< int8_t > *tab, int nbr, int logs, std::vector< int8_t > &w, StatisticalCorrector::BranchInfo *bi) override
unsigned getIndBiasSK(Addr branch_pc, StatisticalCorrector::BranchInfo *bi) const override
bool isDirectCtrl() const
void createSpecs() override
Creates the tables of the predictor.
MPP_StatisticalCorrector_8KB(const MPP_StatisticalCorrector_8KBParams *p)
unsigned getIndBias(Addr branch_pc, StatisticalCorrector::BranchInfo *bi, bool bias) const override
void addSpec(HistorySpec *spec)
Add a table spec to the prefetcher.
int16_t ThreadID
Thread index/ID type.
const unsigned chooserConfWidth
std::vector< int8_t > bias
std::vector< int8_t > * lgehl
const unsigned scCountersWidth
std::vector< int > pUpdateThreshold
const unsigned numEntriesFirstLocalHistories
MultiperspectivePerceptronTAGE8KB(const MultiperspectivePerceptronTAGE8KBParams *p)
void scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, StatisticalCorrector::BranchInfo *bi, Addr corrTarget) override
std::vector< int8_t > * pgehl
SCThreadHistory * scHistory
size_t getSizeInBits() const override
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
StatisticalCorrector::SCThreadHistory * makeThreadHistory() override
virtual void scHistoryUpdate(Addr branch_pc, const StaticInstPtr &inst, bool taken, BranchInfo *tage_bi, Addr corrTarget)
std::vector< int8_t > * ggehl
std::vector< int8_t > biasSK
int gPredict(Addr branch_pc, int64_t hist, std::vector< int > &length, std::vector< int8_t > *tab, int nbr, int logs, std::vector< int8_t > &w)
unsigned getIndUpd(Addr branch_pc) const override
const unsigned pUpdateThresholdWidth
void getBiasLSUM(Addr branch_pc, StatisticalCorrector::BranchInfo *bi, int &lsum) const override
bool isUncondCtrl() const
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
Generated on Wed Sep 30 2020 14:02:09 for gem5 by doxygen 1.8.17