40 #ifndef __MEM_QOS_Q_POLICY_HH__ 41 #define __MEM_QOS_Q_POLICY_HH__ 44 #include <unordered_set> 47 #include "params/QoSMemCtrl.hh" 94 virtual PacketQueue::iterator
selectPacket(PacketQueue* queue) = 0;
127 PacketQueue::iterator
148 PacketQueue::iterator
151 return queue->begin();
176 PacketQueue::iterator
MemCtrl * memCtrl
Pointer to parent memory controller implementing the policy.
Least Recently Granted Queue Policy It selects packets from the queue with a round robin-like policy:...
static QueuePolicy * create(const QoSMemCtrlParams *p)
This factory method is used for generating the queue policy.
std::list< MasterID > toServe
Support structure for lrg algorithms: keeps track of serviced masters, always serve the front element...
std::deque< PacketPtr > PacketQueue
First In First Out Queue Policy.
virtual void enqueuePacket(PacketPtr pkt)
This method is called by the memory controller after it enqueues a packet.
QueuePolicy(const QoSMemCtrlParams *p)
LrgQueuePolicy(const QoSMemCtrlParams *p)
Last In First Out Queue Policy.
LifoQueuePolicy(const QoSMemCtrlParams *p)
FifoQueuePolicy(const QoSMemCtrlParams *p)
PacketQueue::iterator selectPacket(PacketQueue *queue) override
Implements LIFO packet select policy.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
virtual PacketQueue::iterator selectPacket(PacketQueue *queue)=0
Policy selector.
void setMemCtrl(MemCtrl *mem)
Setting a pointer to the Memory Controller implementing the policy.
Declaration of the Packet class.
PacketQueue::iterator selectPacket(PacketQueue *queue) override
Implements FCFS packet select policy.
The QoS::MemCtrl is a base class for Memory objects which support QoS - it provides access to a set o...