Figure 1.4: Example of credit-based flow control across a network link.
has not received an acknowledgment packet and will cause a sender timeout which prompts the “send
window” — packets sent since the last acknowledgment was received — to be retransmitted. This
algorithm is referred to as go-back-N since the sender will “go back” and retransmit the last N (send
1.6.2 LOSSLESS FLOW CONTROL
Lossless flow control implies that packets are never dropped as a results of lack of buffer space (i.e.,
in the presence of congestion). Instead, it provides back pressure to indicate the absence of available
buffer space in the resource being managed.
184.108.40.206 Stop/Go (XON/XOFF) flow control
A common approach is XON/XOFF or stop/go flow control. In this approach, the receiver provides
simple handshaking to the sender indicating whether it is safe (XON) to transmit, or not (XOFF).
The sender is able to send flits until the receiver asserts stop (XOFF). Then, as the receiver continues
to process packets from the input buffer freeing space, and when a threshold is reached the receiver
will assert the XON again allowing the sender to again start sending. This Stop/Go functionality
correctly manages the resource and avoids overflow as long as the time at which XON is asserted
again (i.e., the threshold level in the input buffer) minus the time XOFF is asserted and the buffer
is sufficient to allow any in-flight flits to land. This slack in the buffer is necessary to act as a flow
control shock absorber for outstanding flits necessary to cover the propagation delay of the flow
220.127.116.11 Credit-based flow control
Credit based flow control (Figure 1.4 ) provides more efficient use of the buffer resources. The sender
maintains a count of the number of available credits, which represent the amount of free space in
the receiver's input buffer. A separate count is used for each virtual channel (VC) [ 21 ]. When a new