ChampSim
RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS > Class Template Reference

#include <ras.h>

Public Member Functions

void initialize ()
 
uint64_t predict ()
 
void update (uint64_t ip, uint64_t branch_target, uint8_t taken, uint8_t branch_type)
 

Private Member Functions

uint64_t abs_addr_dist (uint64_t addr1, uint64_t addr2)
 
void push_ras (uint64_t ip)
 
uint64_t peek_ras ()
 
uint64_t pop_ras ()
 
uint64_t call_size_tracker_hash (uint64_t ip)
 
uint64_t get_call_size (uint64_t ip)
 

Private Attributes

uint64_t ras [RAS_SIZE]
 
int ras_index
 
uint64_t call_instr_sizes [CALL_INSTR_SIZE_TRACKERS]
 

Member Function Documentation

◆ abs_addr_dist()

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
uint64_t RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::abs_addr_dist ( uint64_t  addr1,
uint64_t  addr2 
)
inlineprivate

◆ call_size_tracker_hash()

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
uint64_t RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::call_size_tracker_hash ( uint64_t  ip)
inlineprivate

◆ get_call_size()

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
uint64_t RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::get_call_size ( uint64_t  ip)
inlineprivate

◆ initialize()

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
void RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::initialize ( )
inline

◆ peek_ras()

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
uint64_t RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::peek_ras ( )
inlineprivate

◆ pop_ras()

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
uint64_t RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::pop_ras ( )
inlineprivate

◆ predict()

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
uint64_t RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::predict ( )
inline

◆ push_ras()

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
void RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::push_ras ( uint64_t  ip)
inlineprivate

◆ update()

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
void RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::update ( uint64_t  ip,
uint64_t  branch_target,
uint8_t  taken,
uint8_t  branch_type 
)
inline

Member Data Documentation

◆ call_instr_sizes

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
uint64_t RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::call_instr_sizes[CALL_INSTR_SIZE_TRACKERS]
private

◆ ras

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
uint64_t RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::ras[RAS_SIZE]
private

◆ ras_index

template<uint32_t RAS_SIZE, uint32_t CALL_INSTR_SIZE_TRACKERS>
int RAS< RAS_SIZE, CALL_INSTR_SIZE_TRACKERS >::ras_index
private

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