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__ |