Gabriel B. has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/67673?usp=email )
Change subject: mem-ruby: Define AbstractController::controllerCount static
func
......................................................................
mem-ruby: Define AbstractController::controllerCount static func
It does the same as getNumControllers() which is local to each machine
type. controllerCount is accessible from everywhere based on enum
value instead of static type.
Change-Id: I486d772b3e195827fc82b72e3d8e5c93a8a637c8
---
M src/mem/ruby/slicc_interface/AbstractController.cc
M src/mem/ruby/slicc_interface/AbstractController.hh
M src/mem/slicc/symbols/StateMachine.py
3 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/src/mem/ruby/slicc_interface/AbstractController.cc
b/src/mem/ruby/slicc_interface/AbstractController.cc
index f7b01cf..2affadd 100644
--- a/src/mem/ruby/slicc_interface/AbstractController.cc
+++ b/src/mem/ruby/slicc_interface/AbstractController.cc
@@ -53,6 +53,8 @@
namespace ruby
{
+std::map<MachineType, uint32_t> AbstractController::controllerCounts;
+
AbstractController::AbstractController(const Params &p)
: ClockedObject(p), Consumer(this), m_version(p.version),
m_clusterID(p.cluster_id),
@@ -470,6 +472,12 @@
}
}
+uint32_t
+AbstractController::controllerCount(MachineType mt) {
+ controllerCounts.try_emplace(mt, 0);
+ return controllerCounts[mt];
+}
+
bool
AbstractController::MemoryPort::recvTimingResp(PacketPtr pkt)
{
diff --git a/src/mem/ruby/slicc_interface/AbstractController.hh
b/src/mem/ruby/slicc_interface/AbstractController.hh
index f483412..7d21351 100644
--- a/src/mem/ruby/slicc_interface/AbstractController.hh
+++ b/src/mem/ruby/slicc_interface/AbstractController.hh
@@ -90,6 +90,8 @@
NodeID getVersion() const { return m_machineID.getNum(); }
MachineType getType() const { return m_machineID.getType(); }
+ static uint32_t controllerCount(MachineType);
+
void initNetworkPtr(Network* net_ptr) { m_net_ptr = net_ptr; }
// return instance name
@@ -377,6 +379,8 @@
bool m_waiting_mem_retry;
bool m_mem_ctrl_waiting_retry;
+ static std::map<MachineType, uint32_t> controllerCounts;
+
/**
* Port that forwards requests and receives responses from the
* memory controller.
diff --git a/src/mem/slicc/symbols/StateMachine.py
b/src/mem/slicc/symbols/StateMachine.py
index b5af9ca..c963ac2 100644
--- a/src/mem/slicc/symbols/StateMachine.py
+++ b/src/mem/slicc/symbols/StateMachine.py
@@ -678,8 +678,10 @@
for (int event = 0; event < ${ident}_Event_NUM; event++) {
m_event_counters[event] = 0;
}
-"""
- )
+
+controllerCounts.try_emplace(MachineType_${ident}, 0);
+++controllerCounts[MachineType_${ident}];
+""")
code.dedent()
code(
"""
--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/67673?usp=email
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: I486d772b3e195827fc82b72e3d8e5c93a8a637c8
Gerrit-Change-Number: 67673
Gerrit-PatchSet: 1
Gerrit-Owner: Gabriel B. <gabriel.bus...@arteris.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org