ChampSim
CACHE::Builder< P_FLAG, R_FLAG > Class Template Reference

#include <cache.h>

Collaboration diagram for CACHE::Builder< P_FLAG, R_FLAG >:
[legend]

Public Member Functions

 Builder ()=default
 
self_typename (std::string name_)
 
self_typefrequency (double freq_scale_)
 
self_typesets (uint32_t sets_)
 
self_typeways (uint32_t ways_)
 
self_typepq_size (uint32_t pq_size_)
 
self_typemshr_size (uint32_t mshr_size_)
 
self_typelatency (uint64_t lat_)
 
self_typehit_latency (uint64_t hit_lat_)
 
self_typefill_latency (uint64_t fill_lat_)
 
self_typetag_bandwidth (uint32_t max_read_)
 
self_typefill_bandwidth (uint32_t max_write_)
 
self_typeoffset_bits (unsigned offset_bits_)
 
self_typeset_prefetch_as_load ()
 
self_typereset_prefetch_as_load ()
 
self_typeset_wq_checks_full_addr ()
 
self_typereset_wq_checks_full_addr ()
 
self_typeset_virtual_prefetch ()
 
self_typereset_virtual_prefetch ()
 
template<typename... Elems>
self_typeprefetch_activate (Elems... pref_act_elems)
 
self_typeupper_levels (std::vector< CACHE::channel_type * > &&uls_)
 
self_typelower_level (CACHE::channel_type *ll_)
 
self_typelower_translate (CACHE::channel_type *lt_)
 
template<unsigned long long P>
Builder< P, R_FLAG > prefetcher ()
 
template<unsigned long long R>
Builder< P_FLAG, R > replacement ()
 

Private Types

using self_type = Builder< P_FLAG, R_FLAG >
 

Private Member Functions

template<unsigned long long OTHER_P, unsigned long long OTHER_R>
 Builder (builder_conversion_tag, const Builder< OTHER_P, OTHER_R > &other)
 

Private Attributes

std::string m_name {}
 
double m_freq_scale {}
 
uint32_t m_sets {}
 
uint32_t m_ways {}
 
std::size_t m_pq_size {std::numeric_limits<std::size_t>::max()}
 
uint32_t m_mshr_size {}
 
uint64_t m_hit_lat {}
 
uint64_t m_fill_lat {}
 
uint64_t m_latency {}
 
uint32_t m_max_tag {}
 
uint32_t m_max_fill {}
 
unsigned m_offset_bits {}
 
bool m_pref_load {}
 
bool m_wq_full_addr {}
 
bool m_va_pref {}
 
unsigned m_pref_act_mask {}
 
std::vector< CACHE::channel_type * > m_uls {}
 
CACHE::channel_typem_ll {}
 
CACHE::channel_typem_lt {nullptr}
 

Friends

class CACHE
 

Member Typedef Documentation

◆ self_type

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
using CACHE::Builder< P_FLAG, R_FLAG >::self_type = Builder<P_FLAG, R_FLAG>
private

Constructor & Destructor Documentation

◆ Builder() [1/2]

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
template<unsigned long long OTHER_P, unsigned long long OTHER_R>
CACHE::Builder< P_FLAG, R_FLAG >::Builder ( builder_conversion_tag  ,
const Builder< OTHER_P, OTHER_R > &  other 
)
inlineprivate

◆ Builder() [2/2]

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
CACHE::Builder< P_FLAG, R_FLAG >::Builder ( )
default

Member Function Documentation

◆ fill_bandwidth()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::fill_bandwidth ( uint32_t  max_write_)
inline

◆ fill_latency()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::fill_latency ( uint64_t  fill_lat_)
inline

◆ frequency()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::frequency ( double  freq_scale_)
inline

◆ hit_latency()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::hit_latency ( uint64_t  hit_lat_)
inline

◆ latency()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::latency ( uint64_t  lat_)
inline

◆ lower_level()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::lower_level ( CACHE::channel_type ll_)
inline

◆ lower_translate()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::lower_translate ( CACHE::channel_type lt_)
inline

◆ mshr_size()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::mshr_size ( uint32_t  mshr_size_)
inline

◆ name()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::name ( std::string  name_)
inline

◆ offset_bits()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::offset_bits ( unsigned  offset_bits_)
inline

◆ pq_size()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::pq_size ( uint32_t  pq_size_)
inline

◆ prefetch_activate()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
template<typename... Elems>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::prefetch_activate ( Elems...  pref_act_elems)
inline

◆ prefetcher()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
template<unsigned long long P>
Builder<P, R_FLAG> CACHE::Builder< P_FLAG, R_FLAG >::prefetcher ( )
inline

◆ replacement()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
template<unsigned long long R>
Builder<P_FLAG, R> CACHE::Builder< P_FLAG, R_FLAG >::replacement ( )
inline

◆ reset_prefetch_as_load()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::reset_prefetch_as_load ( )
inline

◆ reset_virtual_prefetch()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::reset_virtual_prefetch ( )
inline

◆ reset_wq_checks_full_addr()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::reset_wq_checks_full_addr ( )
inline

◆ set_prefetch_as_load()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::set_prefetch_as_load ( )
inline

◆ set_virtual_prefetch()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::set_virtual_prefetch ( )
inline

◆ set_wq_checks_full_addr()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::set_wq_checks_full_addr ( )
inline

◆ sets()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::sets ( uint32_t  sets_)
inline

◆ tag_bandwidth()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::tag_bandwidth ( uint32_t  max_read_)
inline

◆ upper_levels()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::upper_levels ( std::vector< CACHE::channel_type * > &&  uls_)
inline

◆ ways()

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
self_type& CACHE::Builder< P_FLAG, R_FLAG >::ways ( uint32_t  ways_)
inline

Friends And Related Function Documentation

◆ CACHE

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
friend class CACHE
friend

Member Data Documentation

◆ m_fill_lat

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
uint64_t CACHE::Builder< P_FLAG, R_FLAG >::m_fill_lat {}
private

◆ m_freq_scale

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
double CACHE::Builder< P_FLAG, R_FLAG >::m_freq_scale {}
private

◆ m_hit_lat

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
uint64_t CACHE::Builder< P_FLAG, R_FLAG >::m_hit_lat {}
private

◆ m_latency

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
uint64_t CACHE::Builder< P_FLAG, R_FLAG >::m_latency {}
private

◆ m_ll

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
CACHE::channel_type* CACHE::Builder< P_FLAG, R_FLAG >::m_ll {}
private

◆ m_lt

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
CACHE::channel_type* CACHE::Builder< P_FLAG, R_FLAG >::m_lt {nullptr}
private

◆ m_max_fill

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
uint32_t CACHE::Builder< P_FLAG, R_FLAG >::m_max_fill {}
private

◆ m_max_tag

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
uint32_t CACHE::Builder< P_FLAG, R_FLAG >::m_max_tag {}
private

◆ m_mshr_size

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
uint32_t CACHE::Builder< P_FLAG, R_FLAG >::m_mshr_size {}
private

◆ m_name

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
std::string CACHE::Builder< P_FLAG, R_FLAG >::m_name {}
private

◆ m_offset_bits

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
unsigned CACHE::Builder< P_FLAG, R_FLAG >::m_offset_bits {}
private

◆ m_pq_size

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
std::size_t CACHE::Builder< P_FLAG, R_FLAG >::m_pq_size {std::numeric_limits<std::size_t>::max()}
private

◆ m_pref_act_mask

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
unsigned CACHE::Builder< P_FLAG, R_FLAG >::m_pref_act_mask {}
private

◆ m_pref_load

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
bool CACHE::Builder< P_FLAG, R_FLAG >::m_pref_load {}
private

◆ m_sets

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
uint32_t CACHE::Builder< P_FLAG, R_FLAG >::m_sets {}
private

◆ m_uls

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
std::vector<CACHE::channel_type*> CACHE::Builder< P_FLAG, R_FLAG >::m_uls {}
private

◆ m_va_pref

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
bool CACHE::Builder< P_FLAG, R_FLAG >::m_va_pref {}
private

◆ m_ways

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
uint32_t CACHE::Builder< P_FLAG, R_FLAG >::m_ways {}
private

◆ m_wq_full_addr

template<unsigned long long P_FLAG = 0, unsigned long long R_FLAG = 0>
bool CACHE::Builder< P_FLAG, R_FLAG >::m_wq_full_addr {}
private

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