DRAM Memory doesn't crash the simulator now.. still untested.
--HG-- extra : convert_revision : fa2d2c5ec4073383f1b2b2f466d0245f2d6a6c35
This commit is contained in:
parent
76ab1c466c
commit
c7bb14ac79
2 changed files with 7 additions and 5 deletions
|
@ -110,7 +110,7 @@ PhysicalMemory::calculateLatency(Packet *pkt)
|
||||||
return lat;
|
return lat;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tick
|
void
|
||||||
PhysicalMemory::doFunctionalAccess(Packet *pkt)
|
PhysicalMemory::doFunctionalAccess(Packet *pkt)
|
||||||
{
|
{
|
||||||
assert(pkt->getAddr() + pkt->getSize() < params()->addrRange.size());
|
assert(pkt->getAddr() + pkt->getSize() < params()->addrRange.size());
|
||||||
|
@ -136,7 +136,6 @@ PhysicalMemory::doFunctionalAccess(Packet *pkt)
|
||||||
}
|
}
|
||||||
|
|
||||||
pkt->result = Packet::Success;
|
pkt->result = Packet::Success;
|
||||||
return calculateLatency(pkt);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Port *
|
Port *
|
||||||
|
@ -197,7 +196,9 @@ PhysicalMemory::MemoryPort::recvTiming(Packet *pkt)
|
||||||
{
|
{
|
||||||
assert(pkt->result != Packet::Nacked);
|
assert(pkt->result != Packet::Nacked);
|
||||||
|
|
||||||
Tick latency = memory->doFunctionalAccess(pkt);
|
Tick latency = memory->calculateLatency(pkt);
|
||||||
|
|
||||||
|
memory->doFunctionalAccess(pkt);
|
||||||
|
|
||||||
pkt->makeTimingResponse();
|
pkt->makeTimingResponse();
|
||||||
sendTiming(pkt, latency);
|
sendTiming(pkt, latency);
|
||||||
|
@ -208,7 +209,8 @@ PhysicalMemory::MemoryPort::recvTiming(Packet *pkt)
|
||||||
Tick
|
Tick
|
||||||
PhysicalMemory::MemoryPort::recvAtomic(Packet *pkt)
|
PhysicalMemory::MemoryPort::recvAtomic(Packet *pkt)
|
||||||
{
|
{
|
||||||
return memory->doFunctionalAccess(pkt);
|
memory->doFunctionalAccess(pkt);
|
||||||
|
return memory->calculateLatency(pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -112,7 +112,7 @@ class PhysicalMemory : public MemObject
|
||||||
unsigned int drain(Event *de);
|
unsigned int drain(Event *de);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Tick doFunctionalAccess(Packet *pkt);
|
void doFunctionalAccess(Packet *pkt);
|
||||||
virtual Tick calculateLatency(Packet *pkt);
|
virtual Tick calculateLatency(Packet *pkt);
|
||||||
void recvStatusChange(Port::Status status);
|
void recvStatusChange(Port::Status status);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue