gem5
|
Write queue entry. More...
#include <write_queue_entry.hh>
Classes | |
class | Target |
class | TargetList |
Public Types | |
typedef std::list < WriteQueueEntry * > | List |
A list of write queue entriess. More... | |
typedef List::iterator | Iterator |
WriteQueueEntry list iterator. More... | |
Public Member Functions | |
bool | sendPacket (Cache &cache) |
Send this queue entry as a downstream packet, with the exact behaviour depending on the specific entry type. More... | |
WriteQueueEntry () | |
A simple constructor. More... | |
void | allocate (Addr blk_addr, unsigned blk_size, PacketPtr pkt, Tick when_ready, Counter _order) |
Allocate a miss to this entry. More... | |
void | deallocate () |
Mark this entry as free. More... | |
int | getNumTargets () const |
Returns the current number of allocated targets. More... | |
bool | hasTargets () const |
Returns true if there are targets left. More... | |
Target * | getTarget () |
Returns a reference to the first target. More... | |
void | popTarget () |
Pop first target. More... | |
bool | checkFunctional (PacketPtr pkt) |
void | print (std::ostream &os, int verbosity=0, const std::string &prefix="") const |
Prints the contents of this MSHR for debugging. More... | |
std::string | print () const |
A no-args wrapper of print(std::ostream...) meant to be invoked from DPRINTFs avoiding string overheads in fast mode. More... | |
Public Member Functions inherited from QueueEntry | |
QueueEntry () | |
bool | isUncacheable () const |
Public Member Functions inherited from Packet::SenderState | |
SenderState () | |
virtual | ~SenderState () |
Public Member Functions inherited from Printable | |
Printable () | |
virtual | ~Printable () |
Private Attributes | |
Iterator | readyIter |
Pointer to this entry on the ready list. More... | |
Iterator | allocIter |
Pointer to this entry on the allocated list. More... | |
TargetList | targets |
List of all requests that match the address. More... | |
Friends | |
template<typename Entry > | |
class | Queue |
Consider the queues friends to avoid making everything public. More... | |
class | WriteQueue |
Additional Inherited Members | |
Public Attributes inherited from QueueEntry | |
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 inherited from QueueEntry | |
Tick | readyTime |
Tick when ready to issue. More... | |
bool | _isUncacheable |
True if the entry is uncacheable. More... | |
Write queue entry.
Definition at line 62 of file write_queue_entry.hh.
typedef List::iterator WriteQueueEntry::Iterator |
WriteQueueEntry list iterator.
Definition at line 102 of file write_queue_entry.hh.
typedef std::list<WriteQueueEntry *> WriteQueueEntry::List |
A list of write queue entriess.
Definition at line 100 of file write_queue_entry.hh.
|
inline |
A simple constructor.
Definition at line 126 of file write_queue_entry.hh.
void WriteQueueEntry::allocate | ( | Addr | blk_addr, |
unsigned | blk_size, | ||
PacketPtr | pkt, | ||
Tick | when_ready, | ||
Counter | _order | ||
) |
Allocate a miss to this entry.
blk_addr | The address of the block. |
blk_size | The number of bytes to request. |
pkt | The original write. |
when_ready | When should the write be sent out. |
_order | The logical order of this write. |
Definition at line 96 of file write_queue_entry.cc.
References Packet::isEviction(), Packet::isSecure(), Request::isUncacheable(), Packet::isWrite(), panic_if(), and Packet::req.
bool WriteQueueEntry::checkFunctional | ( | PacketPtr | pkt | ) |
Definition at line 129 of file write_queue_entry.cc.
References Packet::checkFunctional(), and Packet::isPrint().
void WriteQueueEntry::deallocate | ( | ) |
Mark this entry as free.
Definition at line 122 of file write_queue_entry.cc.
|
inline |
Returns the current number of allocated targets.
Definition at line 149 of file write_queue_entry.hh.
References targets.
Referenced by Cache::access(), and Cache::recvTimingSnoopReq().
|
inline |
Returns a reference to the first target.
Definition at line 162 of file write_queue_entry.hh.
References hasTargets(), and targets.
Referenced by Cache::access(), Cache::recvTimingSnoopReq(), and Cache::sendWriteQueuePacket().
|
inline |
Returns true if there are targets left.
Definition at line 156 of file write_queue_entry.hh.
References targets.
Referenced by getTarget().
|
inline |
Pop first target.
Definition at line 171 of file write_queue_entry.hh.
References targets.
Referenced by WriteQueue::markInService().
|
virtual |
Prints the contents of this MSHR for debugging.
Implements Printable.
Definition at line 149 of file write_queue_entry.cc.
References ccprintf().
std::string WriteQueueEntry::print | ( | ) | const |
A no-args wrapper of print(std::ostream...) meant to be invoked from DPRINTFs avoiding string overheads in fast mode.
Definition at line 163 of file write_queue_entry.cc.
|
virtual |
Send this queue entry as a downstream packet, with the exact behaviour depending on the specific entry type.
Implements QueueEntry.
Definition at line 143 of file write_queue_entry.cc.
References Cache::sendWriteQueuePacket().
|
friend |
Consider the queues friends to avoid making everything public.
Definition at line 69 of file write_queue_entry.hh.
|
friend |
Definition at line 70 of file write_queue_entry.hh.
|
private |
Pointer to this entry on the allocated list.
Definition at line 118 of file write_queue_entry.hh.
|
private |
Pointer to this entry on the ready list.
Definition at line 112 of file write_queue_entry.hh.
|
private |
List of all requests that match the address.
Definition at line 121 of file write_queue_entry.hh.
Referenced by getNumTargets(), getTarget(), hasTargets(), and popTarget().