changeset 91cac7c9c636 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=91cac7c9c636
description:
        ruby: remove the functional copy of memory in se mode
        This patch removes the functional copy of the memory that was 
maintained in
        the se mode. Now ruby itself will provide the data.

diffstat:

 configs/example/ruby_fs.py             |   2 ++
 configs/example/se.py                  |   3 +++
 src/mem/ruby/system/Sequencer.py       |   4 +++-
 tests/configs/memtest-ruby.py          |  10 ++--------
 tests/configs/pc-simple-timing-ruby.py |   3 +++
 tests/configs/rubytest-ruby.py         |   8 +-------
 tests/configs/simple-timing-ruby.py    |   2 +-
 7 files changed, 15 insertions(+), 17 deletions(-)

diffs (125 lines):

diff -r 2c094ad4dc70 -r 91cac7c9c636 configs/example/ruby_fs.py
--- a/configs/example/ruby_fs.py        Wed Mar 06 21:53:16 2013 -0600
+++ b/configs/example/ruby_fs.py        Wed Mar 06 21:53:57 2013 -0600
@@ -114,5 +114,7 @@
         cpu.interrupts.int_master = system.piobus.slave
         cpu.interrupts.int_slave = system.piobus.master
 
+    system.ruby._cpu_ruby_ports[i].access_phys_mem = True
+
 root = Root(full_system = True, system = system)
 Simulation.run(options, root, system, FutureClass)
diff -r 2c094ad4dc70 -r 91cac7c9c636 configs/example/se.py
--- a/configs/example/se.py     Wed Mar 06 21:53:16 2013 -0600
+++ b/configs/example/se.py     Wed Mar 06 21:53:57 2013 -0600
@@ -187,6 +187,9 @@
         print >> sys.stderr, "Ruby requires TimingSimpleCPU or O3CPU!!"
         sys.exit(1)
 
+    # Set the option for physmem so that it is not allocated any space
+    system.physmem.null = True
+
     options.use_map = True
     Ruby.create_system(options, system)
     assert(options.num_cpus == len(system.ruby._cpu_ruby_ports))
diff -r 2c094ad4dc70 -r 91cac7c9c636 src/mem/ruby/system/Sequencer.py
--- a/src/mem/ruby/system/Sequencer.py  Wed Mar 06 21:53:16 2013 -0600
+++ b/src/mem/ruby/system/Sequencer.py  Wed Mar 06 21:53:57 2013 -0600
@@ -41,7 +41,7 @@
     pio_port = MasterPort("Ruby_pio_port")
     using_ruby_tester = Param.Bool(False, "")
     using_network_tester = Param.Bool(False, "")
-    access_phys_mem = Param.Bool(True,
+    access_phys_mem = Param.Bool(False,
         "should the rubyport atomically update phys_mem")
     ruby_system = Param.RubySystem("")
     system = Param.System(Parent.any, "system object")
@@ -52,6 +52,7 @@
 class RubyPortProxy(RubyPort):
     type = 'RubyPortProxy'
     cxx_header = "mem/ruby/system/RubyPortProxy.hh"
+    access_phys_mem = True
     
 class RubySequencer(RubyPort):
     type = 'RubySequencer'
@@ -67,3 +68,4 @@
 class DMASequencer(RubyPort):
     type = 'DMASequencer'
     cxx_header = "mem/ruby/system/DMASequencer.hh"
+    access_phys_mem = True
diff -r 2c094ad4dc70 -r 91cac7c9c636 tests/configs/memtest-ruby.py
--- a/tests/configs/memtest-ruby.py     Wed Mar 06 21:53:16 2013 -0600
+++ b/tests/configs/memtest-ruby.py     Wed Mar 06 21:53:57 2013 -0600
@@ -79,8 +79,8 @@
 # system simulated
 system = System(cpu = cpus,
                 funcmem = SimpleMemory(in_addr_map = False),
-                funcbus = NoncoherentBus(),
-                physmem = SimpleMemory())
+                physmem = SimpleMemory(null = True),
+                funcbus = NoncoherentBus())
 
 Ruby.create_system(options, system)
 
@@ -100,12 +100,6 @@
      #
      ruby_port.deadlock_threshold = 1000000
 
-     #
-     # Ruby doesn't need the backing image of memory when running with
-     # the tester.
-     #
-     ruby_port.access_phys_mem = False
-
 # connect reference memory to funcbus
 system.funcmem.port = system.funcbus.master
 
diff -r 2c094ad4dc70 -r 91cac7c9c636 tests/configs/pc-simple-timing-ruby.py
--- a/tests/configs/pc-simple-timing-ruby.py    Wed Mar 06 21:53:16 2013 -0600
+++ b/tests/configs/pc-simple-timing-ruby.py    Wed Mar 06 21:53:57 2013 -0600
@@ -74,5 +74,8 @@
     cpu.interrupts.int_slave = system.piobus.master
     cpu.clock = '2GHz'
 
+    # Set access_phys_mem to True for ruby port
+    system.ruby._cpu_ruby_ports[i].access_phys_mem = True
+
 root = Root(full_system = True, system = system)
 m5.ticks.setGlobalFrequency('1THz')
diff -r 2c094ad4dc70 -r 91cac7c9c636 tests/configs/rubytest-ruby.py
--- a/tests/configs/rubytest-ruby.py    Wed Mar 06 21:53:16 2013 -0600
+++ b/tests/configs/rubytest-ruby.py    Wed Mar 06 21:53:57 2013 -0600
@@ -77,7 +77,7 @@
 tester = RubyTester(check_flush = check_flush, checks_to_complete = 100,
                     wakeup_frequency = 10, num_cpus = options.num_cpus)
 
-system = System(tester = tester, physmem = SimpleMemory())
+system = System(tester = tester, physmem = SimpleMemory(null = True))
 
 Ruby.create_system(options, system)
 
@@ -104,12 +104,6 @@
     #
     ruby_port.using_ruby_tester = True
 
-    #
-    # Ruby doesn't need the backing image of memory when running with
-    # the tester.
-    #
-    ruby_port.access_phys_mem = False
-
 # -----------------------
 # run simulation
 # -----------------------
diff -r 2c094ad4dc70 -r 91cac7c9c636 tests/configs/simple-timing-ruby.py
--- a/tests/configs/simple-timing-ruby.py       Wed Mar 06 21:53:16 2013 -0600
+++ b/tests/configs/simple-timing-ruby.py       Wed Mar 06 21:53:57 2013 -0600
@@ -67,7 +67,7 @@
 options.num_cpus = 1
 
 cpu = TimingSimpleCPU(cpu_id=0)
-system = System(cpu = cpu, physmem = SimpleMemory())
+system = System(cpu = cpu, physmem = SimpleMemory(null = True))
 
 Ruby.create_system(options, system)
 
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to