From 2c9ca672dfe4a204ebe21c73b344d2939c0e0eff Mon Sep 17 00:00:00 2001 From: Brad Beckmann Date: Fri, 29 Jan 2010 20:29:20 -0800 Subject: 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. --- configs/example/memtest-ruby.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'configs') 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) -- cgit v1.2.3