From 92cfd1cac7f6f2d0abf64808f08f063cd0db1263 Mon Sep 17 00:00:00 2001 From: Brad Beckmann Date: Sun, 21 Mar 2010 21:22:21 -0700 Subject: ruby: Ruby support for sparse memory The patch includes direct support for the MI example protocol. --- configs/common/Options.py | 6 +++++- configs/ruby/MI_example.py | 4 +++- configs/ruby/Ruby.py | 6 ++++-- 3 files changed, 12 insertions(+), 4 deletions(-) (limited to 'configs') 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: -- cgit v1.2.3