Go to the documentation of this file.
41 #ifndef __MEM_QOS_MEM_SINK_HH__
42 #define __MEM_QOS_MEM_SINK_HH__
47 #include "params/QoSMemSinkCtrl.hh"
49 class QoSMemSinkInterfaceParams;
149 void init()
override;
AddrRangeList getAddrRanges() const
Gets the configured address ranges for this port.
RespPacketQueue queue
Outgoing packet responses queue.
void setMemCtrl(QoS::MemSinkCtrl *_ctrl)
Setting a pointer to the interface.
The QoS::MemCtrl is a base class for Memory objects which support QoS - it provides access to a set o...
QoSMemSinkInterface(const QoSMemSinkInterfaceParams *_p)
QoSMemSinkInterface *const interface
Create pointer to interface of actual media.
const PortID InvalidPortID
EventWrapper< MemSinkCtrl, &MemSinkCtrl::processNextReqEvent > nextReqEvent
Event wrapper to schedule next request handler function.
void processNextReqEvent()
Processes the next Request event according to configured request latency.
std::vector< PacketQueue > readQueue
QoS-aware (per priority) incoming read requests packets queue.
MemoryPort(const std::string &, MemSinkCtrl &)
Constructor.
bool writeQueueFull(const uint64_t packets) const
Check if the write queue has room for more entries.
uint64_t Tick
Tick count type.
const uint64_t readBufferSize
Read request packets queue buffer size in #packets.
bool recvTimingReq(PacketPtr pkt)
Receive a Packet in Timing mode.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
void recvFunctional(PacketPtr pkt)
Receive a Packet in Functional mode.
void recvFunctional(PacketPtr pkt)
Receive a Packet in Functional mode.
DrainState
Object drain/handover states.
This is a simple scalar statistic, like a counter.
An abstract memory represents a contiguous block of physical memory, with an associated address range...
bool recvTimingReq(PacketPtr pkt)
Receive a Packet in Timing mode.
Tick recvAtomic(PacketPtr pkt)
Receive a Packet in Atomic mode.
Ports are used to interface objects to each other.
Stats::Scalar numReadRetries
Count the number of read retries.
MemSinkCtrl(const QoSMemSinkCtrlParams *)
QoS Memory Sink Constructor.
void init() override
Initializes this object.
Port & getPort(const std::string &if_name, PortID=InvalidPortID) override
Getter method to access this memory's response port.
A queued port is a port that has an infinite queue for outgoing packets and thus decouples the module...
DrainState drain() override
Checks and return the Drain state of this SimObject.
const uint64_t writeBufferSize
Write request packets queue buffer size in #packets.
bool readQueueFull(const uint64_t packets) const
Check if the read queue has room for more entries.
std::vector< PacketQueue > writeQueue
QoS-aware (per priority) incoming read requests packets queue.
const uint64_t memoryPacketSize
Memory packet size in bytes.
bool retryRdReq
Read request pending.
void regStats() override
Registers statistics.
MemoryPort port
Memory response port.
Tick recvAtomic(PacketPtr pkt)
Receive a Packet in Atomic mode.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Tick nextRequest
Next request service time.
QoS::MemSinkCtrl * ctrl
Pointer to the controller.
MemSinkCtrl & memory
reference to parent memory object
bool retryWrReq
Write request pending.
const Tick requestLatency
Memory between requests latency (ticks)
const Tick responseLatency
Memory response latency (ticks)
Stats::Scalar numWriteRetries
Count the number of write retries.
Generated on Wed Sep 30 2020 14:02:13 for gem5 by doxygen 1.8.17