MEM: Add the communication monitor
Review Request #1159 - Created April 20, 2012 and submitted
| Information | |
|---|---|
| Andreas Hansson | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
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.
Used in combination with various full system simulations
Posted (April 28, 2012, 2:08 a.m.)
I like the idea of having a common way of collecting these stats (and probably more importantly, common names and semantics for the output). Does it make sense to have this in a separate object though? It seems like that just adds complexity to the configuration, and the possibility of not putting one of these where you wish you had. Did you consider putting all this code in a base class like MemObject so that everyone automatically collects all these stats?
Posted (May 4, 2012, 2:18 a.m.)
Any other comments or feedback on the monitor?
Ship It!
Posted (May 5, 2012, 7:04 a.m.)
You might want to change the 'burst_lenght_bins' parameter to 'burst_length_bins'.
Ship It!
