|
gem5
v22.0.0.2
|
Override the default behaviour of sendDeferredPacket to enable the memory-side cache port to also send requests based on the current MSHR status. More...
#include <base.hh>
Public Member Functions | |
| CacheReqPacketQueue (BaseCache &cache, RequestPort &port, SnoopRespPacketQueue &snoop_resp_queue, const std::string &label) | |
| virtual void | sendDeferredPacket () |
| Override the normal sendDeferredPacket and do not only consider the transmit list (used for responses), but also requests. More... | |
| bool | checkConflictingSnoop (const PacketPtr pkt) |
| Check if there is a conflicting snoop response about to be send out, and if so simply stall any requests, and schedule a send event at the same time as the next snoop response is being sent out. More... | |
Public Member Functions inherited from gem5::ReqPacketQueue | |
| ReqPacketQueue (EventManager &_em, RequestPort &_mem_side_port, const std::string _label="ReqPacketQueue") | |
| Create a request packet queue, linked to an event manager, a memory-side port, and a label that will be used for functional print request packets. More... | |
| virtual | ~ReqPacketQueue () |
| const std::string | name () const |
| Provide a name to simplify debugging. More... | |
| bool | sendTiming (PacketPtr pkt) |
| Send a packet using the appropriate method for the specific subclass (request, response or snoop response). More... | |
Public Member Functions inherited from gem5::PacketQueue | |
| size_t | size () const |
| Get the size of the queue. More... | |
| Tick | deferredPacketReadyTime () const |
| Get the next packet ready time. More... | |
| bool | checkConflict (const PacketPtr pkt, const int blk_size) const |
| Check if a packet corresponding to the same address exists in the queue. More... | |
| bool | trySatisfyFunctional (PacketPtr pkt) |
| Check the list of buffered packets against the supplied functional request. More... | |
| void | schedSendEvent (Tick when) |
| Schedule a send event if we are not already waiting for a retry. More... | |
| void | schedSendTiming (PacketPtr pkt, Tick when) |
| Add a packet to the transmit list, and schedule a send event. More... | |
| void | retry () |
| Retry sending a packet from the queue. More... | |
| void | disableSanityCheck () |
| This allows a user to explicitly disable the sanity check on the size of the transmitList, which is enabled by default. More... | |
| DrainState | drain () override |
| Draining is the process of clearing out the states of SimObjects.These are the SimObjects that are partially executed or are partially in flight. More... | |
Public Member Functions inherited from gem5::Drainable | |
| DrainState | drainState () const |
| Return the current drain state of an object. More... | |
| virtual void | notifyFork () |
| Notify a child process of a fork. More... | |
Protected Attributes | |
| BaseCache & | cache |
| SnoopRespPacketQueue & | snoopRespQueue |
Protected Attributes inherited from gem5::ReqPacketQueue | |
| RequestPort & | memSidePort |
Protected Attributes inherited from gem5::PacketQueue | |
| const std::string | label |
| Label to use for print request packets label stack. More... | |
| bool | waitingOnRetry |
| Remember whether we're awaiting a retry. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from gem5::PacketQueue | |
| bool | deferredPacketReady () const |
| Check whether we have a packet ready to go on the transmit list. More... | |
| PacketQueue (EventManager &_em, const std::string &_label, const std::string &_sendEventName, bool force_order=false, bool disable_sanity_check=false) | |
| Create a packet queue, linked to an event manager, and a label that will be used for functional print request packets. More... | |
| virtual | ~PacketQueue () |
| Virtual desctructor since the class may be used as a base class. More... | |
Protected Member Functions inherited from gem5::Drainable | |
| Drainable () | |
| virtual | ~Drainable () |
| virtual void | drainResume () |
| Resume execution after a successful drain. More... | |
| void | signalDrainDone () const |
| Signal that an object is drained. More... | |
Static Protected Member Functions inherited from gem5::ReqPacketQueue | |
| static const std::string | name (const RequestPort &memSidePort, const std::string &label) |
Override the default behaviour of sendDeferredPacket to enable the memory-side cache port to also send requests based on the current MSHR status.
This queue has a pointer to our specific cache implementation and is used by the MemSidePort.
|
inline |
|
inline |
Check if there is a conflicting snoop response about to be send out, and if so simply stall any requests, and schedule a send event at the same time as the next snoop response is being sent out.
| pkt | The packet to check for conflicts against. |
Definition at line 220 of file base.hh.
References gem5::BaseCache::blkSize, cache, gem5::PacketQueue::checkConflict(), gem5::PacketQueue::deferredPacketReadyTime(), DPRINTF, gem5::PacketQueue::schedSendEvent(), and snoopRespQueue.
|
virtual |
Override the normal sendDeferredPacket and do not only consider the transmit list (used for responses), but also requests.
Reimplemented from gem5::PacketQueue.
Definition at line 2651 of file base.cc.
References gem5::QueueEntry::getTarget(), gem5::MaxTick, gem5::QueueEntry::Target::pkt, and gem5::QueueEntry::sendPacket().
|
protected |
Definition at line 194 of file base.hh.
Referenced by checkConflictingSnoop().
|
protected |
Definition at line 195 of file base.hh.
Referenced by checkConflictingSnoop().