mem-ruby,mem-garnet: Multiple networks per RubySystem
authorMatthew Poremba <matthew.poremba@amd.com>
Fri, 17 Apr 2020 14:41:06 +0000 (09:41 -0500)
committerBradford Beckmann <brad.beckmann@amd.com>
Wed, 27 May 2020 17:06:31 +0000 (17:06 +0000)
commit14e349c729d8d0aae4950c1239f5a41304ad3706
treee720d2ffe0b1872a9b343b0b9d87141737b7d8cb
parent49ae60abe4052e4ca5556db73ba57caf73eb27a3
mem-ruby,mem-garnet: Multiple networks per RubySystem

Add support for multiple networks per RubySystem. This is done by
introducing local IDs to each network and translating from a global ID
passed around through Ruby and SLICC code. The local IDs represents the
NodeID of a MachineType in the network and are ordered the same way
that NodeIDs are ordered using MachineType_base_number. If there are
not multiple networks in a RubySystem the local and global IDs are the
same value.

This is useful in cases where multiple isolated networks are needed to
support devices with Ruby caches which do not interact with other
networks. For example, a dGPU device will have a cache hierarchy that
will not interact with the CPU cache hierachy.

Change-Id: I33a917b3a394eec84b16fbf001c3c2c44c047f66
JIRA: https://gem5.atlassian.net/browse/GEM5-445
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27927
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Bradford Beckmann <brad.beckmann@amd.com>
Maintainer: Bradford Beckmann <brad.beckmann@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/mem/ruby/network/Network.cc
src/mem/ruby/network/Network.hh
src/mem/ruby/network/garnet2.0/GarnetNetwork.cc
src/mem/ruby/network/simple/SimpleNetwork.cc
src/mem/ruby/system/RubySystem.cc
src/mem/ruby/system/RubySystem.hh