ruby: memtest-ruby updated to the new config system

This commit is contained in:
Brad Beckmann 2010-01-29 20:29:33 -08:00
parent 8dd45674ae
commit 26cce73e97
2 changed files with 58 additions and 10 deletions

View file

@ -68,6 +68,17 @@ parser.add_option("--progress", type="int", default=1000,
help="Progress message interval "
"[default: %default]")
#
# Set the default cache size and associativity to be very small to encourage
# races between requests and writebacks.
#
parser.add_option("--l1d_size", type="string", default="256B")
parser.add_option("--l1i_size", type="string", default="256B")
parser.add_option("--l2_size", type="string", default="512B")
parser.add_option("--l1d_assoc", type="int", default=2)
parser.add_option("--l1i_assoc", type="int", default=2)
parser.add_option("--l2_assoc", type="int", default=2)
execfile(os.path.join(config_root, "common", "Options.py"))
(options, args) = parser.parse_args()

View file

@ -28,25 +28,62 @@
import m5
from m5.objects import *
from m5.defines import buildEnv
from m5.util import addToPath
import os, optparse, sys
if buildEnv['FULL_SYSTEM']:
panic("This script requires system-emulation mode (*_SE).")
# Get paths we might need
config_path = os.path.dirname(os.path.abspath(__file__))
config_root = os.path.dirname(config_path)
m5_root = os.path.dirname(config_root)
addToPath(config_root+'/configs/common')
addToPath(config_root+'/configs/ruby')
import Ruby
parser = optparse.OptionParser()
#
# Set the default cache size and associativity to be very small to encourage
# races between requests and writebacks.
#
parser.add_option("--l1d_size", type="string", default="256B")
parser.add_option("--l1i_size", type="string", default="256B")
parser.add_option("--l2_size", type="string", default="512B")
parser.add_option("--l1d_assoc", type="int", default=2)
parser.add_option("--l1i_assoc", type="int", default=2)
parser.add_option("--l2_assoc", type="int", default=2)
execfile(os.path.join(config_root, "configs/common", "Options.py"))
(options, args) = parser.parse_args()
#MAX CORES IS 8 with the fals sharing method
nb_cores = 8
cpus = [ MemTest() for i in xrange(nb_cores) ]
import ruby_config
ruby_memory = ruby_config.generate("TwoLevel_SplitL1UnifiedL2.rb", nb_cores)
# overwrite options.num_cpus with the nb_cores value
options.num_cpus = nb_cores
# system simulated
system = System(cpu = cpus, funcmem = PhysicalMemory(),
physmem = ruby_memory,
membus = Bus(clock="500GHz", width=16))
system = System(cpu = cpus,
funcmem = PhysicalMemory(),
physmem = PhysicalMemory())
for cpu in cpus:
cpu.test = system.membus.port
cpu.functional = system.funcmem.port
system.ruby = Ruby.create_system(options, system.physmem)
system.physmem.port = system.membus.port
assert(len(cpus) == len(system.ruby.cpu_ruby_ports))
for (i, ruby_port) in enumerate(system.ruby.cpu_ruby_ports):
#
# Tie the cpu test and functional ports to the ruby cpu ports and
# physmem, respectively
#
cpus[i].test = ruby_port.port
cpus[i].functional = system.funcmem.port
# -----------------------
# run simulation