hmc_controller.cc (11184:07b0dacf27d6) hmc_controller.cc (11284:b3926db25371)
1#include "base/random.hh"
2#include "debug/HMCController.hh"
3#include "mem/hmc_controller.hh"
4
5HMCController::HMCController(const HMCControllerParams* p) :
6 NoncoherentXBar(p),
7 n_master_ports(p->port_master_connection_count),
8 rr_counter(0)

--- 67 unchanged lines hidden (view full) ---

76 calcPacketTiming(pkt, xbar_delay);
77
78 // determine how long to be layer is busy
79 Tick packetFinishTime = clockEdge(Cycles(1)) + pkt->payloadDelay;
80
81 // before forwarding the packet (and possibly altering it),
82 // remember if we are expecting a response
83 const bool expect_response = pkt->needsResponse() &&
1#include "base/random.hh"
2#include "debug/HMCController.hh"
3#include "mem/hmc_controller.hh"
4
5HMCController::HMCController(const HMCControllerParams* p) :
6 NoncoherentXBar(p),
7 n_master_ports(p->port_master_connection_count),
8 rr_counter(0)

--- 67 unchanged lines hidden (view full) ---

76 calcPacketTiming(pkt, xbar_delay);
77
78 // determine how long to be layer is busy
79 Tick packetFinishTime = clockEdge(Cycles(1)) + pkt->payloadDelay;
80
81 // before forwarding the packet (and possibly altering it),
82 // remember if we are expecting a response
83 const bool expect_response = pkt->needsResponse() &&
84 !pkt->memInhibitAsserted();
84 !pkt->cacheResponding();
85
86 // since it is a normal request, attempt to send the packet
87 bool success = masterPorts[master_port_id]->sendTimingReq(pkt);
88
89 if (!success) {
85
86 // since it is a normal request, attempt to send the packet
87 bool success = masterPorts[master_port_id]->sendTimingReq(pkt);
88
89 if (!success) {
90 // inhibited packets should never be forced to retry
91 assert(!pkt->memInhibitAsserted());
92
93 DPRINTF(HMCController, "recvTimingReq: src %s %s 0x%x RETRY\n",
94 src_port->name(), pkt->cmdString(), pkt->getAddr());
95
96 // restore the header delay as it is additive
97 pkt->headerDelay = old_header_delay;
98
99 // occupy until the header is sent
100 reqLayers[master_port_id]->failedTiming(src_port,

--- 20 unchanged lines hidden ---
90 DPRINTF(HMCController, "recvTimingReq: src %s %s 0x%x RETRY\n",
91 src_port->name(), pkt->cmdString(), pkt->getAddr());
92
93 // restore the header delay as it is additive
94 pkt->headerDelay = old_header_delay;
95
96 // occupy until the header is sent
97 reqLayers[master_port_id]->failedTiming(src_port,

--- 20 unchanged lines hidden ---