gem5
|
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 <cache.hh>
Public Member Functions | |
CacheReqPacketQueue (Cache &cache, MasterPort &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 (Addr addr) |
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 ReqPacketQueue | |
ReqPacketQueue (EventManager &_em, MasterPort &_masterPort, const std::string _label="ReqPacketQueue") | |
Create a request packet queue, linked to an event manager, a master 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 (reuest, response or snoop response). More... | |
Public Member Functions inherited from PacketQueue | |
size_t | size () const |
Get the size of the queue. More... | |
Tick | deferredPacketReadyTime () const |
Get the next packet ready time. More... | |
bool | hasAddr (Addr addr) const |
Check if a packets address exists in the queue. More... | |
bool | checkFunctional (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, bool force_order=false) |
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 |
Notify an object that it needs to drain its state. More... | |
Public Member Functions inherited from 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 | |
Cache & | cache |
SnoopRespPacketQueue & | snoopRespQueue |
Protected Attributes inherited from ReqPacketQueue | |
MasterPort & | masterPort |
Protected Attributes inherited from 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 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, 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 Drainable | |
Drainable () | |
virtual | ~Drainable () |
virtual void | drainResume () |
Resume execution after a successful drain. More... | |
void | signalDrainDone () const |
Signal that an object is drained. More... | |
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.
Definition at line 143 of file cache.hh.
References PacketQueue::deferredPacketReadyTime(), DPRINTF, PacketQueue::hasAddr(), 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 PacketQueue.
Definition at line 2629 of file cache.cc.
References QueueEntry::blkAddr, MaxTick, and QueueEntry::sendPacket().
|
protected |
Definition at line 120 of file cache.hh.
Referenced by checkConflictingSnoop().