3.4. Credit Monitoring: Backpressure Check
Output queues are assumed to maintain a series of credits. Only if credits are greater
than zero can more data be added to a queue; otherwise, the pipelinewill stall. It is these
credits that make up the basis of our flow control technique.We assert that by checking
credits on the sender side’s output queue, we can avoid deadlock and reduce the cost of
sending messages using virtual channel flow control techniques. In the following, we
characterize backflow resulting from two types of blocking in the network. The first
is receiver-side buffer blocking. In this situation, the receiver-side SRAM buffer hasreached capacity and is unable to accept any more data. This implies that the receiver’s
local input queues are unable to move any data into SRAM, effectively halting refunds
of queue credits to the output queues on the previous core in the path. Figure 2(b)
gives an example where node 4 is unable to receive any more data. This backpressure
can only be resolved if node 4 actively drains the network to free up space within its
hardware buffers.