gem5
v20.1.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 () | |
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 Target * | getTarget ()=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 | |
SenderState * | predecessor |
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... | |
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.
|
inline |
Definition at line 119 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 MSHR, and WriteQueueEntry.
|
pure virtual |
Returns a pointer to the first target.
Implemented in MSHR, and WriteQueueEntry.
Referenced by BaseCache::CacheReqPacketQueue::sendDeferredPacket().
|
inline |
Definition at line 124 of file queue_entry.hh.
References _isUncacheable.
Referenced by 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 MSHR, and WriteQueueEntry.
Referenced by WriteQueueEntry::conflictAddr(), and MSHR::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 MSHR, and WriteQueueEntry.
|
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().
|
friend |
Consider the Queue a friend to avoid making everything public.
Definition at line 65 of file queue_entry.hh.
|
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().
Addr QueueEntry::blkAddr |
Block aligned address.
Definition at line 111 of file queue_entry.hh.
Referenced by WriteQueueEntry::allocate(), MSHR::allocate(), WriteQueueEntry::conflictAddr(), MSHR::conflictAddr(), MSHR::extractServiceableTargets(), WriteQueueEntry::matchBlockAddr(), MSHR::matchBlockAddr(), WriteQueueEntry::print(), MSHR::print(), Cache::sendMSHRQueuePacket(), BaseCache::sendMSHRQueuePacket(), WriteQueueEntry::trySatisfyFunctional(), and MSHR::trySatisfyFunctional().
unsigned QueueEntry::blkSize |
Block size of the cache.
Definition at line 114 of file queue_entry.hh.
Referenced by WriteQueueEntry::allocate(), MSHR::allocate(), MSHR::extractServiceableTargets(), MSHR::handleSnoop(), WriteQueueEntry::matchBlockAddr(), MSHR::matchBlockAddr(), WriteQueueEntry::print(), MSHR::print(), WriteQueueEntry::trySatisfyFunctional(), MSHR::trySatisfyFunctional(), and MSHR::TargetList::updateWriteFlags().
bool QueueEntry::inService |
True if the entry has been sent downstream.
Definition at line 105 of file queue_entry.hh.
Referenced by WriteQueueEntry::allocate(), MSHR::allocate(), MSHR::allocateTarget(), BaseCache::allocateWriteBuffer(), WriteQueueEntry::deallocate(), MSHR::deallocate(), BaseCache::functionalAccess(), MSHR::handleSnoop(), MSHR::hasPostDowngrade(), MSHR::hasPostInvalidate(), MSHR::isPendingModified(), MSHR::markInService(), MSHRQueue::markPending(), MSHRQueue::moveToFront(), WriteQueueEntry::print(), and MSHR::print().
bool QueueEntry::isSecure |
True if the entry targets the secure memory space.
Definition at line 117 of file queue_entry.hh.
Referenced by WriteQueueEntry::allocate(), MSHR::allocate(), WriteQueueEntry::conflictAddr(), MSHR::conflictAddr(), WriteQueueEntry::matchBlockAddr(), MSHR::matchBlockAddr(), WriteQueueEntry::print(), MSHR::print(), Cache::sendMSHRQueuePacket(), BaseCache::sendMSHRQueuePacket(), WriteQueueEntry::trySatisfyFunctional(), and MSHR::trySatisfyFunctional().
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().
|
protected |
Tick when ready to issue.
Definition at line 70 of file queue_entry.hh.
Referenced by WriteQueueEntry::TargetList::add(), MSHR::TargetList::add(), WriteQueueEntry::allocate(), MSHR::allocate(), MSHR::delay(), and MSHR::promoteDeferredTargets().