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

Change subject: configs: set requestToMemory buffer size for CHI
......................................................................

configs: set requestToMemory buffer size for CHI

Currently TBEs for write requests are deallocated when the request is
pushed to memory, so an unlimited requestToMemory buffers size allows
for an unlimited number of outstanding write requests.

Set the requestToMemory buffers size prevents this.
The buffer size should be greater than the enqueue latency to allow at
least one enqueue per cycle.

JIRA: https://gem5.atlassian.net/browse/GEM5-1195

Change-Id: I31829b6bbabd8b45e1142790038c27bd459fa709
Signed-off-by: Tiago Mück <tiago.m...@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/63674
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, 38 insertions(+), 0 deletions(-)

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




diff --git a/configs/ruby/CHI_config.py b/configs/ruby/CHI_config.py
index 25d4f05..6d2084b 100644
--- a/configs/ruby/CHI_config.py
+++ b/configs/ruby/CHI_config.py
@@ -683,6 +683,13 @@
             transitions_per_cycle=1024,
         )

+        # The Memory_Controller implementation deallocates the TBE for
+        # write requests when they are queue up to memory. The size of this
+        # buffer must be limited to prevent unlimited outstanding writes.
+        self._cntrl.requestToMemory.buffer_size = (
+            int(self._cntrl.to_memory_controller_latency) + 1
+        )
+
         self.connectController(self._cntrl)

         if parent:
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 bee5e88..e7cbafe 100644
--- a/src/python/gem5/components/cachehierarchies/chi/nodes/memory_controller.py +++ b/src/python/gem5/components/cachehierarchies/chi/nodes/memory_controller.py
@@ -76,6 +76,13 @@
         self.requestToMemory = MemCtrlMessageBuffer()
         self.reqRdy = TriggerMessageBuffer()

+        # The Memory_Controller implementation deallocates the TBE for
+        # write requests when they are queue up to memory. The size of this
+        # buffer must be limited to prevent unlimited outstanding writes.
+        self.requestToMemory.buffer_size = (
+            int(self.to_memory_controller_latency) + 1
+        )
+
         self.reqOut = MessageBuffer()
         self.rspOut = MessageBuffer()
         self.snpOut = MessageBuffer()

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/63674?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: I31829b6bbabd8b45e1142790038c27bd459fa709
Gerrit-Change-Number: 63674
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