ChampSim
my_predictor Class Reference

#include <ittage_64KB.h>

Collaboration diagram for my_predictor:
[legend]

Classes

class  folded_history
 
class  gentry
 
class  regionentry
 
class  specentry
 

Public Member Functions

 my_predictor (void)
 
uint64_t gindex (uint64_t pc, int bank, folded_history *ch_i)
 
uint16_t gtag (uint64_t pc, int bank, folded_history *ch0, folded_history *ch1)
 
int MYRANDOM ()
 
void Tagepred ()
 
uint64_t predict_brindirect (uint64_t pc)
 
uint64_t PredSpecIUM (uint64_t pred)
 
void UpdateSpecIUM (uint64_t target)
 
void fetch_history_update (uint64_t pc, uint8_t branch_type, uint8_t taken, uint64_t target)
 
void HistoryUpdate (uint64_t pc, uint8_t branch_type, uint8_t taken, uint64_t target, uint64_t &Y, folded_history *H, folded_history *G, folded_history *J)
 
void update_brindirect (uint64_t pc, uint8_t branch_type, uint8_t taken, uint64_t target)
 

Private Attributes

int m [NHIST+1] ={0, 0, 10, 16, 27, 44, 60, 96, 109, 219, 449, 487, 714, 1313, 2146, 3881}
 
int TICK
 
int8_t USE_ALT_ON_NA
 
uint8_t ghist [HISTBUFFERLENGTH]
 
uint64_t Fetch_ptghist
 
folded_history Fetch_ch_i [NHIST+1]
 
folded_history Fetch_ch_t [2][NHIST+1]
 
uint64_t Retire_ptghist
 
folded_history Retire_ch_i [NHIST+1]
 
folded_history Retire_ch_t [2][NHIST+1]
 
gentrygtable [NHIST+1]
 
regionentryrtable
 
int TB [NHIST+1]
 
int logg [NHIST+1]
 
int GI [NHIST+1]
 
uint64_t GTAG [NHIST+1]
 
uint64_t pred_taken
 
uint64_t alttaken
 
uint64_t tage_pred
 
int HitBank
 
int AltBank
 
uint64_t LongestMatchPred
 
int Seed
 
int PtIumRetire
 
int PtIumFetch
 
specentryIUMPred
 

Constructor & Destructor Documentation

◆ my_predictor()

my_predictor::my_predictor ( void  )
inline

Member Function Documentation

◆ fetch_history_update()

void my_predictor::fetch_history_update ( uint64_t  pc,
uint8_t  branch_type,
uint8_t  taken,
uint64_t  target 
)
inline

◆ gindex()

uint64_t my_predictor::gindex ( uint64_t  pc,
int  bank,
folded_history ch_i 
)
inline

◆ gtag()

uint16_t my_predictor::gtag ( uint64_t  pc,
int  bank,
folded_history ch0,
folded_history ch1 
)
inline

◆ HistoryUpdate()

void my_predictor::HistoryUpdate ( uint64_t  pc,
uint8_t  branch_type,
uint8_t  taken,
uint64_t  target,
uint64_t &  Y,
folded_history H,
folded_history G,
folded_history J 
)
inline

◆ MYRANDOM()

int my_predictor::MYRANDOM ( )
inline

◆ predict_brindirect()

uint64_t my_predictor::predict_brindirect ( uint64_t  pc)
inline

◆ PredSpecIUM()

uint64_t my_predictor::PredSpecIUM ( uint64_t  pred)
inline

◆ Tagepred()

void my_predictor::Tagepred ( )
inline

◆ update_brindirect()

void my_predictor::update_brindirect ( uint64_t  pc,
uint8_t  branch_type,
uint8_t  taken,
uint64_t  target 
)
inline

◆ UpdateSpecIUM()

void my_predictor::UpdateSpecIUM ( uint64_t  target)
inline

Member Data Documentation

◆ AltBank

int my_predictor::AltBank
private

◆ alttaken

uint64_t my_predictor::alttaken
private

◆ Fetch_ch_i

folded_history my_predictor::Fetch_ch_i[NHIST+1]
private

◆ Fetch_ch_t

folded_history my_predictor::Fetch_ch_t[2][NHIST+1]
private

◆ Fetch_ptghist

uint64_t my_predictor::Fetch_ptghist
private

◆ ghist

uint8_t my_predictor::ghist[HISTBUFFERLENGTH]
private

◆ GI

int my_predictor::GI[NHIST+1]
private

◆ gtable

gentry* my_predictor::gtable[NHIST+1]
private

◆ GTAG

uint64_t my_predictor::GTAG[NHIST+1]
private

◆ HitBank

int my_predictor::HitBank
private

◆ IUMPred

specentry* my_predictor::IUMPred
private

◆ logg

int my_predictor::logg[NHIST+1]
private

◆ LongestMatchPred

uint64_t my_predictor::LongestMatchPred
private

◆ m

int my_predictor::m[NHIST+1] ={0, 0, 10, 16, 27, 44, 60, 96, 109, 219, 449, 487, 714, 1313, 2146, 3881}
private

◆ pred_taken

uint64_t my_predictor::pred_taken
private

◆ PtIumFetch

int my_predictor::PtIumFetch
private

◆ PtIumRetire

int my_predictor::PtIumRetire
private

◆ Retire_ch_i

folded_history my_predictor::Retire_ch_i[NHIST+1]
private

◆ Retire_ch_t

folded_history my_predictor::Retire_ch_t[2][NHIST+1]
private

◆ Retire_ptghist

uint64_t my_predictor::Retire_ptghist
private

◆ rtable

regionentry* my_predictor::rtable
private

◆ Seed

int my_predictor::Seed
private

◆ tage_pred

uint64_t my_predictor::tage_pred
private

◆ TB

int my_predictor::TB[NHIST+1]
private

◆ TICK

int my_predictor::TICK
private

◆ USE_ALT_ON_NA

int8_t my_predictor::USE_ALT_ON_NA
private

The documentation for this class was generated from the following file: