changeset 7daeab1685e9 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=7daeab1685e9
description:
        mem: More descriptive DRAM config names

        This patch changes the class names of the variuos DRAM configurations
        to better reflect what memory they are based on. The speed and
        interface width is now part of the name, and also the alias that is
        used to select them on the command line.

        Some minor changes are done to the actual parameters, to better
        reflect the named configurations. As a result of these changes the
        regressions change slightly and the stats will be bumped in a separate
        patch.

diffstat:

 configs/common/MemConfig.py                   |   8 ++--
 src/mem/SimpleDRAM.py                         |  54 +++++++++++++--------------
 tests/configs/alpha_generic.py                |   2 +-
 tests/configs/arm_generic.py                  |   2 +-
 tests/configs/inorder-timing.py               |   2 +-
 tests/configs/o3-timing-checker.py            |   2 +-
 tests/configs/o3-timing-mp.py                 |   2 +-
 tests/configs/o3-timing.py                    |   2 +-
 tests/configs/pc-simple-timing-ruby.py        |   2 +-
 tests/configs/t1000-simple-atomic.py          |   2 +-
 tests/configs/tgen-simple-dram.py             |   2 +-
 tests/configs/twosys-tsunami-simple-atomic.py |   4 +-
 tests/configs/x86_generic.py                  |   2 +-
 13 files changed, 42 insertions(+), 44 deletions(-)

diffs (268 lines):

diff -r 3af04c92c9aa -r 7daeab1685e9 configs/common/MemConfig.py
--- a/configs/common/MemConfig.py       Thu May 30 12:54:13 2013 -0400
+++ b/configs/common/MemConfig.py       Thu May 30 12:54:14 2013 -0400
@@ -50,10 +50,10 @@
 # first available memory controller model in the tuple will be used.
 _mem_aliases_all = [
     ("simple_mem", "SimpleMemory"),
-    ("ddr3-1600", "SimpleDDR3"),
-    ("lpddr2_s4-1066", "SimpleLPDDR2_S4"),
-    ("lpddr3-1600", "SimpleLPDDR3"),
-    ("wio-200", "SimpleWideIO"),
+    ("ddr3_1600_x64", "DDR3_1600_x64"),
+    ("lpddr2_s4_1066_x32", "LPDDR2_S4_1066_x32"),
+    ("lpddr3_1600_x32", "LPDDR3_1600_x32"),
+    ("wio_200_x128", "WideIO_200_x128"),
     ]
 
 # Filtered list of aliases. Only aliases for existing memory
diff -r 3af04c92c9aa -r 7daeab1685e9 src/mem/SimpleDRAM.py
--- a/src/mem/SimpleDRAM.py     Thu May 30 12:54:13 2013 -0400
+++ b/src/mem/SimpleDRAM.py     Thu May 30 12:54:14 2013 -0400
@@ -172,14 +172,13 @@
 
     # burst length for an access derived from peerBlockSize
 
-# High-level model of a single DDR3 x64 interface (one command and
-# address bus), with default timings based on a DDR3-1600 4 Gbit part,
-# which would amount to 4 Gbyte of memory in 8x8 or 8 GByte in 16x4
-# configuration.
-class SimpleDDR3(SimpleDRAM):
-    # Assuming 64 byte cache lines, use a 2kbyte page size, this
-    # depends on the memory density
-    lines_per_rowbuffer = 32
+# A single DDR3 x64 interface (one command and address bus), with
+# default timings based on DDR3-1600 4 Gbit parts in an 8x8
+# configuration, which would amount to 4 Gbyte of memory.
+class DDR3_1600_x64(SimpleDRAM):
+    # Assuming 64 byte cache lines, and a 1kbyte page size per module
+    # (this depends on the memory density)
+    lines_per_rowbuffer = 128
 
     # Use two ranks
     ranks_per_channel = 2
@@ -192,11 +191,11 @@
     tCL = '13.75ns'
     tRP = '13.75ns'
 
-    # Assuming 64 byte cache lines, across an x64 (8x8 or 16x4)
+    # Assuming 64 byte cache lines, across an x64
     # interface, translates to BL8, 4 clocks @ 800 MHz
     tBURST = '5ns'
 
-    # DDR3, 4 Gb has a tRFC of 240 CK and tCK = 1.25 ns
+    # DDR3, 4 Gbit has a tRFC of 240 CK and tCK = 1.25 ns
     tRFC = '300ns'
 
     # DDR3, <=85C, half for >85C
@@ -210,10 +209,10 @@
     activation_limit = 4
 
 
-# High-level model of a single LPDDR2-S4 x32 interface (one
-# command/address bus), with default timings based on a LPDDR2-1066
-# 4 Gbit part
-class SimpleLPDDR2_S4(SimpleDRAM):
+# A single LPDDR2-S4 x32 interface (one command/address bus), with
+# default timings based on a LPDDR2-1066 4 Gbit part in a 1x32
+# configuration.
+class LPDDR2_S4_1066_x32(SimpleDRAM):
     # Assuming 64 byte cache lines, use a 1kbyte page size, this
     # depends on the memory density
     lines_per_rowbuffer = 16
@@ -230,8 +229,8 @@
     # 8 CK read latency, 4 CK write latency @ 533 MHz, 1.876 ns cycle time
     tCL = '15ns'
 
-    # Pre-charge one bank 15 ns and all banks 18 ns
-    tRP = '18ns'
+    # Pre-charge one bank 15 ns (all banks 18 ns)
+    tRP = '15ns'
 
     # Assuming 64 byte cache lines, across a x32 DDR interface
     # translates to two BL8, 8 clocks @ 533 MHz. Note that this is a
@@ -249,10 +248,9 @@
     tXAW = '50ns'
     activation_limit = 4
 
-# High-level model of a single WideIO x128 interface (one command and
-# address bus), with default timings based on an estimated WIO-200 8
-# Gbit part.
-class SimpleWideIO(SimpleDRAM):
+# A single WideIO x128 interface (one command and address bus), with
+# default timings based on an estimated WIO-200 8 Gbit part.
+class WideIO_200_x128(SimpleDRAM):
     # Assuming 64 byte cache lines, use a 4kbyte page size, this
     # depends on the memory density
     lines_per_rowbuffer = 64
@@ -285,12 +283,12 @@
     tXAW = '50ns'
     activation_limit = 2
 
-# High-level model of a single LPDDR3 x32 interface (one
-# command/address bus), with default timings based on a LPDDR3-1600 4
-# Gbit part
-class SimpleLPDDR3(SimpleDRAM):
-    # 4 Gb and 8 Gb devices use a 1 kByte page size, so ssuming 64 byte
-    # cache lines, that is 16 lines
+# A single LPDDR3 x32 interface (one command/address bus), with
+# default timings based on a LPDDR3-1600 4 Gbit part in a 1x32
+# configuration
+class LPDDR3_1600_x32(SimpleDRAM):
+    # 4 Gbit and 8 Gbit devices use a 1 kByte page size, so ssuming 64
+    # byte cache lines, that is 16 lines
     lines_per_rowbuffer = 16
 
     # Use a single rank
@@ -305,8 +303,8 @@
     # 12 CK read latency, 6 CK write latency @ 800 MHz, 1.25 ns cycle time
     tCL = '15ns'
 
-    # Pre-charge one bank 15 ns and all banks 18 ns
-    tRP = '18ns'
+    # Pre-charge one bank 15 ns (all banks 18 ns)
+    tRP = '15ns'
 
     # Assuming 64 byte cache lines, across a x32 DDR interface
     # translates to two bursts of BL8, 8 clocks @ 800 MHz
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/alpha_generic.py
--- a/tests/configs/alpha_generic.py    Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/alpha_generic.py    Thu May 30 12:54:14 2013 -0400
@@ -59,7 +59,7 @@
         pass
 
     def create_system(self):
-        system = FSConfig.makeLinuxAlphaSystem(self.mem_mode, SimpleDDR3)
+        system = FSConfig.makeLinuxAlphaSystem(self.mem_mode, DDR3_1600_x64)
         self.init_system(system)
         return system
 
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/arm_generic.py
--- a/tests/configs/arm_generic.py      Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/arm_generic.py      Thu May 30 12:54:14 2013 -0400
@@ -61,7 +61,7 @@
     def create_system(self):
         system = FSConfig.makeArmSystem(self.mem_mode,
                                         self.machine_type,
-                                        SimpleDDR3,
+                                        DDR3_1600_x64,
                                         None, False)
 
         # We typically want the simulator to panic if the kernel
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/inorder-timing.py
--- a/tests/configs/inorder-timing.py   Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/inorder-timing.py   Thu May 30 12:54:14 2013 -0400
@@ -39,7 +39,7 @@
 cpu.clock = '2GHz'
 
 system = System(cpu = cpu,
-                physmem = SimpleDDR3(),
+                physmem = DDR3_1600_x64(),
                 membus = CoherentBus(),
                 mem_mode = "timing")
 system.system_port = system.membus.slave
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/o3-timing-checker.py
--- a/tests/configs/o3-timing-checker.py        Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/o3-timing-checker.py        Thu May 30 12:54:14 2013 -0400
@@ -52,7 +52,7 @@
 cpu.clock = '2GHz'
 
 system = System(cpu = cpu,
-                physmem = SimpleDDR3(),
+                physmem = DDR3_1600_x64(),
                 membus = CoherentBus(),
                 mem_mode = "timing")
 system.system_port = system.membus.slave
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/o3-timing-mp.py
--- a/tests/configs/o3-timing-mp.py     Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/o3-timing-mp.py     Thu May 30 12:54:14 2013 -0400
@@ -36,7 +36,7 @@
 
 # system simulated
 system = System(cpu = cpus,
-                physmem = SimpleDDR3(),
+                physmem = DDR3_1600_x64(),
                 membus = CoherentBus(),
                 mem_mode = "timing")
 
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/o3-timing.py
--- a/tests/configs/o3-timing.py        Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/o3-timing.py        Thu May 30 12:54:14 2013 -0400
@@ -41,7 +41,7 @@
 cpu.clock = '2GHz'
 
 system = System(cpu = cpu,
-                physmem = SimpleDDR3(),
+                physmem = DDR3_1600_x64(),
                 membus = CoherentBus(),
                 mem_mode = "timing")
 system.system_port = system.membus.slave
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/pc-simple-timing-ruby.py
--- a/tests/configs/pc-simple-timing-ruby.py    Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/pc-simple-timing-ruby.py    Thu May 30 12:54:14 2013 -0400
@@ -55,7 +55,7 @@
 
 #the system
 mdesc = SysConfig(disk = 'linux-x86.img')
-system = FSConfig.makeLinuxX86System('timing', SimpleDDR3, options.num_cpus,
+system = FSConfig.makeLinuxX86System('timing', DDR3_1600_x64, options.num_cpus,
                                      mdesc=mdesc, Ruby=True)
 system.kernel = FSConfig.binary('x86_64-vmlinux-2.6.22.9.smp')
 system.cpu = [TimingSimpleCPU(cpu_id=i) for i in xrange(options.num_cpus)]
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/t1000-simple-atomic.py
--- a/tests/configs/t1000-simple-atomic.py      Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/t1000-simple-atomic.py      Thu May 30 12:54:14 2013 -0400
@@ -32,7 +32,7 @@
 import FSConfig
 
 cpu = AtomicSimpleCPU(cpu_id=0)
-system = FSConfig.makeSparcSystem('atomic', SimpleDDR3)
+system = FSConfig.makeSparcSystem('atomic', SimpleMemory)
 system.cpu = cpu
 # create the interrupt controller
 cpu.createInterruptController()
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/tgen-simple-dram.py
--- a/tests/configs/tgen-simple-dram.py Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/tgen-simple-dram.py Thu May 30 12:54:14 2013 -0400
@@ -48,7 +48,7 @@
 cpu = TrafficGen(config_file = "tests/quick/se/70.tgen/tgen-simple-dram.cfg")
 
 # system simulated
-system = System(cpu = cpu, physmem = SimpleDDR3(),
+system = System(cpu = cpu, physmem = DDR3_1600_x64(),
                 membus = NoncoherentBus(clock="1GHz", width = 16))
 
 # add a communication monitor
diff -r 3af04c92c9aa -r 7daeab1685e9 
tests/configs/twosys-tsunami-simple-atomic.py
--- a/tests/configs/twosys-tsunami-simple-atomic.py     Thu May 30 12:54:13 
2013 -0400
+++ b/tests/configs/twosys-tsunami-simple-atomic.py     Thu May 30 12:54:14 
2013 -0400
@@ -32,7 +32,7 @@
 from FSConfig import *
 from Benchmarks import *
 
-test_sys = makeLinuxAlphaSystem('atomic', SimpleDDR3,
+test_sys = makeLinuxAlphaSystem('atomic', SimpleMemory,
                                  SysConfig('netperf-stream-client.rcS'))
 test_sys.cpu = AtomicSimpleCPU(cpu_id=0)
 # create the interrupt controller
@@ -46,7 +46,7 @@
 test_sys.iobridge.slave = test_sys.iobus.master
 test_sys.iobridge.master = test_sys.membus.slave
 
-drive_sys = makeLinuxAlphaSystem('atomic', SimpleDDR3,
+drive_sys = makeLinuxAlphaSystem('atomic', SimpleMemory,
                                  SysConfig('netperf-server.rcS'))
 drive_sys.cpu = AtomicSimpleCPU(cpu_id=0)
 # create the interrupt controller
diff -r 3af04c92c9aa -r 7daeab1685e9 tests/configs/x86_generic.py
--- a/tests/configs/x86_generic.py      Thu May 30 12:54:13 2013 -0400
+++ b/tests/configs/x86_generic.py      Thu May 30 12:54:14 2013 -0400
@@ -58,7 +58,7 @@
     def create_system(self):
         mdesc = SysConfig(disk = 'linux-x86.img')
         system = FSConfig.makeLinuxX86System(self.mem_mode,
-                                             SimpleDDR3,
+                                             DDR3_1600_x64,
                                              numCPUs=self.num_cpus,
                                              mdesc=mdesc)
         system.kernel = FSConfig.binary('x86_64-vmlinux-2.6.22.9')
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to