Gabe Black has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/36978 )
Change subject: mem: Expose the underlyig DRAM or NVM's memory back door.
......................................................................
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 <[email protected]>
Reviewed-by: Jason Lowe-Power <[email protected]>
Reviewed-by: Daniel Carvalho <[email protected]>
Reviewed-by: Nikos Nikoleris <[email protected]>
Tested-by: kokoro <[email protected]>
---
M src/mem/mem_ctrl.cc
M src/mem/mem_ctrl.hh
2 files changed, 26 insertions(+), 4 deletions(-)
Approvals:
Jason Lowe-Power: Looks good to me, approved
Nikos Nikoleris: Looks good to me, approved
Daniel Carvalho: Looks good to me, approved
Gabe Black: Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/mem/mem_ctrl.cc b/src/mem/mem_ctrl.cc
index 1e60ced..cc27684 100644
--- a/src/mem/mem_ctrl.cc
+++ b/src/mem/mem_ctrl.cc
@@ -154,6 +154,18 @@
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 @@
return ctrl.recvAtomic(pkt);
}
+Tick
+MemCtrl::MemoryPort::recvAtomicBackdoor(
+ PacketPtr pkt, MemBackdoorPtr &backdoor)
+{
+ return ctrl.recvAtomicBackdoor(pkt, backdoor);
+}
+
bool
MemCtrl::MemoryPort::recvTimingReq(PacketPtr pkt)
{
diff --git a/src/mem/mem_ctrl.hh b/src/mem/mem_ctrl.hh
index e6ae0ab..dd13e3c 100644
--- a/src/mem/mem_ctrl.hh
+++ b/src/mem/mem_ctrl.hh
@@ -251,13 +251,15 @@
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 @@
protected:
Tick recvAtomic(PacketPtr pkt);
+ Tick recvAtomicBackdoor(PacketPtr pkt, MemBackdoorPtr &backdoor);
void recvFunctional(PacketPtr pkt);
bool recvTimingReq(PacketPtr pkt);
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/36978
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I10a7d22edb62afc3b77a2d462f297572c04f020d
Gerrit-Change-Number: 36978
Gerrit-PatchSet: 5
Gerrit-Owner: Gabe Black <[email protected]>
Gerrit-Reviewer: Daniel Carvalho <[email protected]>
Gerrit-Reviewer: Gabe Black <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: Nikos Nikoleris <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s