51 #ifndef __MEM_NONCOHERENT_XBAR_HH__
52 #define __MEM_NONCOHERENT_XBAR_HH__
55 #include "params/NoncoherentXBar.hh"
205 #endif //__MEM_NONCOHERENT_XBAR_HH__
A MasterPort is a specialisation of a BaseMasterPort, which implements the default protocol for the t...
Declaration of the non-coherent crossbar slave port type, one will be instantiated for each of the ma...
RespPacketQueue queue
A normal packet queue used to store responses.
virtual bool recvTimingResp(PacketPtr pkt, PortID master_port_id)
Function called by the port when the crossbar is recieving a Timing response packet.
std::vector< ReqLayer * > reqLayers
Declare the layers of this crossbar, one vector for requests and one for responses.
std::vector< RespLayer * > respLayers
virtual bool recvTimingResp(PacketPtr pkt)
When receiving a timing response, pass it to the crossbar.
A queued port is a port that has an infinite queue for outgoing packets and thus decouples the module...
virtual void regStats()
stats
NoncoherentXBar(const NoncoherentXBarParams *p)
virtual bool recvTimingReq(PacketPtr pkt, PortID slave_port_id)
Function called by the port when the crossbar is recieving a Timing request packet.
This is a simple scalar statistic, like a counter.
virtual void recvFunctional(PacketPtr pkt)
When receiving a functional request, pass it to the crossbar.
NoncoherentXBar & xbar
A reference to the crossbar to which this port belongs.
The base crossbar contains the common elements of the non-coherent and coherent crossbar.
void recvFunctional(PacketPtr pkt, PortID slave_port_id)
Function called by the port when the crossbar is recieving a Functional transaction.
void recvReqRetry(PortID master_port_id)
Timing function called by port when it is once again able to process requests.
NoncoherentXBarSlavePort(const std::string &_name, NoncoherentXBar &_xbar, PortID _id)
Tick recvAtomic(PacketPtr pkt, PortID slave_port_id)
Function called by the port when the crossbar is recieving a Atomic transaction.
uint64_t Tick
Tick count type.
NoncoherentXBar & xbar
A reference to the crossbar to which this port belongs.
virtual AddrRangeList getAddrRanges() const
Return the union of all adress ranges seen by this crossbar.
virtual ~NoncoherentXBar()
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
A non-coherent crossbar connects a number of non-snooping masters and slaves, and routes the request ...
NoncoherentXBarMasterPort(const std::string &_name, NoncoherentXBar &_xbar, PortID _id)
Declaration of the crossbar master port type, one will be instantiated for each of the slave ports co...
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
AddrRangeList getAddrRanges() const
Return the address ranges the crossbar is responsible for.
virtual Tick recvAtomic(PacketPtr pkt)
When receiving an atomic request, pass it to the crossbar.
virtual void recvRangeChange()
When reciving a range change from the peer port (at id), pass it to the crossbar. ...
virtual bool recvTimingReq(PacketPtr pkt)
When receiving a timing request, pass it to the crossbar.
virtual void recvReqRetry()
When reciving a retry from the peer port (at id), pass it to the crossbar.
Declaration of an abstract crossbar base class.
virtual void recvRangeChange(PortID master_port_id)
Function called by the port when the crossbar is recieving a range change.