configs: Add configurable GPU L1,L2 num banks and L2 latencies

Previously, the L1, L2 number of banks and L2 latencies were not
configurable through command line arguments. This commit adds support to
configure them through the arguments '--tcp-num-banks' for number of
banks in L1, '--tcc-num-banks' for number of banks in L2, and
'--tcc-tag-access-latency', and '--tcc-data-access-latency'

Change-Id: Ie3b713ead16865fd7120e2d809ebfa56b69bc4a1
This commit is contained in:
Vishnu Ramadas
2023-10-03 11:36:11 -05:00
parent 7301d4bd19
commit 53627cc39c

View File

@@ -154,6 +154,8 @@ class TCPCntrl(TCP_Controller, CntrlBase):
dataAccessLatency=options.TCP_latency,
)
self.L1cache.resourceStalls = options.no_resource_stalls
self.L1cache.dataArrayBanks = options.tcp_num_banks
self.L1cache.tagArrayBanks = options.tcp_num_banks
self.L1cache.create(options)
self.issue_latency = 1
# TCP_Controller inherits this from RubyController
@@ -298,7 +300,10 @@ class TCC(RubyCache):
class TCCCntrl(TCC_Controller, CntrlBase):
def create(self, options, ruby_system, system):
self.version = self.versionCount()
self.L2cache = TCC()
self.L2cache = TCC(
tagAccessLatency=options.tcc_tag_access_latency,
dataAccessLatency=options.tcc_data_access_latency,
)
self.L2cache.create(options)
self.L2cache.resourceStalls = options.no_tcc_resource_stalls
@@ -492,6 +497,30 @@ def define_options(parser):
parser.add_argument(
"--glc-atomic-latency", type=int, default=1, help="GLC Atomic Latency"
)
parser.add_argument(
"--tcp-num-banks",
type=int,
default="16",
help="Num of banks in L1 cache",
)
parser.add_argument(
"--tcc-num-banks",
type=int,
default="16",
help="Num of banks in L2 cache",
)
parser.add_argument(
"--tcc-tag-access-latency",
type=int,
default="2",
help="Tag access latency in L2 cache",
)
parser.add_argument(
"--tcc-data-access-latency",
type=int,
default="8",
help="Data access latency in L2 cache",
)
def construct_dirs(options, system, ruby_system, network):