48 #ifndef __MEM_SERIAL_LINK_HH__ 49 #define __MEM_SERIAL_LINK_HH__ 55 #include "params/SerialLink.hh" 135 bool respQueueFull()
const;
142 void trySendTiming();
162 Cycles _delay,
int _resp_limit,
const 179 void retryStalledReq();
189 void recvRespRetry();
242 void trySendTiming();
261 _delay,
int _req_limit);
268 bool reqQueueFull()
const;
324 #endif //__MEM_SERIAL_LINK_HH__ A MasterPort is a specialisation of a BaseMasterPort, which implements the default protocol for the t...
bool retryReq
If we should send a retry when space becomes available.
Ports are used to interface objects to each other.
Cycles is a wrapper class for representing cycle counts, i.e.
EventFunctionWrapper sendEvent
Send event for the request queue.
SerialLink & serial_link
The serial_link to which this port belongs.
const PortID InvalidPortID
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID)
Get a port with a given name and index.
const AddrRangeList ranges
Address ranges to pass through the serial_link.
const Cycles delay
Minimum delay though this serial_link.
SerialLink is a simple variation of the Bridge class, with the ability to account for the latency of ...
SerialLinkSlavePort slavePort
Slave port of the serial_link.
A SlavePort is a specialisation of a port.
std::deque< DeferredPacket > transmitList
Request packet queue.
const Cycles delay
Minimum request delay though this serial_link.
SerialLink(SerialLinkParams *p)
unsigned int respQueueLimit
Max queue size for reserved responses.
SerialLink & serial_link
The serial_link to which this port belongs.
DeferredPacket(PacketPtr _pkt, Tick _tick)
EventFunctionWrapper sendEvent
Send event for the response queue.
unsigned int outstandingResponses
Counter to track the outstanding responses.
SerialLinkSlavePort & slavePort
The slave port on the other side of the serial_link.
uint64_t Tick
Tick count type.
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
ClockedObject declaration and implementation.
const unsigned int reqQueueLimit
Max queue size for request packets.
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
The port on the side that receives requests and sends responses.
Port on the side that forwards requests and receives responses.
std::deque< DeferredPacket > transmitList
Response packet queue.
SerialLinkMasterPort & masterPort
Master port on the other side of the serial_link.
uint64_t link_speed
Speed of each link (Gb/s) in this serial link.
A deferred packet stores a packet along with its scheduled transmission time.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
unsigned num_lanes
Number of parallel lanes in this serial link.
SerialLinkMasterPort masterPort
Master port of the serial_link.
virtual void init()
init() is called after all C++ SimObjects have been created and all ports are connected.