dramsim2.cc (11192:4c28abcf8249) dramsim2.cc (11284:b3926db25371)
1/*
2 * Copyright (c) 2013 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

150}
151
152Tick
153DRAMSim2::recvAtomic(PacketPtr pkt)
154{
155 access(pkt);
156
157 // 50 ns is just an arbitrary value at this point
1/*
2 * Copyright (c) 2013 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

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

150}
151
152Tick
153DRAMSim2::recvAtomic(PacketPtr pkt)
154{
155 access(pkt);
156
157 // 50 ns is just an arbitrary value at this point
158 return pkt->memInhibitAsserted() ? 0 : 50000;
158 return pkt->cacheResponding() ? 0 : 50000;
159}
160
161void
162DRAMSim2::recvFunctional(PacketPtr pkt)
163{
164 pkt->pushLabel(name());
165
166 functionalAccess(pkt);
167
168 // potentially update the packets in our response queue as well
169 for (auto i = responseQueue.begin(); i != responseQueue.end(); ++i)
170 pkt->checkFunctional(*i);
171
172 pkt->popLabel();
173}
174
175bool
176DRAMSim2::recvTimingReq(PacketPtr pkt)
177{
159}
160
161void
162DRAMSim2::recvFunctional(PacketPtr pkt)
163{
164 pkt->pushLabel(name());
165
166 functionalAccess(pkt);
167
168 // potentially update the packets in our response queue as well
169 for (auto i = responseQueue.begin(); i != responseQueue.end(); ++i)
170 pkt->checkFunctional(*i);
171
172 pkt->popLabel();
173}
174
175bool
176DRAMSim2::recvTimingReq(PacketPtr pkt)
177{
178 // sink inhibited packets without further action
179 if (pkt->memInhibitAsserted()) {
178 // if a cache is responding, sink the packet without further action
179 if (pkt->cacheResponding()) {
180 pendingDelete.reset(pkt);
181 return true;
182 }
183
184 // we should not get a new request after committing to retry the
185 // current one, but unfortunately the CPU violates this rule, so
186 // simply ignore it for now
187 if (retryReq)

--- 210 unchanged lines hidden ---
180 pendingDelete.reset(pkt);
181 return true;
182 }
183
184 // we should not get a new request after committing to retry the
185 // current one, but unfortunately the CPU violates this rule, so
186 // simply ignore it for now
187 if (retryReq)

--- 210 unchanged lines hidden ---