gem5  v21.1.0.2
Classes | Public Member Functions | Public Attributes | Protected Attributes | Friends | List of all members
gem5::QueueEntry Class Referenceabstract

A queue entry base class, to be used by both the MSHRs and write-queue entries. More...

#include <queue_entry.hh>

Inheritance diagram for gem5::QueueEntry:
gem5::Packet::SenderState gem5::Named gem5::MSHR gem5::WriteQueueEntry

Classes

class  Target
 A queue entry is holding packets that will be serviced as soon as resources are available. More...
 

Public Member Functions

 QueueEntry (const std::string &name)
 
bool isUncacheable () const
 
virtual bool matchBlockAddr (const Addr addr, const bool is_secure) const =0
 Check if entry corresponds to the one being looked for. More...
 
virtual bool matchBlockAddr (const PacketPtr pkt) const =0
 Check if entry contains a packet that corresponds to the one being looked for. More...
 
virtual bool conflictAddr (const QueueEntry *entry) const =0
 Check if given entry's packets conflict with this' entries packets. More...
 
virtual bool sendPacket (BaseCache &cache)=0
 Send this queue entry as a downstream packet, with the exact behaviour depending on the specific entry type. More...
 
virtual TargetgetTarget ()=0
 Returns a pointer to the first target. More...
 
- Public Member Functions inherited from gem5::Packet::SenderState
 SenderState ()
 
virtual ~SenderState ()
 
- Public Member Functions inherited from gem5::Named
 Named (const std::string &name_)
 
virtual ~Named ()=default
 
virtual std::string name () const
 

Public Attributes

bool inService
 True if the entry has been sent downstream. More...
 
Counter order
 Order number assigned to disambiguate writes and misses. More...
 
Addr blkAddr
 Block aligned address. More...
 
unsigned blkSize
 Block size of the cache. More...
 
bool isSecure
 True if the entry targets the secure memory space. More...
 
- Public Attributes inherited from gem5::Packet::SenderState
SenderStatepredecessor
 

Protected Attributes

Tick readyTime
 Tick when ready to issue. More...
 
bool _isUncacheable
 True if the entry is uncacheable. More...
 

Friends

template<class Entry >
class Queue
 Consider the Queue a friend to avoid making everything public. More...
 

Detailed Description

A queue entry base class, to be used by both the MSHRs and write-queue entries.

Definition at line 62 of file queue_entry.hh.

Constructor & Destructor Documentation

◆ QueueEntry()

gem5::QueueEntry::QueueEntry ( const std::string &  name)
inline

Definition at line 124 of file queue_entry.hh.

Member Function Documentation

◆ conflictAddr()

virtual bool gem5::QueueEntry::conflictAddr ( const QueueEntry entry) const
pure virtual

Check if given entry's packets conflict with this' entries packets.

Parameters
entryOther entry to compare against.
Returns
True if entry matches given information.

Implemented in gem5::MSHR, and gem5::WriteQueueEntry.

◆ getTarget()

virtual Target* gem5::QueueEntry::getTarget ( )
pure virtual

Returns a pointer to the first target.

Returns
A pointer to the first target.

Implemented in gem5::MSHR, and gem5::WriteQueueEntry.

Referenced by gem5::BaseCache::CacheReqPacketQueue::sendDeferredPacket().

◆ isUncacheable()

bool gem5::QueueEntry::isUncacheable ( ) const
inline

Definition at line 130 of file queue_entry.hh.

References _isUncacheable.

Referenced by gem5::Cache::recvTimingSnoopReq().

◆ matchBlockAddr() [1/2]

virtual bool gem5::QueueEntry::matchBlockAddr ( const Addr  addr,
const bool  is_secure 
) const
pure virtual

Check if entry corresponds to the one being looked for.

Parameters
addrAddress to match against.
is_secureWhether the target should be in secure space or not.
Returns
True if entry matches given information.

Implemented in gem5::MSHR, and gem5::WriteQueueEntry.

Referenced by gem5::WriteQueueEntry::conflictAddr(), and gem5::MSHR::conflictAddr().

◆ matchBlockAddr() [2/2]

virtual bool gem5::QueueEntry::matchBlockAddr ( const PacketPtr  pkt) const
pure virtual

Check if entry contains a packet that corresponds to the one being looked for.

Parameters
pktThe packet to search for.
Returns
True if any of its targets' packets matches the given one.

Implemented in gem5::MSHR, and gem5::WriteQueueEntry.

◆ sendPacket()

virtual bool gem5::QueueEntry::sendPacket ( BaseCache cache)
pure virtual

Send this queue entry as a downstream packet, with the exact behaviour depending on the specific entry type.

Implemented in gem5::MSHR, and gem5::WriteQueueEntry.

Referenced by gem5::BaseCache::CacheReqPacketQueue::sendDeferredPacket().

Friends And Related Function Documentation

◆ Queue

template<class Entry >
friend class Queue
friend

Consider the Queue a friend to avoid making everything public.

Definition at line 69 of file queue_entry.hh.

Member Data Documentation

◆ _isUncacheable

bool gem5::QueueEntry::_isUncacheable
protected

True if the entry is uncacheable.

Definition at line 77 of file queue_entry.hh.

Referenced by gem5::WriteQueueEntry::allocate(), gem5::MSHR::allocate(), isUncacheable(), gem5::WriteQueueEntry::print(), and gem5::MSHR::print().

◆ blkAddr

Addr gem5::QueueEntry::blkAddr

◆ blkSize

unsigned gem5::QueueEntry::blkSize

◆ inService

bool gem5::QueueEntry::inService

◆ isSecure

bool gem5::QueueEntry::isSecure

◆ order

Counter gem5::QueueEntry::order

◆ readyTime

Tick gem5::QueueEntry::readyTime
protected

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

Generated on Tue Sep 21 2021 12:27:59 for gem5 by doxygen 1.8.17