|
gem5 [DEVELOP-FOR-25.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.
References gem5::MipsISA::p, and gem5::memory::qos::QueuePolicy::QueuePolicy().
|
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::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::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().