gem5  v20.1.0.0
Classes | Public Member Functions | Public Attributes | Protected Attributes | Friends | List of all members
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 QueueEntry:
Packet::SenderState MSHR 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 ()
 
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 Packet::SenderState
 SenderState ()
 
virtual ~SenderState ()
 

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 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 58 of file queue_entry.hh.

Constructor & Destructor Documentation

◆ QueueEntry()

QueueEntry::QueueEntry ( )
inline

Definition at line 119 of file queue_entry.hh.

Member Function Documentation

◆ conflictAddr()

virtual bool 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 MSHR, and WriteQueueEntry.

◆ getTarget()

virtual Target* QueueEntry::getTarget ( )
pure virtual

Returns a pointer to the first target.

Returns
A pointer to the first target.

Implemented in MSHR, and WriteQueueEntry.

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

◆ isUncacheable()

bool QueueEntry::isUncacheable ( ) const
inline

Definition at line 124 of file queue_entry.hh.

References _isUncacheable.

Referenced by Cache::recvTimingSnoopReq().

◆ matchBlockAddr() [1/2]

virtual bool 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 MSHR, and WriteQueueEntry.

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

◆ matchBlockAddr() [2/2]

virtual bool 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 MSHR, and WriteQueueEntry.

◆ sendPacket()

virtual bool 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 MSHR, and WriteQueueEntry.

Referenced by 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 65 of file queue_entry.hh.

Member Data Documentation

◆ _isUncacheable

bool QueueEntry::_isUncacheable
protected

True if the entry is uncacheable.

Definition at line 73 of file queue_entry.hh.

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

◆ blkAddr

Addr QueueEntry::blkAddr

◆ blkSize

unsigned QueueEntry::blkSize

◆ inService

bool QueueEntry::inService

◆ isSecure

bool QueueEntry::isSecure

◆ order

Counter QueueEntry::order

Order number assigned to disambiguate writes and misses.

Definition at line 108 of file queue_entry.hh.

Referenced by WriteQueueEntry::TargetList::add(), MSHR::TargetList::add(), WriteQueueEntry::allocate(), MSHR::allocate(), BaseCache::getNextQueueEntry(), and MSHR::promoteDeferredTargets().

◆ readyTime

Tick QueueEntry::readyTime
protected

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

Generated on Wed Sep 30 2020 14:02:29 for gem5 by doxygen 1.8.17