caches private to clusters")
return
-def create_system(options, system, piobus, dma_ports, ruby_system):
+def create_system(options, system, dma_ports, ruby_system):
if buildEnv['PROTOCOL'] != 'MESI_Three_Level':
fatal("This script requires the MESI_Three_Level protocol to be built.")
cache = l1_cache, l2_select_num_bits = l2_bits,
cluster_id = i, ruby_system = ruby_system)
- if piobus != None:
- cpu_seq.pio_master_port = piobus.slave
- cpu_seq.mem_master_port = piobus.slave
- cpu_seq.pio_slave_port = piobus.master
-
exec("ruby_system.l0_cntrl%d = l0_cntrl" % (
i*num_cpus_per_cluster+j))
exec("ruby_system.l1_cntrl%d = l1_cntrl" % (
def define_options(parser):
return
-def create_system(options, system, piobus, dma_ports, ruby_system):
+def create_system(options, system, dma_ports, ruby_system):
if buildEnv['PROTOCOL'] != 'MESI_Two_Level':
fatal("This script requires the MESI_Two_Level protocol to be built.")
ruby_system = ruby_system)
l1_cntrl.sequencer = cpu_seq
-
- if piobus != None:
- cpu_seq.pio_master_port = piobus.slave
- cpu_seq.mem_master_port = piobus.slave
- cpu_seq.pio_slave_port = piobus.master
-
exec("ruby_system.l1_cntrl%d = l1_cntrl" % i)
#
def define_options(parser):
return
-def create_system(options, system, piobus, dma_ports, ruby_system):
+def create_system(options, system, dma_ports, ruby_system):
if buildEnv['PROTOCOL'] != 'MI_example':
panic("This script requires the MI_example protocol to be built.")
ruby_system = ruby_system)
l1_cntrl.sequencer = cpu_seq
-
- if piobus != None:
- cpu_seq.pio_master_port = piobus.slave
- cpu_seq.mem_master_port = piobus.slave
- cpu_seq.pio_slave_port = piobus.master
-
exec("ruby_system.l1_cntrl%d = l1_cntrl" % i)
+
#
# Add controllers and sequencers to the appropriate lists
#
def define_options(parser):
return
-def create_system(options, system, piobus, dma_ports, ruby_system):
+def create_system(options, system, dma_ports, ruby_system):
if buildEnv['PROTOCOL'] != 'MOESI_CMP_directory':
panic("This script requires the MOESI_CMP_directory protocol to be built.")
ruby_system = ruby_system)
l1_cntrl.sequencer = cpu_seq
-
- if piobus != None:
- cpu_seq.pio_master_port = piobus.slave
- cpu_seq.mem_master_port = piobus.slave
- cpu_seq.pio_slave_port = piobus.master
-
exec("ruby_system.l1_cntrl%d = l1_cntrl" % i)
+
#
# Add controllers and sequencers to the appropriate lists
#
parser.add_option("--allow-atomic-migration", action="store_true",
help="allow migratory sharing for atomic only accessed blocks")
-def create_system(options, system, piobus, dma_ports, ruby_system):
+def create_system(options, system, dma_ports, ruby_system):
if buildEnv['PROTOCOL'] != 'MOESI_CMP_token':
panic("This script requires the MOESI_CMP_token protocol to be built.")
ruby_system = ruby_system)
l1_cntrl.sequencer = cpu_seq
-
- if piobus != None:
- cpu_seq.pio_master_port = piobus.slave
- cpu_seq.mem_master_port = piobus.slave
- cpu_seq.pio_slave_port = piobus.master
-
exec("ruby_system.l1_cntrl%d = l1_cntrl" % i)
+
#
# Add controllers and sequencers to the appropriate lists
#
parser.add_option("--dir-on", action="store_true",
help="Hammer: enable Full-bit Directory")
-def create_system(options, system, piobus, dma_ports, ruby_system):
+def create_system(options, system, dma_ports, ruby_system):
if buildEnv['PROTOCOL'] != 'MOESI_hammer':
panic("This script requires the MOESI_hammer protocol to be built.")
ruby_system = ruby_system)
l1_cntrl.sequencer = cpu_seq
-
- if piobus != None:
- cpu_seq.pio_master_port = piobus.slave
- cpu_seq.mem_master_port = piobus.slave
- cpu_seq.pio_slave_port = piobus.master
-
if options.recycle_latency:
l1_cntrl.recycle_latency = options.recycle_latency
def define_options(parser):
return
-def create_system(options, system, piobus, dma_ports, ruby_system):
+def create_system(options, system, dma_ports, ruby_system):
if buildEnv['PROTOCOL'] != 'Network_test':
panic("This script requires the Network_test protocol to be built.")
#
# The Garnet tester protocol does not support fs nor dma
#
- assert(piobus == None)
assert(dma_ports == [])
#
exec "import %s" % protocol
try:
(cpu_sequencers, dir_cntrls, topology) = \
- eval("%s.create_system(options, system, piobus, dma_ports, ruby)"
+ eval("%s.create_system(options, system, dma_ports, ruby)"
% protocol)
except:
print "Error: could not create sytem for ruby protocol %s" % protocol
ruby.network = network
ruby.mem_size = total_mem_size
+
+ # Connect the cpu sequencers and the piobus
+ if piobus != None:
+ for cpu_seq in cpu_sequencers:
+ cpu_seq.pio_master_port = piobus.slave
+ cpu_seq.mem_master_port = piobus.slave
+
+ if buildEnv['TARGET_ISA'] == "x86":
+ cpu_seq.pio_slave_port = piobus.master
+
ruby._cpu_ruby_ports = cpu_sequencers
ruby.num_of_sequencers = len(cpu_sequencers)
ruby.random_seed = options.random_seed