gem5 v24.0.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. | |
PacketQueue::iterator | selectPacket (PacketQueue *queue) override |
Implements LRG packet select policy. | |
Public Member Functions inherited from gem5::memory::qos::QueuePolicy | |
void | setMemCtrl (MemCtrl *mem) |
Setting a pointer to the Memory Controller implementing the policy. | |
virtual | ~QueuePolicy () |
Protected Attributes | |
std::list< RequestorID > | toServe |
Support structure for lrg algorithms: keeps track of serviced requestors, always serve the front element. | |
Protected Attributes inherited from gem5::memory::qos::QueuePolicy | |
MemCtrl * | memCtrl |
Pointer to parent memory controller implementing the policy. | |
Additional Inherited Members | |
Public Types inherited from gem5::memory::qos::QueuePolicy | |
typedef std::deque< PacketPtr > | PacketQueue |
Static Public Member Functions inherited from gem5::memory::qos::QueuePolicy | |
static QueuePolicy * | create (const QoSMemCtrlParams &p) |
This factory method is used for generating the queue policy. | |
Protected Member Functions inherited from gem5::memory::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 gem5::memory::qos::QueuePolicy.
Definition at line 163 of file q_policy.cc.
References gem5::memory::qos::MemCtrl::hasRequestor(), gem5::memory::qos::QueuePolicy::memCtrl, gem5::Packet::requestorId(), and toServe.
|
overridevirtual |
Implements LRG packet select policy.
queue | The non-empty queue from which to select a packet |
Implements gem5::memory::qos::QueuePolicy.
Definition at line 89 of file q_policy.cc.
References DPRINTF, gem5::memory::qos::MemCtrl::hasRequestor(), gem5::memory::qos::QueuePolicy::memCtrl, panic_if, gem5::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().