summaryrefslogtreecommitdiff
path: root/src/mem/SConscript
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2012-05-09 04:37:45 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2012-05-09 04:37:45 -0400
commitab23e29487e734486b602dd589463a8db1804825 (patch)
treecb02116c4b4a3d543df81709375d2a4454d8c96e /src/mem/SConscript
parent18e8d7ed2d6d669e9537984837e4ec1fa466e7d1 (diff)
downloadgem5-ab23e29487e734486b602dd589463a8db1804825.tar.xz
MEM: Add the communication monitor
This patch adds a communication monitor MemObject that can be inserted between a master and slave port to provide a range of statistics about the communication passing through it. The communication monitor is non-invasive and does not change any properties or timing of the packets, with the exception of adding a sender state to be able to track latency. The statistics are only collected in timing mode (not atomic) to avoid slowing down any fast forwarding. An example of the statistics captured by the monitor are: read/write burst lengths, bandwidth, request-response latency, outstanding transactions, inter transaction time, transaction count, and address distribution. The monitor can be used in combination with periodic resetting and dumping of stats (through schedStatEvent) to study the behaviour over time. In future patches, a selection of convenience scripts will be added to aid in visualising the statistics collected by the monitor.
Diffstat (limited to 'src/mem/SConscript')
-rw-r--r--src/mem/SConscript3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mem/SConscript b/src/mem/SConscript
index efb3c947a..3ffb3503a 100644
--- a/src/mem/SConscript
+++ b/src/mem/SConscript
@@ -32,10 +32,12 @@ Import('*')
SimObject('Bridge.py')
SimObject('Bus.py')
+SimObject('CommMonitor.py')
SimObject('MemObject.py')
Source('bridge.cc')
Source('bus.cc')
+Source('comm_monitor.cc')
Source('mem_object.cc')
Source('mport.cc')
Source('packet.cc')
@@ -57,6 +59,7 @@ if env['TARGET_ISA'] != 'no':
DebugFlag('Bus')
DebugFlag('BusAddrRanges')
DebugFlag('BusBridge')
+DebugFlag('CommMonitor')
DebugFlag('LLSC')
DebugFlag('MMU')
DebugFlag('MemoryAccess')