44
Network-on-Chip
In a switch-to-switch flow control, ssp shows more latency than ssf. In NoC,
ssf flow control technique is widely used. Pullini et al. (2005) proposed three
types of relevant switch-to-switch flit-level flow control protocols, namely,
STALL/GO, T-Error, and ACK/NACK.
STALL/GO is a very simple realization of an ON/OFF flow control protocol. However, it cannot handle faults. Two wires are used for flow control
between each pair of sender and receiver: one going forward and flagging
data availability, and the other going backward and signaling either a condition of buffers filled (STALL) or buffers free (GO). When there is an empty
buffer space, a GO signal is activated. Upon the unavailability of buffer
space, a STALL signal is activated. Figure 2.24 depicts the STALL/GO protocol implementation for NoC.
The T-Error flow control, however, can be deployed to improve either link
performance or system reliability by catching timing errors. The T-Error protocol (Figure 2.25) aggressively deals with communication over physical links,
either stretching the distance among repeaters or increasing the operating frequency with respect to a conventional design. As a result, timing errors become
likely on the link. Faults are handled by a repeater architecture leveraging
upon a second delayed clock to resample input data, to detect any inconsistency, and to emit a VALID control signal. If the surrounding logic is to be kept
unchanged, a resynchronization stage must be added between the end of the
link and the receiving switch. This logic handles the offset among the original
and delayed clocks, thus realigning the timing of DATA and VALID wires; this
incurs a one-cycle latency penalty. The corresponding hardware was implemented by Tamhankar et al. (2005). However, T-Error lacks a really thorough
fault handling in a real-time system operating in a noisy environment.
The ACK/NACK flow control protocol (Figure 2.26) is used for detection
and retransmission purposes. While flits are sent on a link, a copy is kept
locally at the sender. When flits are received, either an ACK or a NACK is
sent back. Upon receipt of the ACK, the sender deletes the local copy of
the flit, whereas upon receipt of the NACK, the sender stops transmitting
from its queue and retransmits flits from its local copy starting from the
corrupted one, with a go-back-N policy. The other flits which are on the fly
in that time window will be discarded and resent. If NACKs were only
due to sporadic errors, the impact on performance would be negligible.
S
FLIT
REQ
STALL
R
FLIT
REQ
STALL
FLIT
REQ
STALL
Figure 2.24
STALL/GO protocol implementation.
Précédent

- 63/388

Suivant