38#ifndef __MEM_QOS_Q_POLICY_HH__
39#define __MEM_QOS_Q_POLICY_HH__
43#include <unordered_set>
48#include "params/QoSMemCtrl.hh"
133 PacketQueue::iterator
151 PacketQueue::iterator
176 PacketQueue::iterator
A packet queue is a class that holds deferred packets and later sends them using the associated CPU-s...
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
First In First Out Queue Policy.
FifoQueuePolicy(const QoSMemCtrlParams &p)
PacketQueue::iterator selectPacket(PacketQueue *queue) override
Implements FCFS packet select policy.
Last In First Out Queue Policy.
PacketQueue::iterator selectPacket(PacketQueue *queue) override
Implements LIFO packet select policy.
LifoQueuePolicy(const QoSMemCtrlParams &p)
Least Recently Granted Queue Policy It selects packets from the queue with a round robin-like policy:...
void enqueuePacket(PacketPtr pkt) override
This method is called by the memory controller after it enqueues a packet.
LrgQueuePolicy(const QoSMemCtrlParams &p)
PacketQueue::iterator selectPacket(PacketQueue *queue) override
Implements LRG packet select policy.
std::list< RequestorID > toServe
Support structure for lrg algorithms: keeps track of serviced requestors, always serve the front elem...
The qos::MemCtrl is a base class for Memory objects which support QoS - it provides access to a set o...
static QueuePolicy * create(const QoSMemCtrlParams &p)
This factory method is used for generating the queue policy.
MemCtrl * memCtrl
Pointer to parent memory controller implementing the policy.
void setMemCtrl(MemCtrl *mem)
Setting a pointer to the Memory Controller implementing the policy.
QueuePolicy(const QoSMemCtrlParams &p)
std::deque< PacketPtr > PacketQueue
virtual void enqueuePacket(PacketPtr pkt)
This method is called by the memory controller after it enqueues a packet.
virtual PacketQueue::iterator selectPacket(PacketQueue *queue)=0
Policy selector.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Declaration of the Packet class.