summaryrefslogtreecommitdiff
path: root/configs
diff options
context:
space:
mode:
authorBrad Beckmann <Brad.Beckmann@amd.com>2010-03-21 21:22:21 -0700
committerBrad Beckmann <Brad.Beckmann@amd.com>2010-03-21 21:22:21 -0700
commit92cfd1cac7f6f2d0abf64808f08f063cd0db1263 (patch)
treea69a2964f7342083cd8aaca5ed32df207a1edea8 /configs
parentb5e4c3cbf2de32e18029b44b16b307a773b6ecf7 (diff)
downloadgem5-92cfd1cac7f6f2d0abf64808f08f063cd0db1263.tar.xz
ruby: Ruby support for sparse memory
The patch includes direct support for the MI example protocol.
Diffstat (limited to 'configs')
-rw-r--r--configs/common/Options.py6
-rw-r--r--configs/ruby/MI_example.py4
-rw-r--r--configs/ruby/Ruby.py6
3 files changed, 12 insertions, 4 deletions
diff --git a/configs/common/Options.py b/configs/common/Options.py
index 7d1b0e745..b0153f453 100644
--- a/configs/common/Options.py
+++ b/configs/common/Options.py
@@ -43,7 +43,11 @@ parser.add_option("--mesh-rows", type="int", default=1,
help="the number of rows in the mesh topology")
parser.add_option("--garnet-network", type="string", default=none,
help="'fixed'|'flexible'")
-
+
+# ruby sparse memory options
+parser.add_option("--use-map", action="store_true", default=False)
+parser.add_option("--map-levels", type="int", default=4)
+
# Run duration options
parser.add_option("-m", "--maxtick", type="int", default=m5.MaxTick,
metavar="T",
diff --git a/configs/ruby/MI_example.py b/configs/ruby/MI_example.py
index 96515971e..f4033caeb 100644
--- a/configs/ruby/MI_example.py
+++ b/configs/ruby/MI_example.py
@@ -105,7 +105,9 @@ def create_system(options, phys_mem, piobus, dma_devices):
dir_cntrl = Directory_Controller(version = i,
directory = \
RubyDirectoryMemory(version = i,
- size = dir_size),
+ size = dir_size,
+ use_map = options.use_map,
+ map_levels = options.map_levels),
memBuffer = mem_cntrl)
dir_cntrl_nodes.append(dir_cntrl)
diff --git a/configs/ruby/Ruby.py b/configs/ruby/Ruby.py
index 22d56f9a1..44a160793 100644
--- a/configs/ruby/Ruby.py
+++ b/configs/ruby/Ruby.py
@@ -78,8 +78,10 @@ def create_system(options, physmem, piobus = None, dma_devices = []):
network = SimpleNetwork(topology = net_topology)
#
- # determine the total memory size of the ruby system and verify it is equal
- # to physmem
+ # Determine the total memory size of the ruby system and verify it is equal
+ # to physmem. However, if Ruby memory is using sparse memory in SE
+ # mode, then the system should not back-up the memory state with
+ # the Memory Vector and thus the memory size bytes should stay at 0.
#
total_mem_size = MemorySize('0B')
for dir_cntrl in dir_cntrls: