29 auto add_pkt = [&](
auto pkt) {
45 auto end = std::find_if_not(std::begin(
packets), std::end(
packets), [cycle=
current_cycle](
const auto &x){
return x.event_cycle <= cycle; });
50 if (pkt.response_requested)
81 auto add_pkt = [&](
auto pkt) {
98 auto end = std::find_if_not(std::begin(
packets), std::end(
packets), [cycle=
current_cycle](
const auto &x){
return x.event_cycle <= cycle; });
102 if (pkt.response_requested)
118 std::deque<champsim::channel::request_type>
packets;
127 auto add_pkt = [&](
auto pkt) {
148 for (
const auto &pkt :
packets) {
149 if (pkt.response_requested)
157 auto pkt_it = std::partition(std::begin(
packets), std::end(
packets), [addr](
auto x){
return x.address != addr; });
158 std::for_each(pkt_it, std::end(
packets), [&](
const auto& pkt) {
159 if (pkt.response_requested)
171 std::deque<champsim::channel::response_type>
returned{};
208 auto it = std::partition(std::begin(
packets), std::end(
packets), std::not_fn(std::bind(finder, pkt, std::placeholders::_1)));
210 throw std::invalid_argument{
"Packet returned which was not sent"};
211 std::for_each(it, std::end(
packets), [cycle=
current_cycle](
auto& x){
return x.return_time = cycle; });
bool add_wq(const request_type &packet)
Definition: channel.cc:155
response response_type
Definition: channel.h:109
bool add_rq(const request_type &packet)
Definition: channel.cc:141
std::deque< request_type > WQ
Definition: channel.h:113
bool add_pq(const request_type &packet)
Definition: channel.cc:169
std::deque< request_type > RQ
Definition: channel.h:113
std::deque< response_type > returned
Definition: channel.h:114
std::deque< request_type > PQ
Definition: channel.h:113
request request_type
Definition: channel.h:110
Definition: operable.h:24
uint64_t current_cycle
Definition: operable.h:29
operable(double scale)
Definition: operable.h:32
std::deque< packet > packets
Definition: mocks.hpp:18
champsim::channel queues
Definition: mocks.hpp:23
std::deque< uint64_t > addresses
Definition: mocks.hpp:24
do_nothing_MRC()
Definition: mocks.hpp:26
do_nothing_MRC(uint64_t lat)
Definition: mocks.hpp:25
long operate() override
Definition: mocks.hpp:28
uint64_t ret_data
Definition: mocks.hpp:19
const uint64_t latency
Definition: mocks.hpp:20
std::size_t packet_count() const
Definition: mocks.hpp:58
std::deque< packet > ready_packets
Definition: mocks.hpp:18
const uint64_t latency
Definition: mocks.hpp:72
long operate() override
Definition: mocks.hpp:80
std::deque< packet > packets
Definition: mocks.hpp:70
champsim::channel queues
Definition: mocks.hpp:76
const uint64_t ret_addr
Definition: mocks.hpp:71
std::size_t packet_count() const
Definition: mocks.hpp:110
filter_MRC(uint64_t ret_addr_, uint64_t lat)
Definition: mocks.hpp:77
std::deque< packet > ready_packets
Definition: mocks.hpp:70
std::size_t mpacket_count
Definition: mocks.hpp:73
filter_MRC(uint64_t ret_addr_)
Definition: mocks.hpp:78
Definition: mocks.hpp:117
std::size_t mpacket_count
Definition: mocks.hpp:119
std::deque< champsim::channel::request_type > packets
Definition: mocks.hpp:118
uint64_t ret_data
Definition: mocks.hpp:120
void release(uint64_t addr)
Definition: mocks.hpp:155
long operate() override
Definition: mocks.hpp:126
void release_all()
Definition: mocks.hpp:146
release_MRC()
Definition: mocks.hpp:124
champsim::channel queues
Definition: mocks.hpp:123
std::size_t packet_count() const
Definition: mocks.hpp:144
Definition: champsim.h:24
Definition: mocks.hpp:170
long operate()
Definition: mocks.hpp:175
std::size_t count
Definition: mocks.hpp:173
std::deque< champsim::channel::response_type > returned
Definition: mocks.hpp:171
uint64_t event_cycle
Definition: mocks.hpp:16
uint64_t event_cycle
Definition: mocks.hpp:68
Definition: mocks.hpp:191
request_type pkt
Definition: mocks.hpp:192
uint64_t issue_time
Definition: mocks.hpp:193
uint64_t return_time
Definition: mocks.hpp:194
Definition: mocks.hpp:184
std::deque< result_data > packets
Definition: mocks.hpp:196
champsim::channel queues
Definition: mocks.hpp:189
typename champsim::channel::response_type response_type
Definition: mocks.hpp:186
queue_issue_MRP()
Definition: mocks.hpp:201
typename champsim::channel::request_type request_type
Definition: mocks.hpp:185
queue_issue_MRP(func_type finder)
Definition: mocks.hpp:202
func_type top_finder
Definition: mocks.hpp:199
std::function< bool(request_type, response_type)> func_type
Definition: mocks.hpp:198
std::deque< response_type > returned
Definition: mocks.hpp:188
long operate() override
Definition: mocks.hpp:204
Definition: mocks.hpp:249
bool issue(const queue_issue_MRP::request_type &pkt)
Definition: mocks.hpp:252
Definition: mocks.hpp:236
bool issue(const queue_issue_MRP::request_type &pkt)
Definition: mocks.hpp:239
Definition: mocks.hpp:223
bool issue(const queue_issue_MRP::request_type &pkt)
Definition: mocks.hpp:226