gem5 v24.0.0.0
|
A queue entry base class, to be used by both the MSHRs and write-queue entries. More...
#include <queue_entry.hh>
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. | |
virtual bool | matchBlockAddr (const PacketPtr pkt) const =0 |
Check if entry contains a packet that corresponds to the one being looked for. | |
virtual bool | conflictAddr (const QueueEntry *entry) const =0 |
Check if given entry's packets conflict with this' entries packets. | |
virtual bool | sendPacket (BaseCache &cache)=0 |
Send this queue entry as a downstream packet, with the exact behaviour depending on the specific entry type. | |
virtual Target * | getTarget ()=0 |
Returns a pointer to the first target. | |
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. | |
Counter | order |
Order number assigned to disambiguate writes and misses. | |
Addr | blkAddr |
Block aligned address. | |
unsigned | blkSize |
Block size of the cache. | |
bool | isSecure |
True if the entry targets the secure memory space. | |
Public Attributes inherited from gem5::Packet::SenderState | |
SenderState * | predecessor |
Protected Attributes | |
Tick | readyTime |
Tick when ready to issue. | |
bool | _isUncacheable |
True if the entry is uncacheable. | |
Friends | |
template<class Entry > | |
class | Queue |
Consider the Queue a friend to avoid making everything public. | |
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.
|
inline |
Definition at line 124 of file queue_entry.hh.
|
pure virtual |
Check if given entry's packets conflict with this' entries packets.
entry | Other entry to compare against. |
Implemented in gem5::MSHR, and gem5::WriteQueueEntry.
|
pure virtual |
Returns a pointer to the first target.
Implemented in gem5::MSHR, and gem5::WriteQueueEntry.
Referenced by gem5::BaseCache::CacheReqPacketQueue::sendDeferredPacket().
|
inline |
Definition at line 130 of file queue_entry.hh.
References _isUncacheable.
Referenced by gem5::Cache::recvTimingSnoopReq().
|
pure virtual |
Check if entry corresponds to the one being looked for.
addr | Address to match against. |
is_secure | Whether the target should be in secure space or not. |
Implemented in gem5::MSHR, and gem5::WriteQueueEntry.
Referenced by gem5::MSHR::conflictAddr(), and gem5::WriteQueueEntry::conflictAddr().
|
pure virtual |
Check if entry contains a packet that corresponds to the one being looked for.
pkt | The packet to search for. |
Implemented in gem5::MSHR, and gem5::WriteQueueEntry.
|
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().
|
friend |
Consider the Queue a friend to avoid making everything public.
Definition at line 69 of file queue_entry.hh.
|
protected |
True if the entry is uncacheable.
Definition at line 77 of file queue_entry.hh.
Referenced by gem5::MSHR::allocate(), gem5::WriteQueueEntry::allocate(), isUncacheable(), gem5::MSHR::print(), and gem5::WriteQueueEntry::print().
Addr gem5::QueueEntry::blkAddr |
Block aligned address.
Definition at line 116 of file queue_entry.hh.
Referenced by gem5::MSHR::allocate(), gem5::WriteQueueEntry::allocate(), gem5::MSHR::conflictAddr(), gem5::WriteQueueEntry::conflictAddr(), gem5::MSHR::extractServiceableTargets(), gem5::MSHR::matchBlockAddr(), gem5::MSHR::matchBlockAddr(), gem5::WriteQueueEntry::matchBlockAddr(), gem5::WriteQueueEntry::matchBlockAddr(), gem5::MSHR::print(), gem5::WriteQueueEntry::print(), gem5::BaseCache::sendMSHRQueuePacket(), gem5::Cache::sendMSHRQueuePacket(), gem5::MSHR::trySatisfyFunctional(), and gem5::WriteQueueEntry::trySatisfyFunctional().
unsigned gem5::QueueEntry::blkSize |
Block size of the cache.
Definition at line 119 of file queue_entry.hh.
Referenced by gem5::MSHR::allocate(), gem5::WriteQueueEntry::allocate(), gem5::MSHR::extractServiceableTargets(), gem5::MSHR::handleSnoop(), gem5::MSHR::matchBlockAddr(), gem5::WriteQueueEntry::matchBlockAddr(), gem5::MSHR::print(), gem5::WriteQueueEntry::print(), gem5::MSHR::trySatisfyFunctional(), gem5::WriteQueueEntry::trySatisfyFunctional(), and gem5::MSHR::TargetList::updateWriteFlags().
bool gem5::QueueEntry::inService |
True if the entry has been sent downstream.
Definition at line 110 of file queue_entry.hh.
Referenced by gem5::MSHR::allocate(), gem5::WriteQueueEntry::allocate(), gem5::MSHR::allocateTarget(), gem5::BaseCache::allocateWriteBuffer(), gem5::MSHR::deallocate(), gem5::WriteQueueEntry::deallocate(), gem5::BaseCache::functionalAccess(), gem5::MSHR::handleSnoop(), gem5::MSHR::hasPostDowngrade(), gem5::MSHR::hasPostInvalidate(), gem5::MSHR::isPendingModified(), gem5::MSHR::markInService(), gem5::MSHRQueue::markPending(), gem5::MSHRQueue::moveToFront(), gem5::MSHR::print(), and gem5::WriteQueueEntry::print().
bool gem5::QueueEntry::isSecure |
True if the entry targets the secure memory space.
Definition at line 122 of file queue_entry.hh.
Referenced by gem5::MSHR::allocate(), gem5::WriteQueueEntry::allocate(), gem5::MSHR::conflictAddr(), gem5::WriteQueueEntry::conflictAddr(), gem5::MSHR::matchBlockAddr(), gem5::MSHR::matchBlockAddr(), gem5::WriteQueueEntry::matchBlockAddr(), gem5::WriteQueueEntry::matchBlockAddr(), gem5::MSHR::print(), gem5::WriteQueueEntry::print(), gem5::BaseCache::sendMSHRQueuePacket(), gem5::Cache::sendMSHRQueuePacket(), gem5::MSHR::trySatisfyFunctional(), and gem5::WriteQueueEntry::trySatisfyFunctional().
Counter gem5::QueueEntry::order |
Order number assigned to disambiguate writes and misses.
Definition at line 113 of file queue_entry.hh.
Referenced by gem5::MSHR::TargetList::add(), gem5::WriteQueueEntry::TargetList::add(), gem5::MSHR::allocate(), gem5::WriteQueueEntry::allocate(), gem5::BaseCache::getNextQueueEntry(), and gem5::MSHR::promoteDeferredTargets().
|
protected |
Tick when ready to issue.
Definition at line 74 of file queue_entry.hh.
Referenced by gem5::MSHR::TargetList::add(), gem5::WriteQueueEntry::TargetList::add(), gem5::MSHR::allocate(), gem5::WriteQueueEntry::allocate(), gem5::MSHR::delay(), and gem5::MSHR::promoteDeferredTargets().