Tiago Muck has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/63673?usp=email )

Change subject: configs: fix CHI mem buffers
......................................................................

configs: fix CHI mem buffers

Disabling randomization for the memory request and response buffers.
CHI requires that memory responses for the same address arrive in
the same order the request was sent.

Change-Id: Ia4236188679beaf2969978675414a870ccd9f94a
Signed-off-by: Tiago Mück <tiago.m...@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/63673
Tested-by: kokoro <noreply+kok...@google.com>
Maintainer: Bobby Bruce <bbr...@ucdavis.edu>
Reviewed-by: Jason Lowe-Power <power...@gmail.com>
---
M configs/ruby/CHI_config.py
M src/python/gem5/components/cachehierarchies/chi/nodes/memory_controller.py
2 files changed, 42 insertions(+), 4 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved
  kokoro: Regressions pass
  Bobby Bruce: Looks good to me, approved




diff --git a/configs/ruby/CHI_config.py b/configs/ruby/CHI_config.py
index a95efec..25d4f05 100644
--- a/configs/ruby/CHI_config.py
+++ b/configs/ruby/CHI_config.py
@@ -183,6 +183,16 @@
     ordered = True


+class MemCtrlMessageBuffer(MessageBuffer):
+    """
+    MessageBuffer exchanging messages with the memory
+ These buffers should also not be affected by the Ruby tester randomization.
+    """
+
+    randomization = "disabled"
+    ordered = True
+
+
 class CHI_Cache_Controller(Cache_Controller):
     """
     Default parameters for a Cache controller
@@ -667,8 +677,8 @@
             version=Versions.getVersion(Memory_Controller),
             ruby_system=ruby_system,
             triggerQueue=TriggerMessageBuffer(),
-            responseFromMemory=MessageBuffer(),
-            requestToMemory=MessageBuffer(ordered=True),
+            responseFromMemory=MemCtrlMessageBuffer(),
+            requestToMemory=MemCtrlMessageBuffer(),
             reqRdy=TriggerMessageBuffer(),
             transitions_per_cycle=1024,
         )
diff --git a/src/python/gem5/components/cachehierarchies/chi/nodes/memory_controller.py b/src/python/gem5/components/cachehierarchies/chi/nodes/memory_controller.py
index 4d05894..bee5e88 100644
--- a/src/python/gem5/components/cachehierarchies/chi/nodes/memory_controller.py +++ b/src/python/gem5/components/cachehierarchies/chi/nodes/memory_controller.py
@@ -37,6 +37,16 @@
 from .abstract_node import TriggerMessageBuffer


+class MemCtrlMessageBuffer(MessageBuffer):
+    """
+    MessageBuffer exchanging messages with the memory
+ These buffers should also not be affected by the Ruby tester randomization.
+    """
+
+    randomization = "disabled"
+    ordered = True
+
+
 class MemoryController(Memory_Controller):
     """A controller that connects to memory"""

@@ -62,8 +72,8 @@

     def connectQueues(self, network):
         self.triggerQueue = TriggerMessageBuffer()
-        self.responseFromMemory = MessageBuffer()
-        self.requestToMemory = MessageBuffer(ordered=True)
+        self.responseFromMemory = MemCtrlMessageBuffer()
+        self.requestToMemory = MemCtrlMessageBuffer()
         self.reqRdy = TriggerMessageBuffer()

         self.reqOut = MessageBuffer()

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/63673?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: Ia4236188679beaf2969978675414a870ccd9f94a
Gerrit-Change-Number: 63673
Gerrit-PatchSet: 4
Gerrit-Owner: Tiago Muck <tiago.m...@arm.com>
Gerrit-Reviewer: Bobby Bruce <bbr...@ucdavis.edu>
Gerrit-Reviewer: Daecheol You <daecheol....@samsung.com>
Gerrit-Reviewer: Jason Lowe-Power <ja...@lowepower.com>
Gerrit-Reviewer: Jason Lowe-Power <power...@gmail.com>
Gerrit-Reviewer: Tiago Muck <tiago.m...@arm.com>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org

Reply via email to