summaryrefslogtreecommitdiff
path: root/configs
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2010-01-29 20:29:17 -0800
committerSteve Reinhardt <steve.reinhardt@amd.com>2010-01-29 20:29:17 -0800
commit98c94cfe3ce83634f3bad79ca18263f42e36ca6a (patch)
treeb299448162932c5574b87238a3b02a01efd14db6 /configs
parentb43994ba45b7805da0d1d9600e5cbb8332057403 (diff)
downloadgem5-98c94cfe3ce83634f3bad79ca18263f42e36ca6a.tar.xz
ruby: Convert most Ruby objects to M5 SimObjects.
The necessary companion conversion of Ruby objects generated by SLICC are converted to M5 SimObjects in the following patch, so this patch alone does not compile. Conversion of Garnet network models is also handled in a separate patch; that code is temporarily disabled from compiling to allow testing of interim code.
Diffstat (limited to 'configs')
-rw-r--r--configs/example/memtest-ruby.py52
1 files changed, 37 insertions, 15 deletions
diff --git a/configs/example/memtest-ruby.py b/configs/example/memtest-ruby.py
index e47b8e0a3..e6684fb5a 100644
--- a/configs/example/memtest-ruby.py
+++ b/configs/example/memtest-ruby.py
@@ -34,8 +34,6 @@ from m5.defines import buildEnv
from m5.util import addToPath
import os, optparse, sys
addToPath('../common')
-addToPath('../../tests/configs/')
-import ruby_config
parser = optparse.OptionParser()
@@ -85,19 +83,43 @@ cpus = [ MemTest(atomic=options.atomic, max_loads=options.maxloads, \
progress_interval=options.progress) \
for i in xrange(options.testers) ]
-# create the desired simulated system
-# ruby memory must be at least 16 MB to work with the mem tester
-ruby_memory = ruby_config.generate("MI_example-homogeneous.rb",
- cores = options.testers,
- memory_size = 16,
- ports_per_cpu = 1)
-
-system = System(cpu = cpus, funcmem = PhysicalMemory(),
- physmem = ruby_memory)
-
-for cpu in cpus:
- cpu.test = system.physmem.port
- cpu.functional = system.funcmem.port
+system = System(cpu = cpus,
+ funcmem = PhysicalMemory(),
+ physmem = PhysicalMemory())
+
+class L1Cache(RubyCache):
+ assoc = 2
+ latency = 3
+ size = 32768
+
+class L2Cache(RubyCache):
+ assoc = 16
+ latency = 15
+ size = 1048576
+
+class CrossbarTopology(Topology):
+ connections="hi"
+
+ for cpu in cpus:
+ l1_cntrl = L1Cache_Controller()
+ cpu_seq = RubySequencer(controller=l1_cntrl,
+ icache=L1Cache(controller=l1_cntrl),
+ dcache=L1Cache(controller=l1_cntrl))
+ cpu.controller = l1_cntrl
+ cpu.sequencer = cpu_seq
+ cpu.test = cpu_seq.port
+ cpu_seq.funcmem_port = system.physmem.port
+ cpu.functional = system.funcmem.port
+
+ dir_cntrl = Directory_Controller(directory=RubyDirectoryMemory(),
+ memory_control=RubyMemoryControl())
+
+network = SimpleNetwork(topology=CrossbarTopology())
+
+system.ruby = RubySystem(network = network,
+ profiler = RubyProfiler(),
+ tracer = RubyTracer(),
+ debug = RubyDebug())
# -----------------------