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>
diff --git a/configs/ruby/GPU_VIPER.py b/configs/ruby/GPU_VIPER.py
index aa3fc2c..7e6510f 100644
--- a/configs/ruby/GPU_VIPER.py
+++ b/configs/ruby/GPU_VIPER.py
@@ -144,6 +144,8 @@
         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 @@
                         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',