gem5
v20.1.0.0
|
#include <xbar.hh>
Public Member Functions | |
SnoopRespLayer (RequestPort &_port, BaseXBar &_xbar, const std::string &_name) | |
Create a snoop response layer and give it a name. More... | |
Public Member Functions inherited from BaseXBar::Layer< ResponsePort, RequestPort > | |
Layer (RequestPort &_port, BaseXBar &_xbar, const std::string &_name) | |
Create a layer and give it a name. More... | |
DrainState | drain () override |
Drain according to the normal semantics, so that the crossbar can tell the layer to drain, and pass an event to signal back when drained. More... | |
const std::string | name () const |
bool | tryTiming (ResponsePort *src_port) |
Determine if the layer accepts a packet from a specific port. More... | |
void | succeededTiming (Tick busy_time) |
Deal with a destination port accepting a packet by potentially removing the source port from the retry list (if retrying) and occupying the layer accordingly. More... | |
void | failedTiming (ResponsePort *src_port, Tick busy_time) |
Deal with a destination port not accepting a packet by potentially adding the source port to the retry list (if not already at the front) and occupying the layer accordingly. More... | |
void | occupyLayer (Tick until) |
void | retryWaiting () |
Send a retry to the port at the head of waitingForLayer. More... | |
void | recvRetry () |
Handle a retry from a neighbouring module. 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... | |
Public Member Functions inherited from Stats::Group | |
Group (Group *parent, const char *name=nullptr) | |
Construct a new statistics group. More... | |
virtual | ~Group () |
virtual void | regStats () |
Callback to set stat parameters. More... | |
virtual void | resetStats () |
Callback to reset stats. More... | |
virtual void | preDumpStats () |
Callback before stats are dumped. More... | |
void | addStat (Stats::Info *info) |
Register a stat with this group. More... | |
const std::map< std::string, Group * > & | getStatGroups () const |
Get all child groups associated with this object. More... | |
const std::vector< Info * > & | getStats () const |
Get all stats associated with this object. More... | |
void | addStatGroup (const char *name, Group *block) |
Add a stat block as a child of this block. More... | |
const Info * | resolveStat (std::string name) const |
Resolve a stat by its name within this group. More... | |
Group ()=delete | |
Group (const Group &)=delete | |
Group & | operator= (const Group &)=delete |
Protected Member Functions | |
void | sendRetry (ResponsePort *retry_port) override |
Sending the actual retry, in a manner specific to the individual layers. 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... | |
|
inline |
|
inlineoverrideprotectedvirtual |
Sending the actual retry, in a manner specific to the individual layers.
Note that for a RequestPort, there is both a RequestLayer and a SnoopResponseLayer using the same port, but using different functions for the flow control.
Implements BaseXBar::Layer< ResponsePort, RequestPort >.
Definition at line 298 of file xbar.hh.
References ResponsePort::sendRetrySnoopResp().