summaryrefslogtreecommitdiff
path: root/configs/example
diff options
context:
space:
mode:
authorBrad Beckmann <Brad.Beckmann@amd.com>2010-01-29 20:29:20 -0800
committerBrad Beckmann <Brad.Beckmann@amd.com>2010-01-29 20:29:20 -0800
commit2c9ca672dfe4a204ebe21c73b344d2939c0e0eff (patch)
treedce0fbc1d40e16ae7ed7f04db5c7e58bbd779698 /configs/example
parent2a0555470cfc66ab70544e97578c048822ec9282 (diff)
downloadgem5-2c9ca672dfe4a204ebe21c73b344d2939c0e0eff.tar.xz
ruby: Memory Controller Profiler with new config system
This patch includes a rather substantial change to the memory controller profiler in order to work with the new configuration system. Most noteably, the mem_cntrl_profiler no longer uses a string map, but instead a vector. Eventually this support should be removed from the main profiler and go into a separate object. Each memory controller should have a pointer to that new mem_cntrl profile object.
Diffstat (limited to 'configs/example')
-rw-r--r--configs/example/memtest-ruby.py26
1 files changed, 21 insertions, 5 deletions
diff --git a/configs/example/memtest-ruby.py b/configs/example/memtest-ruby.py
index abc22a93b..c610a1c62 100644
--- a/configs/example/memtest-ruby.py
+++ b/configs/example/memtest-ruby.py
@@ -135,9 +135,11 @@ for (i, cpu) in enumerate(cpus):
L1DcacheMemory = l1d_cache,
L2cacheMemory = l2_cache)
+ mem_cntrl = RubyMemoryControl(version = i)
+
dir_cntrl = Directory_Controller(version = i,
directory = RubyDirectoryMemory(),
- memBuffer = RubyMemoryControl())
+ memBuffer = mem_cntrl)
dma_cntrl = DMA_Controller(version = i,
dma_sequencer = DMASequencer())
@@ -167,13 +169,27 @@ network = SimpleNetwork(topology = makeCrossbar(l1_cntrl_nodes + \
mem_size_mb = sum([int(dir_cntrl.directory.size_mb) \
for dir_cntrl in dir_cntrl_nodes])
+#
+# determine the number of memory controllers and other memory controller
+# parameters for the profiler
+#
+mcCount = len(dir_cntrl_nodes)
+banksPerRank = dir_cntrl_nodes[0].memBuffer.banks_per_rank
+ranksPerDimm = dir_cntrl_nodes[0].memBuffer.ranks_per_dimm
+dimmsPerChannel = dir_cntrl_nodes[0].memBuffer.dimms_per_channel
+
+ruby_profiler = RubyProfiler(mem_cntrl_count = mcCount,
+ banks_per_rank = banksPerRank,
+ ranks_per_dimm = ranksPerDimm,
+ dimms_per_channel = dimmsPerChannel)
+
system.ruby = RubySystem(clock = '1GHz',
network = network,
- profiler = RubyProfiler(),
+ profiler = ruby_profiler,
tracer = RubyTracer(),
- debug = RubyDebug(filter_string = 'qQin',
- verbosity_string = 'high',
- protocol_trace = True),
+ debug = RubyDebug(filter_string = 'none',
+ verbosity_string = 'none',
+ protocol_trace = False),
mem_size_mb = mem_size_mb)