Make memtest work with 8 memtesters
authorRon Dreslinski <rdreslin@umich.edu>
Mon, 9 Oct 2006 21:13:50 +0000 (17:13 -0400)
committerRon Dreslinski <rdreslin@umich.edu>
Mon, 9 Oct 2006 21:13:50 +0000 (17:13 -0400)
src/mem/physical.cc:
    Update comment to match memtest use
src/python/m5/objects/PhysicalMemory.py:
    Make memtester have a way to connect functionally
tests/configs/memtest.py:
    Properly create 8 memtesters and connect them to the memory system

--HG--
extra : convert_revision : e5a2dd9c8918d58051b553b5c6a14785d48b34ca

src/mem/physical.cc
src/python/m5/objects/PhysicalMemory.py
tests/configs/memtest.py

index 070693442d475cafcee6a995767b349e400d1ccd..96d78bd991592fa6b052bae1f407a55b0bf1d044 100644 (file)
@@ -231,7 +231,7 @@ PhysicalMemory::getPort(const std::string &if_name, int idx)
         port = new MemoryPort(name() + "-port", this);
         return port;
     } else if (if_name == "functional") {
-        /* special port for functional writes at startup. */
+        /* special port for functional writes at startup. And for memtester */
         return new MemoryPort(name() + "-funcport", this);
     } else {
         panic("PhysicalMemory::getPort: unknown port %s requested", if_name);
index dd3ffd65112e0e2e1803cf993699e47288032938..4e097543dcaa4f166fd30ee44fc27e855d660692 100644 (file)
@@ -5,6 +5,7 @@ from MemObject import *
 class PhysicalMemory(MemObject):
     type = 'PhysicalMemory'
     port = Port("the access port")
+    functional = Port("Functional Access Port")
     range = Param.AddrRange(AddrRange('128MB'), "Device Address")
     file = Param.String('', "memory mapped file")
     latency = Param.Latency(Parent.clock, "latency of an access")
index cfcefbcb9f7849e82f62b201160453b8f8bcc5a7..c5cd0246d0c94d6b9f98588f370739bdc7f00562 100644 (file)
@@ -51,7 +51,8 @@ class L2(BaseCache):
     tgts_per_mshr = 16
     write_buffers = 8
 
-nb_cores = 1
+#MAX CORES IS 8 with the fals sharing method
+nb_cores = 8
 cpus = [ MemTest(max_loads=1e12) for i in xrange(nb_cores) ]
 
 # system simulated
@@ -66,12 +67,17 @@ system.l2c.cpu_side = system.toL2Bus.port
 # connect l2c to membus
 system.l2c.mem_side = system.membus.port
 
+which_port = 0
 # add L1 caches
 for cpu in cpus:
     cpu.l1c = L1(size = '32kB', assoc = 4)
     cpu.l1c.cpu_side = cpu.test
     cpu.l1c.mem_side = system.toL2Bus.port
-    system.funcmem.port = cpu.functional
+    if  which_port == 0:
+         system.funcmem.port = cpu.functional
+         which_port = 1
+    else:
+         system.funcmem.functional = cpu.functional
 
 
 # connect memory to membus