MEM: Add the communication monitor
authorAndreas Hansson <andreas.hansson@arm.com>
Wed, 9 May 2012 08:37:45 +0000 (04:37 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Wed, 9 May 2012 08:37:45 +0000 (04:37 -0400)
commitab23e29487e734486b602dd589463a8db1804825
treecb02116c4b4a3d543df81709375d2a4454d8c96e
parent18e8d7ed2d6d669e9537984837e4ec1fa466e7d1
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/CommMonitor.py [new file with mode: 0644]
src/mem/SConscript
src/mem/comm_monitor.cc [new file with mode: 0644]
src/mem/comm_monitor.hh [new file with mode: 0644]