changeset 4672c12307a7 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=4672c12307a7
description:
SimpleDRAM: A basic SimpleDRAM regression
diffstat:
tests/SConscript | 3 +-
tests/configs/tgen-simple-dram.py | 67 +
tests/quick/se/70.tgen/ref/arm/linux/tgen-simple-dram/simerr | 1 +
tests/quick/se/70.tgen/ref/arm/linux/tgen-simple-dram/simout | 10 +
tests/quick/se/70.tgen/ref/arm/linux/tgen-simple-dram/stats.txt | 523
++++++++++
tests/quick/se/70.tgen/tgen-simple-dram.cfg | 29 +
tests/quick/se/70.tgen/tgen-simple-dram.trc | 6 +
7 files changed, 638 insertions(+), 1 deletions(-)
diffs (truncated from 673 to 300 lines):
diff -r 9b6ff962d62f -r 4672c12307a7 tests/SConscript
--- a/tests/SConscript Fri Sep 21 11:48:13 2012 -0400
+++ b/tests/SConscript Fri Sep 21 11:48:14 2012 -0400
@@ -315,7 +315,8 @@
configs += ['simple-atomic', 'simple-timing', 'o3-timing', 'memtest',
'simple-atomic-mp', 'simple-timing-mp', 'o3-timing-mp',
- 'inorder-timing', 'rubytest', 'tgen-simple-mem']
+ 'inorder-timing', 'rubytest', 'tgen-simple-mem',
+ 'tgen-simple-dram']
if env['PROTOCOL'] != 'None':
if env['PROTOCOL'] == 'MI_example':
diff -r 9b6ff962d62f -r 4672c12307a7 tests/configs/tgen-simple-dram.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/configs/tgen-simple-dram.py Fri Sep 21 11:48:14 2012 -0400
@@ -0,0 +1,67 @@
+# Copyright (c) 2012 ARM Limited
+# All rights reserved.
+#
+# The license below extends only to copyright in the software and shall
+# not be construed as granting a license to any other intellectual
+# property including but not limited to intellectual property relating
+# to a hardware implementation of the functionality of the software
+# licensed hereunder. You may use the software subject to the license
+# terms below provided that you ensure that this notice is replicated
+# unmodified and in its entirety in all distributions of the software,
+# modified or unmodified, in source code or in binary form.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Authors: Andreas Hansson
+
+import m5
+from m5.objects import *
+
+# even if this is only a traffic generator, call it cpu to make sure
+# the scripts are happy
+cpu = TrafficGen(config_file = "tests/quick/se/70.tgen/tgen-simple-dram.cfg")
+
+# system simulated
+system = System(cpu = cpu, physmem = SimpleDRAM(),
+ membus = NoncoherentBus(clock="1GHz", width = 16))
+
+# add a communication monitor
+system.monitor = CommMonitor()
+
+# connect the traffic generator to the bus via a communication monitor
+system.cpu.port = system.monitor.slave
+system.monitor.master = system.membus.slave
+
+# connect the system port even if it is not used in this example
+system.system_port = system.membus.slave
+
+# connect memory to the membus
+system.physmem.port = system.membus.master
+
+# -----------------------
+# run simulation
+# -----------------------
+
+root = Root(full_system = False, system = system)
+root.system.mem_mode = 'timing'
diff -r 9b6ff962d62f -r 4672c12307a7
tests/quick/se/70.tgen/ref/arm/linux/tgen-simple-dram/simerr
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/quick/se/70.tgen/ref/arm/linux/tgen-simple-dram/simerr Fri Sep
21 11:48:14 2012 -0400
@@ -0,0 +1,1 @@
+hack: be nice to actually delete the event here
diff -r 9b6ff962d62f -r 4672c12307a7
tests/quick/se/70.tgen/ref/arm/linux/tgen-simple-dram/simout
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/quick/se/70.tgen/ref/arm/linux/tgen-simple-dram/simout Fri Sep
21 11:48:14 2012 -0400
@@ -0,0 +1,10 @@
+gem5 Simulator System. http://gem5.org
+gem5 is copyrighted software; use the --copyright option for details.
+
+gem5 compiled Aug 6 2012 15:52:45
+gem5 started Aug 6 2012 15:56:03
+gem5 executing on 61f1f4j
+command line: build/ARM/gem5.opt -d
build/ARM/tests/opt/quick/se/70.tgen/arm/linux/tgen-simple-dram -re
tests/run.py build/ARM/tests/opt/quick/se/70.tgen/arm/linux/tgen-simple-dram
+Global frequency set at 1000000000000 ticks per second
+info: Entering event queue @ 0. Starting simulation...
+Exiting @ tick 300940000 because Done
diff -r 9b6ff962d62f -r 4672c12307a7
tests/quick/se/70.tgen/ref/arm/linux/tgen-simple-dram/stats.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/quick/se/70.tgen/ref/arm/linux/tgen-simple-dram/stats.txt Fri Sep
21 11:48:14 2012 -0400
@@ -0,0 +1,523 @@
+
+---------- Begin Simulation Statistics ----------
+sim_seconds 0.100000 #
Number of seconds simulated
+sim_ticks 100000000000 #
Number of ticks simulated
+final_tick 100000000000 #
Number of ticks from beginning of simulation (restored from checkpoints and
never reset)
+sim_freq 1000000000000 #
Frequency of simulated ticks
+host_tick_rate 164289751 #
Simulator tick rate (ticks/s)
+host_mem_usage 8931604 #
Number of bytes of host memory used
+host_seconds 608.68 #
Real time elapsed on the host
+system.physmem.bytes_read::cpu 1548931840 #
Number of bytes read from this memory
+system.physmem.bytes_read::total 1548931840 #
Number of bytes read from this memory
+system.physmem.bytes_written::cpu 15517952 #
Number of bytes written to this memory
+system.physmem.bytes_written::total 15517952 #
Number of bytes written to this memory
+system.physmem.num_reads::cpu 24202060 #
Number of read requests responded to by this memory
+system.physmem.num_reads::total 24202060 #
Number of read requests responded to by this memory
+system.physmem.num_writes::cpu 242468 #
Number of write requests responded to by this memory
+system.physmem.num_writes::total 242468 #
Number of write requests responded to by this memory
+system.physmem.bw_read::cpu 15489318400 #
Total read bandwidth from this memory (bytes/s)
+system.physmem.bw_read::total 15489318400 #
Total read bandwidth from this memory (bytes/s)
+system.physmem.bw_write::cpu 155179520 #
Write bandwidth from this memory (bytes/s)
+system.physmem.bw_write::total 155179520 #
Write bandwidth from this memory (bytes/s)
+system.physmem.bw_total::cpu 15644497920 #
Total bandwidth to/from this memory (bytes/s)
+system.physmem.bw_total::total 15644497920 #
Total bandwidth to/from this memory (bytes/s)
+system.physmem.readReqs 24202092 #
Total number of read requests seen
+system.physmem.writeReqs 242468 #
Total number of write requests seen
+system.physmem.cpureqs 99030087 #
Reqs generatd by CPU via cache - shady
+system.physmem.bytesRead 1548931840 #
Total number of bytes read from memory
+system.physmem.bytesWritten 15517952 #
Total number of bytes written to memory
+system.physmem.bytesConsumedRd 1548931840 #
bytesRead derated as per pkt->getSize()
+system.physmem.bytesConsumedWr 15517952 #
bytesWritten derated as per pkt->getSize()
+system.physmem.servicedByWrQ 0 #
Number of read reqs serviced by write Q
+system.physmem.neitherReadNorWrite 0 #
Reqs where no action is needed
+system.physmem.perBankRdReqs::0 1514927 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::1 1514728 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::2 1514705 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::3 1515028 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::4 1513346 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::5 1511898 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::6 1511772 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::7 1511947 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::8 1511697 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::9 1511773 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::10 1511711 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::11 1511702 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::12 1511706 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::13 1511768 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::14 1511811 #
Track reads on a per bank basis
+system.physmem.perBankRdReqs::15 1511573 #
Track reads on a per bank basis
+system.physmem.perBankWrReqs::0 15121 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::1 15320 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::2 15295 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::3 14956 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::4 15102 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::5 15014 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::6 15140 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::7 14965 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::8 15215 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::9 15139 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::10 15201 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::11 15210 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::12 15206 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::13 15144 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::14 15101 #
Track writes on a per bank basis
+system.physmem.perBankWrReqs::15 15339 #
Track writes on a per bank basis
+system.physmem.numRdRetry 74585527 #
Number of times rd buffer was full causing retry
+system.physmem.numWrRetry 0 #
Number of times wr buffer was full causing retry
+system.physmem.totGap 99999999900 #
Total gap between requests
+system.physmem.readPktSize::0 0 #
Categorize read packet sizes
+system.physmem.readPktSize::1 0 #
Categorize read packet sizes
+system.physmem.readPktSize::2 0 #
Categorize read packet sizes
+system.physmem.readPktSize::3 0 #
Categorize read packet sizes
+system.physmem.readPktSize::4 0 #
Categorize read packet sizes
+system.physmem.readPktSize::5 0 #
Categorize read packet sizes
+system.physmem.readPktSize::6 98787619 #
Categorize read packet sizes
+system.physmem.readPktSize::7 0 #
Categorize read packet sizes
+system.physmem.readPktSize::8 0 #
Categorize read packet sizes
+system.physmem.writePktSize::0 0 #
categorize write packet sizes
+system.physmem.writePktSize::1 0 #
categorize write packet sizes
+system.physmem.writePktSize::2 0 #
categorize write packet sizes
+system.physmem.writePktSize::3 0 #
categorize write packet sizes
+system.physmem.writePktSize::4 0 #
categorize write packet sizes
+system.physmem.writePktSize::5 0 #
categorize write packet sizes
+system.physmem.writePktSize::6 242468 #
categorize write packet sizes
+system.physmem.writePktSize::7 0 #
categorize write packet sizes
+system.physmem.writePktSize::8 0 #
categorize write packet sizes
+system.physmem.neitherpktsize::0 0 #
categorize neither packet sizes
+system.physmem.neitherpktsize::1 0 #
categorize neither packet sizes
+system.physmem.neitherpktsize::2 0 #
categorize neither packet sizes
+system.physmem.neitherpktsize::3 0 #
categorize neither packet sizes
+system.physmem.neitherpktsize::4 0 #
categorize neither packet sizes
+system.physmem.neitherpktsize::5 0 #
categorize neither packet sizes
+system.physmem.neitherpktsize::6 0 #
categorize neither packet sizes
+system.physmem.neitherpktsize::7 0 #
categorize neither packet sizes
+system.physmem.neitherpktsize::8 0 #
categorize neither packet sizes
+system.physmem.rdQLenPdf::0 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::1 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::2 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::3 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::4 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::5 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::6 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::7 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::8 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::9 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::10 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::11 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::12 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::13 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::14 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::15 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::16 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::17 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::18 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::19 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::20 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::21 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::22 1 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::23 2 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::24 2 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::25 2 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::26 2 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::27 2 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::28 25 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::29 74 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::30 7056 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::31 24194904 #
What read queue length does an incoming req see
+system.physmem.rdQLenPdf::32 0 #
What read queue length does an incoming req see
+system.physmem.wrQLenPdf::0 9049 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::1 10446 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::2 10539 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::3 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::4 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::5 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::6 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::7 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::8 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::9 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::10 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::11 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::12 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::13 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::14 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::15 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::16 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::17 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::18 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::19 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::20 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::21 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::22 10542 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::23 1494 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::24 97 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::25 3 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::26 0 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::27 0 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::28 0 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::29 0 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::30 0 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::31 0 #
What write queue length does an incoming req see
+system.physmem.wrQLenPdf::32 0 #
What write queue length does an incoming req see
+system.physmem.totQLat 3064910971475 #
Total cycles spent in queuing delays
+system.physmem.totMemAccLat 3177729699475 #
Sum of mem lat for all requests
+system.physmem.totBusLat 96808300000 #
Total cycles spent in databus access
+system.physmem.totBankLat 16010428000 #
Total cycles spent in bank access
+system.physmem.avgQLat 126638.27 #
Average queueing delay per request
+system.physmem.avgBankLat 661.53 #
Average bank access latency per request
+system.physmem.avgBusLat 4000.00 #
Average bus latency per request
+system.physmem.avgMemAccLat 131299.79 #
Average memory access latency
+system.physmem.avgRdBW 15489.32 #
Average achieved read bandwidth in MB/s
+system.physmem.avgWrBW 155.18 #
Average achieved write bandwidth in MB/s
+system.physmem.avgConsumedRdBW 15489.32 #
Average consumed read bandwidth in MB/s
+system.physmem.avgConsumedWrBW 155.18 #
Average consumed write bandwidth in MB/s
+system.physmem.peakBW 16000.00 #
Theoretical peak bandwidth in MB/s
+system.physmem.busUtil 97.78 #
Data bus utilization in percentage
+system.physmem.avgRdQLen 31.78 #
Average read queue length over time
+system.physmem.avgWrQLen 11.04 #
Average write queue length over time
+system.physmem.readRowHits 23821924 #
Number of row buffer hits during reads
+system.physmem.writeRowHits 101486 #
Number of row buffer hits during writes
+system.physmem.readRowHitRate 98.43 #
Row buffer hit rate for reads
+system.physmem.writeRowHitRate 41.86 #
Row buffer hit rate for writes
+system.physmem.avgGap 4090.89 #
Average gap between requests
+system.monitor.readBurstLengthHist::samples 24202092
# Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::mean 64 #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::gmean 64.000000 #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::stdev 0 #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::0-3 0 0.00% 0.00% #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::4-7 0 0.00% 0.00% #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::8-11 0 0.00% 0.00% #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::12-15 0 0.00% 0.00% #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::16-19 0 0.00% 0.00% #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::20-23 0 0.00% 0.00% #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::24-27 0 0.00% 0.00% #
Histogram of burst lengths of transmitted packets
+system.monitor.readBurstLengthHist::28-31 0 0.00% 0.00% #
Histogram of burst lengths of transmitted packets
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev