|
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().