return lat;
}
-Tick
+void
PhysicalMemory::doFunctionalAccess(Packet *pkt)
{
assert(pkt->getAddr() + pkt->getSize() < params()->addrRange.size());
}
pkt->result = Packet::Success;
- return calculateLatency(pkt);
}
Port *
{
assert(pkt->result != Packet::Nacked);
- Tick latency = memory->doFunctionalAccess(pkt);
+ Tick latency = memory->calculateLatency(pkt);
+
+ memory->doFunctionalAccess(pkt);
pkt->makeTimingResponse();
sendTiming(pkt, latency);
Tick
PhysicalMemory::MemoryPort::recvAtomic(Packet *pkt)
{
- return memory->doFunctionalAccess(pkt);
+ memory->doFunctionalAccess(pkt);
+ return memory->calculateLatency(pkt);
}
void
unsigned int drain(Event *de);
protected:
- Tick doFunctionalAccess(Packet *pkt);
+ void doFunctionalAccess(Packet *pkt);
virtual Tick calculateLatency(Packet *pkt);
void recvStatusChange(Port::Status status);