ChampSim
BasicBTB< SETS, WAYS > Class Template Reference

#include <basic_btb.h>

Collaboration diagram for BasicBTB< SETS, WAYS >:
[legend]

Classes

struct  ENTRY
 

Public Member Functions

void initialize ()
 
std::pair< uint64_t, uint8_t > predict (uint64_t ip)
 
void update (uint64_t ip, uint64_t branch_target, uint8_t taken, uint8_t branch_type)
 

Private Member Functions

uint64_t set_index (uint64_t ip)
 
ENTRYfind_entry (uint64_t ip)
 
ENTRYget_lru_entry (uint64_t set)
 
void update_lru (ENTRY *btb_entry)
 

Private Attributes

ENTRY basic_btb [SETS][WAYS]
 
uint64_t lru_counter
 

Member Function Documentation

◆ find_entry()

template<uint32_t SETS, uint32_t WAYS>
ENTRY* BasicBTB< SETS, WAYS >::find_entry ( uint64_t  ip)
inlineprivate

◆ get_lru_entry()

template<uint32_t SETS, uint32_t WAYS>
ENTRY* BasicBTB< SETS, WAYS >::get_lru_entry ( uint64_t  set)
inlineprivate

◆ initialize()

template<uint32_t SETS, uint32_t WAYS>
void BasicBTB< SETS, WAYS >::initialize ( )
inline

◆ predict()

template<uint32_t SETS, uint32_t WAYS>
std::pair<uint64_t, uint8_t> BasicBTB< SETS, WAYS >::predict ( uint64_t  ip)
inline

◆ set_index()

template<uint32_t SETS, uint32_t WAYS>
uint64_t BasicBTB< SETS, WAYS >::set_index ( uint64_t  ip)
inlineprivate

◆ update()

template<uint32_t SETS, uint32_t WAYS>
void BasicBTB< SETS, WAYS >::update ( uint64_t  ip,
uint64_t  branch_target,
uint8_t  taken,
uint8_t  branch_type 
)
inline

◆ update_lru()

template<uint32_t SETS, uint32_t WAYS>
void BasicBTB< SETS, WAYS >::update_lru ( ENTRY btb_entry)
inlineprivate

Member Data Documentation

◆ basic_btb

template<uint32_t SETS, uint32_t WAYS>
ENTRY BasicBTB< SETS, WAYS >::basic_btb[SETS][WAYS]
private

◆ lru_counter

template<uint32_t SETS, uint32_t WAYS>
uint64_t BasicBTB< SETS, WAYS >::lru_counter
private

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