comm_monitor.hh (9294:8fb03b13de02) comm_monitor.hh (9398:6a348f61220c)
1/*
2 * Copyright (c) 2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 31 unchanged lines hidden (view full) ---

40
41#ifndef __MEM_COMM_MONITOR_HH__
42#define __MEM_COMM_MONITOR_HH__
43
44#include "base/statistics.hh"
45#include "base/time.hh"
46#include "mem/mem_object.hh"
47#include "params/CommMonitor.hh"
1/*
2 * Copyright (c) 2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 31 unchanged lines hidden (view full) ---

40
41#ifndef __MEM_COMM_MONITOR_HH__
42#define __MEM_COMM_MONITOR_HH__
43
44#include "base/statistics.hh"
45#include "base/time.hh"
46#include "mem/mem_object.hh"
47#include "params/CommMonitor.hh"
48#include "proto/protoio.hh"
48
49/**
50 * The communication monitor is a MemObject which can monitor statistics of
51 * the communication happening between two ports in the memory system.
52 *
53 * Currently the following stats are implemented: Histograms of read/write
54 * transactions, read/write burst lengths, read/write bandwidth,
55 * outstanding read/write requests, read latency and inter transaction time

--- 14 unchanged lines hidden (view full) ---

70 /**
71 * Constructor based on the Python params
72 *
73 * @param params Python parameters
74 */
75 CommMonitor(Params* params);
76
77 /** Destructor */
49
50/**
51 * The communication monitor is a MemObject which can monitor statistics of
52 * the communication happening between two ports in the memory system.
53 *
54 * Currently the following stats are implemented: Histograms of read/write
55 * transactions, read/write burst lengths, read/write bandwidth,
56 * outstanding read/write requests, read latency and inter transaction time

--- 14 unchanged lines hidden (view full) ---

71 /**
72 * Constructor based on the Python params
73 *
74 * @param params Python parameters
75 */
76 CommMonitor(Params* params);
77
78 /** Destructor */
78 ~CommMonitor() { }
79 ~CommMonitor() {}
79
80
81 /**
82 * Callback to flush and close all open output streams on exit. If
83 * we were calling the destructor it could be done there.
84 */
85 void closeStreams();
86
80 virtual BaseMasterPort& getMasterPort(const std::string& if_name,
81 PortID idx = InvalidPortID);
82
83 virtual BaseSlavePort& getSlavePort(const std::string& if_name,
84 PortID idx = InvalidPortID);
85
86 virtual void init();
87

--- 334 unchanged lines hidden (view full) ---

422 /** Address mask for sources of read accesses to be captured */
423 Addr readAddrMask;
424
425 /** Address mask for sources of write accesses to be captured */
426 Addr writeAddrMask;
427
428 /** Instantiate stats */
429 MonitorStats stats;
87 virtual BaseMasterPort& getMasterPort(const std::string& if_name,
88 PortID idx = InvalidPortID);
89
90 virtual BaseSlavePort& getSlavePort(const std::string& if_name,
91 PortID idx = InvalidPortID);
92
93 virtual void init();
94

--- 334 unchanged lines hidden (view full) ---

429 /** Address mask for sources of read accesses to be captured */
430 Addr readAddrMask;
431
432 /** Address mask for sources of write accesses to be captured */
433 Addr writeAddrMask;
434
435 /** Instantiate stats */
436 MonitorStats stats;
437
438 /** Output stream for a potential trace. */
439 ProtoOutputStream* traceStream;
430};
431
432#endif //__MEM_COMM_MONITOR_HH__
440};
441
442#endif //__MEM_COMM_MONITOR_HH__