diff --git a/configs/ruby/CHI_config.py b/configs/ruby/CHI_config.py index a95efec16f..25d4f0575e 100644 --- a/configs/ruby/CHI_config.py +++ b/configs/ruby/CHI_config.py @@ -183,6 +183,16 @@ class OrderedTriggerMessageBuffer(TriggerMessageBuffer): 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 @@ class CHI_SNF_Base(CHI_Node): 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 4d0589499d..bee5e8887f 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 m5.objects import ( 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 @@ class MemoryController(Memory_Controller): 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()