gem5
v20.1.0.0
|
Least Recently Granted Queue Policy It selects packets from the queue with a round robin-like policy: using the requestor id as a switching parameter rather than switching over a time quantum. More...
#include <q_policy.hh>
Public Member Functions | |
LrgQueuePolicy (const QoSMemCtrlParams *p) | |
void | enqueuePacket (PacketPtr pkt) override |
This method is called by the memory controller after it enqueues a packet. More... | |
PacketQueue::iterator | selectPacket (PacketQueue *queue) override |
Implements LRG packet select policy. More... | |
Public Member Functions inherited from QoS::QueuePolicy | |
void | setMemCtrl (MemCtrl *mem) |
Setting a pointer to the Memory Controller implementing the policy. More... | |
virtual | ~QueuePolicy () |
Protected Attributes | |
std::list< RequestorID > | toServe |
Support structure for lrg algorithms: keeps track of serviced requestors, always serve the front element. More... | |
Protected Attributes inherited from QoS::QueuePolicy | |
MemCtrl * | memCtrl |
Pointer to parent memory controller implementing the policy. More... | |
Additional Inherited Members | |
Public Types inherited from QoS::QueuePolicy | |
typedef std::deque< PacketPtr > | PacketQueue |
Static Public Member Functions inherited from QoS::QueuePolicy | |
static QueuePolicy * | create (const QoSMemCtrlParams *p) |
This factory method is used for generating the queue policy. More... | |
Protected Member Functions inherited from QoS::QueuePolicy | |
QueuePolicy (const QoSMemCtrlParams *p) | |
Least Recently Granted Queue Policy It selects packets from the queue with a round robin-like policy: using the requestor id as a switching parameter rather than switching over a time quantum.
Definition at line 161 of file q_policy.hh.
|
inline |
Definition at line 164 of file q_policy.hh.
|
overridevirtual |
This method is called by the memory controller after it enqueues a packet.
It is a way for the queue policy to hook into the packet enqueuing and update relevant metadata. This will then be used once the QueuePolicy::selectPacket will be called.
pkt | Enqueued packet |
Reimplemented from QoS::QueuePolicy.
Definition at line 139 of file q_policy.cc.
References QoS::MemCtrl::hasRequestor(), QoS::QueuePolicy::memCtrl, Packet::requestorId(), and toServe.
|
overridevirtual |
Implements LRG packet select policy.
queue | The queue in which to select a packet |
Implements QoS::QueuePolicy.
Definition at line 66 of file q_policy.cc.
References DPRINTF, QoS::MemCtrl::hasRequestor(), QoS::QueuePolicy::memCtrl, panic_if, ArmISA::q, and toServe.
|
protected |
Support structure for lrg algorithms: keeps track of serviced requestors, always serve the front element.
Definition at line 185 of file q_policy.hh.
Referenced by enqueuePacket(), and selectPacket().