Go to the documentation of this file.
40 #ifndef __MEM_COMM_MONITOR_HH__
41 #define __MEM_COMM_MONITOR_HH__
45 #include "params/CommMonitor.hh"
388 bool expects_response);
429 #endif //__MEM_COMM_MONITOR_HH__
Stats::SparseHistogram writeAddrDist
Histogram of number of write accesses to addresses over time.
void samplePeriodic()
This function is called periodically at the end of each time bin.
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
~CommMonitorSenderState()
Destructor.
A ResponsePort is a specialization of a port.
void updateReqStats(const ProbePoints::PacketInfo &pkt, bool is_atomic, bool expects_response)
bool disableBurstLengthHists
Disable flag for burst length histograms.
void startup() override
startup() is the final initialization call before simulation.
The communication monitor is a SimObject which can monitor statistics of the communication happening ...
Tick recvAtomic(PacketPtr pkt)
Stats declarations, all in a struct for convenience.
Stats::Histogram writeBurstLengthHist
Histogram of write burst lengths.
bool recvTimingSnoopResp(PacketPtr pkt)
const PortID InvalidPortID
This is the CPU-side port of the communication monitor.
MonitorRequestPort memSidePort
Instance of request port, facing the memory side.
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
Tick transmitTime
Tick when request is transmitted.
bool recvTimingReq(PacketPtr pkt)
unsigned int readBytes
Histogram for read bandwidth per sample window.
void recvFunctionalSnoop(PacketPtr pkt)
bool disableTransactionHists
Disable flag for transaction histograms.
unsigned int outstandingWriteReqs
unsigned int writtenBytes
Histogram for write bandwidth per sample window.
uint64_t Tick
Tick count type.
const Params * params() const
EventFunctionWrapper samplePeriodicEvent
Periodic event called at the end of each simulation time bin.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
Stats::Histogram writeBandwidthHist
void recvRetrySnoopResp()
Stats::Histogram outstandingWritesHist
Histogram of outstanding write requests.
Stats::Distribution ittWriteWrite
Stats::Histogram writeLatencyHist
Histogram of write request-to-response latencies.
bool tryTiming(PacketPtr pkt)
Availability request from the peer.
MonitorResponsePort cpuSidePort
Instance of response port, i.e.
bool disableBandwidthHists
Disable flag for the bandwidth histograms.
void recvFunctional(PacketPtr pkt)
bool disableLatencyHists
Disable flag for latency histograms.
Stats::Histogram readTransHist
Histogram of number of read transactions per time bin.
Stats::Histogram readBandwidthHist
bool disableITTDists
Disable flag for ITT distributions.
void recvRangeChange()
Called to receive an address range change from the peer response port.
CommMonitor(Params *params)
Constructor based on the Python params.
void regProbePoints() override
Register probe points for this object.
bool disableAddrDists
Disable flag for address distributions.
CommMonitorSenderState(Tick _transmitTime)
Construct a new sender state and store the time so we can calculate round-trip latency.
Stats::Formula averageWriteBandwidth
This is a simple scalar statistic, like a counter.
CommMonitorParams Params
Parameters of communication monitor.
bool recvTimingResp(PacketPtr pkt)
A virtual base opaque structure used to hold state associated with the packet (e.g....
const Addr readAddrMask
Address mask for sources of read accesses to be captured.
void recvFunctional(PacketPtr pkt)
Receive a functional request packet from the peer.
Stats::Histogram outstandingReadsHist
Histogram of outstanding read requests.
bool disableOutstandingHists
Disable flag for outstanding histograms.
Stats::Histogram writeTransHist
Histogram of number of timing write transactions per time bin.
Ports are used to interface objects to each other.
void recvFunctionalSnoop(PacketPtr pkt)
Receive a functional snoop request packet from the peer.
bool isSnooping() const
Determine if this request port is snooping or not.
void recvRespRetry()
Called by the peer if sendTimingResp was called on this protocol (causing recvTimingResp to be called...
AddrRangeList getAddrRanges() const
Get a list of the non-overlapping address ranges the owner is responsible for.
Stats::Histogram readBurstLengthHist
Histogram of read burst lengths.
ProbePoints::PacketUPtr ppPktReq
Successfully forwarded request packet.
void recvRetrySnoopResp()
Called by the peer if sendTimingSnoopResp was called on this protocol (causing recvTimingSnoopResp to...
This is the request port of the communication monitor.
Tick recvAtomicSnoop(PacketPtr pkt)
Receive an atomic snoop request packet from our peer.
Stats::Scalar totalReadBytes
MonitorRequestPort(const std::string &_name, CommMonitor &_mon)
Stats::SparseHistogram readAddrDist
Histogram of number of read accesses to addresses over time.
bool recvTimingSnoopResp(PacketPtr pkt)
Receive a timing snoop response from the peer.
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
MonitorStats(Stats::Group *parent, const CommMonitorParams *params)
Create the monitor stats and initialise all the members that are not statistics themselves,...
bool tryTiming(PacketPtr pkt)
Sender state class for the monitor so that we can annotate packets with a transmit time and receive t...
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
A simple distribution stat.
bool recvTimingReq(PacketPtr pkt)
Receive a timing request from the peer.
ProbePoints::PacketUPtr ppPktResp
Successfully forwarded response packet.
const double samplePeriod
Sample period in seconds.
const SimObjectParams * _params
Cached copy of the object parameters.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Tick recvAtomic(PacketPtr pkt)
Receive an atomic request packet from the peer.
Stats::Distribution ittReqReq
Stats::Scalar totalWrittenBytes
const Addr writeAddrMask
Address mask for sources of write accesses to be captured.
Tick recvAtomicSnoop(PacketPtr pkt)
Stats::Histogram readLatencyHist
Histogram of read request-to-response latencies.
void recvTimingSnoopReq(PacketPtr pkt)
void updateRespStats(const ProbePoints::PacketInfo &pkt, Tick latency, bool is_atomic)
Stats::Distribution ittReadRead
Inter transaction time (ITT) distributions.
std::unique_ptr< Packet > PacketUPtr
AddrRangeList getAddrRanges() const
MonitorStats stats
Instantiate stats.
A struct to hold on to the essential fields from a packet, so that the packet and underlying request ...
MonitorResponsePort(const std::string &_name, CommMonitor &_mon)
const Tick samplePeriodTicks
Length of simulation time bin.
Stats::Formula averageReadBandwidth
unsigned int outstandingReadReqs
void recvTimingSnoopReq(PacketPtr pkt)
Receive a timing snoop request from the peer.
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
Abstract superclass for simulation objects.
Generated on Wed Sep 30 2020 14:02:13 for gem5 by doxygen 1.8.17