From ab23e29487e734486b602dd589463a8db1804825 Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Wed, 9 May 2012 04:37:45 -0400 Subject: 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. --- src/mem/SConscript | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/mem/SConscript') 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') -- cgit v1.2.3