mem: Expose the underlyig DRAM or NVM's memory back door.
Use the AbstractMem's new getBackdoor call to implement the recvAtomicBackdoor call in the memory controller's port. Change-Id: I10a7d22edb62afc3b77a2d462f297572c04f020d Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/36978 Maintainer: Gabe Black <gabe.black@gmail.com> Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -154,6 +154,18 @@ MemCtrl::recvAtomic(PacketPtr pkt)
|
||||
return latency;
|
||||
}
|
||||
|
||||
Tick
|
||||
MemCtrl::recvAtomicBackdoor(PacketPtr pkt, MemBackdoorPtr &backdoor)
|
||||
{
|
||||
Tick latency = recvAtomic(pkt);
|
||||
if (dram) {
|
||||
dram->getBackdoor(backdoor);
|
||||
} else if (nvm) {
|
||||
nvm->getBackdoor(backdoor);
|
||||
}
|
||||
return latency;
|
||||
}
|
||||
|
||||
bool
|
||||
MemCtrl::readQueueFull(unsigned int neededEntries) const
|
||||
{
|
||||
@@ -1461,6 +1473,13 @@ MemCtrl::MemoryPort::recvAtomic(PacketPtr pkt)
|
||||
return ctrl.recvAtomic(pkt);
|
||||
}
|
||||
|
||||
Tick
|
||||
MemCtrl::MemoryPort::recvAtomicBackdoor(
|
||||
PacketPtr pkt, MemBackdoorPtr &backdoor)
|
||||
{
|
||||
return ctrl.recvAtomicBackdoor(pkt, backdoor);
|
||||
}
|
||||
|
||||
bool
|
||||
MemCtrl::MemoryPort::recvTimingReq(PacketPtr pkt)
|
||||
{
|
||||
|
||||
@@ -251,13 +251,15 @@ class MemCtrl : public QoS::MemCtrl
|
||||
|
||||
protected:
|
||||
|
||||
Tick recvAtomic(PacketPtr pkt);
|
||||
Tick recvAtomic(PacketPtr pkt) override;
|
||||
Tick recvAtomicBackdoor(
|
||||
PacketPtr pkt, MemBackdoorPtr &backdoor) override;
|
||||
|
||||
void recvFunctional(PacketPtr pkt);
|
||||
void recvFunctional(PacketPtr pkt) override;
|
||||
|
||||
bool recvTimingReq(PacketPtr);
|
||||
bool recvTimingReq(PacketPtr) override;
|
||||
|
||||
virtual AddrRangeList getAddrRanges() const;
|
||||
AddrRangeList getAddrRanges() const override;
|
||||
|
||||
};
|
||||
|
||||
@@ -701,6 +703,7 @@ class MemCtrl : public QoS::MemCtrl
|
||||
protected:
|
||||
|
||||
Tick recvAtomic(PacketPtr pkt);
|
||||
Tick recvAtomicBackdoor(PacketPtr pkt, MemBackdoorPtr &backdoor);
|
||||
void recvFunctional(PacketPtr pkt);
|
||||
bool recvTimingReq(PacketPtr pkt);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user