mem: different HMC configuration

In this new hmc configuration we have used the existing components in gem5
mainly [SerialLink] [NoncoherentXbar]& [DRAMCtrl] to define 3 different
architecture for HMC.

Highlights

1- It explores 3 different HMC architectures

2- It creates 4-HMC crossbars and attaches 16 vault controllers with it.
This  will connect vaults to serial links

3- From the previous version, HMCController with round robin funtionality
is being removed and all the serial links are being accessible directly
from user ports

4- Latency incorporated by HMCController (in previous version) is being
added to SerialLink

Committed by Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
Abdul Mutaal Ahmad
2016-07-01 09:45:21 -05:00
parent 1051223318
commit 7cb0c7bd65
5 changed files with 310 additions and 108 deletions

View File

@@ -153,9 +153,10 @@ def config_mem(options, system):
"""
if ( options.mem_type == "HMC_2500_x32"):
HMC.config_hmc(options, system)
subsystem = system.hmc
xbar = system.hmc.xbar
HMChost = HMC.config_host_hmc(options, system)
HMC.config_hmc(options, system, HMChost.hmc_host)
subsystem = system.hmc_dev
xbar = system.hmc_dev.xbar
else:
subsystem = system
xbar = system.membus
@@ -222,4 +223,7 @@ def config_mem(options, system):
# Connect the controllers to the membus
for i in xrange(len(subsystem.mem_ctrls)):
subsystem.mem_ctrls[i].port = xbar.master
if (options.mem_type == "HMC_2500_x32"):
subsystem.mem_ctrls[i].port = xbar[i/4].master
else:
subsystem.mem_ctrls[i].port = xbar.master