configs: MemConfig, add QoSMemSinkCtrl support

QoSMemSinkInterface is a special case of memory interface type, similar
to SimpleMemory. It requires a QoSMemSinkCtrl where most model parameters
are exposed. By adding support in "config_mem", we allow configurations
with multiple QoSMemSinkCtrls to be centrally configured, particularly
interleaving parameters.

Change-Id: I46462b55d587acd2c861963bc0279bce92d5f450
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35797
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Adrian Herrera
2020-10-02 08:48:23 +01:00
parent 12602e4dca
commit 32b3be789d

View File

@@ -229,11 +229,15 @@ def config_mem(options, system):
static_frontend_latency = '4ns')
elif opt_mem_type == "SimpleMemory":
mem_ctrl = m5.objects.SimpleMemory()
elif opt_mem_type == "QoSMemSinkInterface":
mem_ctrl = m5.objects.QoSMemSinkCtrl()
else:
mem_ctrl = m5.objects.MemCtrl()
# Hookup the controller to the interface and add to the list
if opt_mem_type != "SimpleMemory":
if opt_mem_type == "QoSMemSinkInterface":
mem_ctrl.interface = dram_intf
elif opt_mem_type != "SimpleMemory":
mem_ctrl.dram = dram_intf
mem_ctrls.append(mem_ctrl)