summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Beckmann <Brad.Beckmann@amd.com>2010-01-29 20:29:24 -0800
committerBrad Beckmann <Brad.Beckmann@amd.com>2010-01-29 20:29:24 -0800
commit502b8bd8a4f3b1998afbd3cf8e59e0bb4e153403 (patch)
treef77b7a0859d5864eedc6d66fadef8d8ba035fe08
parent70648cf6aa54a5f313b422c4bf6a6a1e4ad7c4ed (diff)
downloadgem5-502b8bd8a4f3b1998afbd3cf8e59e0bb4e153403.tar.xz
ruby: Memory size consistency check
Ruby's memory is now sized according to the size of M5 physical memory.
-rw-r--r--configs/ruby/MOESI_hammer.py9
-rw-r--r--configs/ruby/Ruby.py5
2 files changed, 12 insertions, 2 deletions
diff --git a/configs/ruby/MOESI_hammer.py b/configs/ruby/MOESI_hammer.py
index dba31b8b7..62d86a1e2 100644
--- a/configs/ruby/MOESI_hammer.py
+++ b/configs/ruby/MOESI_hammer.py
@@ -96,6 +96,9 @@ def create_system(options, phys_mem, piobus, dma_devices):
cpu_sequencers.append(cpu_seq)
l1_cntrl_nodes.append(l1_cntrl)
+ phys_mem_size = long(phys_mem.range.second) - long(phys_mem.range.first) + 1
+ mem_module_size = phys_mem_size / options.num_dirs
+
for i in xrange(options.num_dirs):
#
# Create the Ruby objects associated with the directory controller
@@ -103,9 +106,13 @@ def create_system(options, phys_mem, piobus, dma_devices):
mem_cntrl = RubyMemoryControl(version = i)
+ dir_size = MemorySize('0B')
+ dir_size.value = mem_module_size
+
dir_cntrl = Directory_Controller(version = i,
directory = \
- RubyDirectoryMemory(version = i),
+ RubyDirectoryMemory(version = i,
+ size = dir_size),
memBuffer = mem_cntrl)
dir_cntrl_nodes.append(dir_cntrl)
diff --git a/configs/ruby/Ruby.py b/configs/ruby/Ruby.py
index 7003e6266..735adda27 100644
--- a/configs/ruby/Ruby.py
+++ b/configs/ruby/Ruby.py
@@ -55,11 +55,14 @@ def create_system(options, physmem, piobus = None, dma_devices = []):
network = SimpleNetwork(topology = makeCrossbar(all_cntrls))
#
- # determine the total memory size of the ruby system
+ # determine the total memory size of the ruby system and verify it is equal
+ # to physmem
#
total_mem_size = MemorySize('0B')
for dir_cntrl in dir_cntrls:
total_mem_size.value += dir_cntrl.directory.size.value
+ physmem_size = long(physmem.range.second) - long(physmem.range.first) + 1
+ assert(total_mem_size.value == physmem_size)
ruby_profiler = RubyProfiler(num_of_sequencers = len(cpu_sequencers))