gem5  v20.1.0.0
Public Member Functions | Protected Attributes | List of all members
QoS::LrgQueuePolicy Class Reference

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>

Inheritance diagram for QoS::LrgQueuePolicy:
QoS::QueuePolicy

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< RequestorIDtoServe
 Support structure for lrg algorithms: keeps track of serviced requestors, always serve the front element. More...
 
- Protected Attributes inherited from QoS::QueuePolicy
MemCtrlmemCtrl
 Pointer to parent memory controller implementing the policy. More...
 

Additional Inherited Members

- Public Types inherited from QoS::QueuePolicy
typedef std::deque< PacketPtrPacketQueue
 
- Static Public Member Functions inherited from QoS::QueuePolicy
static QueuePolicycreate (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)
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ LrgQueuePolicy()

QoS::LrgQueuePolicy::LrgQueuePolicy ( const QoSMemCtrlParams *  p)
inline

Definition at line 164 of file q_policy.hh.

Member Function Documentation

◆ enqueuePacket()

void QoS::LrgQueuePolicy::enqueuePacket ( PacketPtr  pkt)
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.

Parameters
pktEnqueued 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.

◆ selectPacket()

QueuePolicy::PacketQueue::iterator QoS::LrgQueuePolicy::selectPacket ( PacketQueue queue)
overridevirtual

Implements LRG packet select policy.

Parameters
queueThe queue in which to select a packet
Returns
Iterator to the selected 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.

Member Data Documentation

◆ toServe

std::list<RequestorID> QoS::LrgQueuePolicy::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().


The documentation for this class was generated from the following files:

Generated on Wed Sep 30 2020 14:03:08 for gem5 by doxygen 1.8.17