Skip to content

Commit

Permalink
learning_gem5: Replace master/slave terminology from learning_gem5 sc…
Browse files Browse the repository at this point in the history
…ripts

Signed-off-by: Giacomo Travaglini <[email protected]>
Change-Id: I6c30d18155acb151d732ae7e35e29f6facad78fd
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52864
Tested-by: kokoro <[email protected]>
Reviewed-by: Jason Lowe-Power <[email protected]>
Maintainer: Jason Lowe-Power <[email protected]>
  • Loading branch information
giactra committed Nov 22, 2021
1 parent 34826f1 commit f1fc49e
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 27 deletions.
27 changes: 14 additions & 13 deletions configs/learning_gem5/part3/msi_caches.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ def setup(self, system, cpus, mem_ctrls):
# Set up a proxy port for the system_port. Used for load binaries and
# other functional-only things.
self.sys_port_proxy = RubyPortProxy()
system.system_port = self.sys_port_proxy.slave
system.system_port = self.sys_port_proxy.in_ports

# Connect the cpu's cache, interrupt, and TLB ports to Ruby
for i,cpu in enumerate(cpus):
Expand Down Expand Up @@ -155,18 +155,19 @@ def connectQueues(self, ruby_system):
# explicitly connected to anything.
self.mandatoryQueue = MessageBuffer()

# All message buffers must be created and connected to the general
# Ruby network. In this case, "slave/master" don't mean the same thing
# as normal gem5 ports. If a MessageBuffer is a "to" buffer (i.e., out)
# then you use the "master", otherwise, the slave.
# All message buffers must be created and connected to the
# general Ruby network. In this case, "in_port/out_port" don't
# mean the same thing as normal gem5 ports. If a MessageBuffer
# is a "to" buffer (i.e., out) then you use the "out_port",
# otherwise, the in_port.
self.requestToDir = MessageBuffer(ordered = True)
self.requestToDir.master = ruby_system.network.slave
self.requestToDir.out_port = ruby_system.network.in_port
self.responseToDirOrSibling = MessageBuffer(ordered = True)
self.responseToDirOrSibling.master = ruby_system.network.slave
self.responseToDirOrSibling.out_port = ruby_system.network.in_port
self.forwardFromDir = MessageBuffer(ordered = True)
self.forwardFromDir.slave = ruby_system.network.master
self.forwardFromDir.in_port = ruby_system.network.out_port
self.responseFromDirOrSibling = MessageBuffer(ordered = True)
self.responseFromDirOrSibling.slave = ruby_system.network.master
self.responseFromDirOrSibling.in_port = ruby_system.network.out_port

class DirController(Directory_Controller):

Expand All @@ -192,14 +193,14 @@ def __init__(self, ruby_system, ranges, mem_ctrls):

def connectQueues(self, ruby_system):
self.requestFromCache = MessageBuffer(ordered = True)
self.requestFromCache.slave = ruby_system.network.master
self.requestFromCache.in_port = ruby_system.network.out_port
self.responseFromCache = MessageBuffer(ordered = True)
self.responseFromCache.slave = ruby_system.network.master
self.responseFromCache.in_port = ruby_system.network.out_port

self.responseToCache = MessageBuffer(ordered = True)
self.responseToCache.master = ruby_system.network.slave
self.responseToCache.out_port = ruby_system.network.in_port
self.forwardToCache = MessageBuffer(ordered = True)
self.forwardToCache.master = ruby_system.network.slave
self.forwardToCache.out_port = ruby_system.network.in_port

# These are other special message buffers. They are used to send
# requests to memory and responses from memory back to the controller.
Expand Down
20 changes: 10 additions & 10 deletions configs/learning_gem5/part3/ruby_caches_MI_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def setup(self, system, cpus, mem_ctrls):
# Set up a proxy port for the system_port. Used for load binaries and
# other functional-only things.
self.sys_port_proxy = RubyPortProxy()
system.system_port = self.sys_port_proxy.slave
system.system_port = self.sys_port_proxy.in_ports

# Connect the cpu's cache, interrupt, and TLB ports to Ruby
for i,cpu in enumerate(cpus):
Expand Down Expand Up @@ -149,13 +149,13 @@ def connectQueues(self, ruby_system):
"""
self.mandatoryQueue = MessageBuffer()
self.requestFromCache = MessageBuffer(ordered = True)
self.requestFromCache.master = ruby_system.network.slave
self.requestFromCache.out_port = ruby_system.network.in_port
self.responseFromCache = MessageBuffer(ordered = True)
self.responseFromCache.master = ruby_system.network.slave
self.responseFromCache.out_port = ruby_system.network.in_port
self.forwardToCache = MessageBuffer(ordered = True)
self.forwardToCache.slave = ruby_system.network.master
self.forwardToCache.in_port = ruby_system.network.out_port
self.responseToCache = MessageBuffer(ordered = True)
self.responseToCache.slave = ruby_system.network.master
self.responseToCache.in_port = ruby_system.network.out_port

class DirController(Directory_Controller):

Expand All @@ -181,16 +181,16 @@ def __init__(self, ruby_system, ranges, mem_ctrls):

def connectQueues(self, ruby_system):
self.requestToDir = MessageBuffer(ordered = True)
self.requestToDir.slave = ruby_system.network.master
self.requestToDir.in_port = ruby_system.network.out_port
self.dmaRequestToDir = MessageBuffer(ordered = True)
self.dmaRequestToDir.slave = ruby_system.network.master
self.dmaRequestToDir.in_port = ruby_system.network.out_port

self.responseFromDir = MessageBuffer()
self.responseFromDir.master = ruby_system.network.slave
self.responseFromDir.out_port = ruby_system.network.in_port
self.dmaResponseFromDir = MessageBuffer(ordered = True)
self.dmaResponseFromDir.master = ruby_system.network.slave
self.dmaResponseFromDir.out_port = ruby_system.network.in_port
self.forwardFromDir = MessageBuffer()
self.forwardFromDir.master = ruby_system.network.slave
self.forwardFromDir.out_port = ruby_system.network.in_port
self.requestToMemory = MessageBuffer()
self.responseFromMemory = MessageBuffer()

Expand Down
8 changes: 4 additions & 4 deletions configs/learning_gem5/part3/test_caches.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,16 +90,16 @@ def setup(self, system, tester, mem_ctrls):
# Set up a proxy port for the system_port. Used for load binaries and
# other functional-only things.
self.sys_port_proxy = RubyPortProxy()
system.system_port = self.sys_port_proxy.slave
system.system_port = self.sys_port_proxy.in_ports

# Connect up the sequencers to the random tester
for seq in self.sequencers:
if seq.support_data_reqs and seq.support_inst_reqs:
tester.cpuInstDataPort = seq.slave
tester.cpuInstDataPort = seq.in_ports
elif seq.support_data_reqs:
tester.cpuDataPort = seq.slave
tester.cpuDataPort = seq.in_ports
elif seq.support_inst_reqs:
tester.cpuInstDataPort = seq.slave
tester.cpuInstDataPort = seq.in_ports

# Do not automatically retry stalled Ruby requests
seq.no_retry_on_stall = True
Expand Down

0 comments on commit f1fc49e

Please sign in to comment.