Go to the documentation of this file.
47 #ifndef __MEM_BRIDGE_HH__
48 #define __MEM_BRIDGE_HH__
54 #include "params/Bridge.hh"
91 class BridgeRequestPort;
321 void init()
override;
328 #endif //__MEM_BRIDGE_HH__
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
void recvReqRetry()
When receiving a retry request from the peer port, pass it to the bridge.
const unsigned int reqQueueLimit
Max queue size for request packets.
A ResponsePort is a specialization of a port.
bool respQueueFull() const
Is this side blocked from accepting new response packets.
const PortID InvalidPortID
EventFunctionWrapper sendEvent
Send event for the request queue.
void schedTimingReq(PacketPtr pkt, Tick when)
Queue a request packet to be sent out later and also schedule a send if necessary.
EventFunctionWrapper sendEvent
Send event for the response queue.
uint64_t Tick
Tick count type.
BridgeRequestPort(const std::string &_name, Bridge &_bridge, BridgeResponsePort &_cpuSidePort, Cycles _delay, int _req_limit)
Constructor for the BridgeRequestPort.
bool retryReq
If we should send a retry when space becomes available.
BridgeRequestPort & memSidePort
Request port on the other side of the bridge.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
void trySendTiming()
Handle send event, scheduled when the packet at the head of the outbound queue is ready to transmit (...
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
DeferredPacket(PacketPtr _pkt, Tick _tick)
const Cycles delay
Minimum delay though this bridge.
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
bool trySatisfyFunctional(PacketPtr pkt)
Check a functional request against the packets in our request queue.
bool recvTimingResp(PacketPtr pkt)
When receiving a timing request from the peer port, pass it to the bridge.
std::unique_ptr< Packet > pendingDelete
Upstream caches need this packet until true is returned, so hold it for deletion until a subsequent c...
unsigned int respQueueLimit
Max queue size for reserved responses.
Bridge & bridge
The bridge to which this port belongs.
const AddrRangeList ranges
Address ranges to pass through the bridge.
bool reqQueueFull() const
Is this side blocked from accepting new request packets.
Ports are used to interface objects to each other.
void trySendTiming()
Handle send event, scheduled when the packet at the head of the response queue is ready to transmit (...
std::deque< DeferredPacket > transmitList
Response packet queue.
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
BridgeResponsePort cpuSidePort
Response port of the bridge.
AddrRangeList getAddrRanges() const
When receiving a address range request the peer port, pass it to the bridge.
Port on the side that forwards requests and receives responses.
void recvRespRetry()
When receiving a retry request from the peer port, pass it to the bridge.
Bridge & bridge
The bridge to which this port belongs.
A deferred packet stores a packet along with its scheduled transmission time.
void recvFunctional(PacketPtr pkt)
When receiving a Functional request from the peer port, pass it to the bridge.
BridgeResponsePort & cpuSidePort
The response port on the other side of the bridge.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
BridgeRequestPort memSidePort
Request port of the bridge.
void retryStalledReq()
Retry any stalled request that we have failed to accept at an earlier point in time.
unsigned int outstandingResponses
Counter to track the outstanding responses.
Cycles is a wrapper class for representing cycle counts, i.e.
A bridge is used to interface two different crossbars (or in general a memory-mapped requestor and re...
The port on the side that receives requests and sends responses.
void schedTimingResp(PacketPtr pkt, Tick when)
Queue a response packet to be sent out later and also schedule a send if necessary.
Tick recvAtomic(PacketPtr pkt)
When receiving a Atomic requestfrom the peer port, pass it to the bridge.
const Cycles delay
Minimum request delay though this bridge.
bool recvTimingReq(PacketPtr pkt)
When receiving a timing request from the peer port, pass it to the bridge.
std::deque< DeferredPacket > transmitList
Request packet queue.
BridgeResponsePort(const std::string &_name, Bridge &_bridge, BridgeRequestPort &_memSidePort, Cycles _delay, int _resp_limit, std::vector< AddrRange > _ranges)
Constructor for the BridgeResponsePort.
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17