53 std::vector<std::deque<response_type>*>
to_return{};
57 uint32_t
cpu = std::numeric_limits<uint32_t>::max();
58 uint8_t
asid[2] = {std::numeric_limits<uint8_t>::max(), std::numeric_limits<uint8_t>::max()};
65 std::deque<mshr_type>
MSHR;
84 std::vector<pscl_type>
pscl;
94 std::array<std::array<uint32_t, 3>, 16>
m_pscl{};
99 std::vector<PageTableWalker::channel_type*>
m_uls{};
123 m_pscl.at(lvl) = {lvl, set, way};
148 m_uls = std::move(uls_);
unsigned m_latency
Definition: ptw.h:98
std::string_view m_name
Definition: ptw.h:91
uint32_t m_max_fill
Definition: ptw.h:97
uint32_t m_max_tag_check
Definition: ptw.h:96
Builder & latency(unsigned latency_)
Definition: ptw.h:141
Builder & cpu(uint32_t cpu_)
Definition: ptw.h:116
Builder & upper_levels(std::vector< PageTableWalker::channel_type * > &&uls_)
Definition: ptw.h:146
double m_freq_scale
Definition: ptw.h:92
Builder & virtual_memory(VirtualMemory *vmem_)
Definition: ptw.h:156
VirtualMemory * m_vmem
Definition: ptw.h:101
Builder & name(std::string_view name_)
Definition: ptw.h:106
uint32_t m_cpu
Definition: ptw.h:93
std::array< std::array< uint32_t, 3 >, 16 > m_pscl
Definition: ptw.h:94
Builder & mshr_size(uint32_t mshr_size_)
Definition: ptw.h:126
Builder & frequency(double freq_scale_)
Definition: ptw.h:111
std::vector< PageTableWalker::channel_type * > m_uls
Definition: ptw.h:99
Builder & fill_bandwidth(uint32_t max_fill_)
Definition: ptw.h:136
uint32_t m_mshr_size
Definition: ptw.h:95
Builder & lower_level(PageTableWalker::channel_type *ll_)
Definition: ptw.h:151
Builder & add_pscl(uint8_t lvl, uint32_t set, uint32_t way)
Definition: ptw.h:121
PageTableWalker::channel_type * m_ll
Definition: ptw.h:100
Builder & tag_bandwidth(uint32_t max_read_)
Definition: ptw.h:131
void begin_phase() override final
Definition: ptw.cc:200
const long int MAX_FILL
Definition: ptw.h:81
const uint32_t MSHR_SIZE
Definition: ptw.h:80
VirtualMemory * vmem
Definition: ptw.h:85
std::vector< pscl_type > pscl
Definition: ptw.h:84
typename channel_type::response_type response_type
Definition: ptw.h:45
void print_deadlock() override final
Definition: ptw.cc:210
std::deque< mshr_type > completed
Definition: ptw.h:67
typename channel_type::request_type request_type
Definition: ptw.h:44
const uint64_t HIT_LATENCY
Definition: ptw.h:82
long operate() override final
Definition: ptw.cc:112
std::vector< channel_type * > upper_levels
Definition: ptw.h:69
std::deque< mshr_type > MSHR
Definition: ptw.h:65
const std::string NAME
Definition: ptw.h:79
std::optional< mshr_type > handle_read(const request_type &pkt, channel_type *ul)
Definition: ptw.cc:49
const uint64_t CR3_addr
Definition: ptw.h:87
PageTableWalker(Builder builder)
Definition: ptw.cc:29
std::deque< mshr_type > finished
Definition: ptw.h:66
const long int MAX_READ
Definition: ptw.h:81
std::optional< mshr_type > step_translation(const mshr_type &source)
Definition: ptw.cc:92
void finish_packet(const response_type &packet)
Definition: ptw.cc:161
channel_type * lower_level
Definition: ptw.h:70
std::optional< mshr_type > handle_fill(const mshr_type &pkt)
Definition: ptw.cc:73
response response_type
Definition: channel.h:109
request request_type
Definition: channel.h:110
Definition: lru_table.h:46
Definition: operable.h:24
uint64_t address
Definition: ptw.h:48
std::size_t translation_level
Definition: ptw.h:60
uint64_t event_cycle
Definition: ptw.h:55
uint32_t cpu
Definition: ptw.h:57
std::vector< std::deque< response_type > * > to_return
Definition: ptw.h:53
uint32_t pf_metadata
Definition: ptw.h:56
uint8_t asid[2]
Definition: ptw.h:58
uint64_t v_address
Definition: ptw.h:49
mshr_type(request_type req, std::size_t level)
Definition: ptw.cc:41
std::vector< std::reference_wrapper< ooo_model_instr > > instr_depend_on_me
Definition: ptw.h:52
uint64_t data
Definition: ptw.h:50
std::size_t level
Definition: ptw.h:34
uint64_t ptw_addr
Definition: ptw.h:33
uint64_t vaddr
Definition: ptw.h:32
std::size_t shamt
Definition: ptw.h:38
auto operator()(const pscl_entry &entry) const
Definition: ptw.h:39