mem-ruby, gpu-compute: Add mandatory_queue_latency input option

The mandatory_queue_latency determines one part of how many
cycles a L1 hit takes in the GPU VIPER protocol.  Thus, this
commit adds it as an input option so that users can set it
accordingly to model GPU L1 hit latency as appropriate.

Change-Id: Ic544716d3397546a5636fa94278b1d7e68addebc
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/61310
Reviewed-by: Alexandru Duțu <alexandru.dutu@amd.com>
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
Reviewed-by: Matthew Poremba <matthew.poremba@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Matt Sinclair
2022-07-14 01:35:42 -05:00
committed by Matt Sinclair
parent ba2deb39e3
commit 62efcae89e

View File

@@ -144,6 +144,8 @@ class TCPCntrl(TCP_Controller, CntrlBase):
self.L1cache.resourceStalls = options.no_resource_stalls
self.L1cache.create(options)
self.issue_latency = 1
# TCP_Controller inherits this from RubyController
self.mandatory_queue_latency = options.mandatory_queue_latency
self.coalescer = VIPERCoalescer()
self.coalescer.version = self.seqCount()
@@ -376,6 +378,8 @@ def define_options(parser):
help="In combination with the number of banks for the "
"TCP, this determines how many requests can happen "
"per cycle (i.e., the bandwidth)")
parser.add_argument("--mandatory_queue_latency", type=int, default=1,
help="Hit latency for TCP")
parser.add_argument("--TCC_latency", type=int, default=16,
help="TCC latency")
parser.add_argument("--tcc-size", type=str, default='256kB',