Survey of Network on Chip (NoC) Architectures & Contributions ...
Survey of Network on Chip (NoC) Architectures & Contributions ...
Survey of Network on Chip (NoC) Architectures & Contributions ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
flit. If the header flit is blocked then the entire packet is blocked. It does not require any buffering <str<strong>on</strong>g>of</str<strong>on</strong>g> the packet.<br />
Therefore, the size <str<strong>on</strong>g>of</str<strong>on</strong>g> the chip drastically reduces. However, the major drawback <str<strong>on</strong>g>of</str<strong>on</strong>g> this switching technique is a<br />
higher latency. Thus, it is not a suitable switching technique for real-time data transfers. Al-Tawil et al. provided a<br />
well-structured survey <str<strong>on</strong>g>of</str<strong>on</strong>g> Wormhole Routing techniques and its comparis<strong>on</strong> with other switching techniques [19].<br />
S&F switching forwards a packet <strong>on</strong>ly when there is enough space available in the receiving buffer to hold the<br />
entire packet. Thus, there is no need for dividing a packet into flits. This reduces the overhead, as it does not<br />
require circuits such as a flit builder, a flit decoder, a flit stripper and a flit sequencer. Nevertheless, such a<br />
switching technique requires a large amount <str<strong>on</strong>g>of</str<strong>on</strong>g> buffer space at each node. Thus, it may not be a feasible soluti<strong>on</strong><br />
for embedded applicati<strong>on</strong>s. The CLICHÉ implementati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> a NOC is an example <str<strong>on</strong>g>of</str<strong>on</strong>g> store-and-forward switching [2].<br />
Millberg et al. employed this switching technique in their Nostrum NOC implementati<strong>on</strong> [20]. In VCT switching, a<br />
packet is forwarded to the next router as so<strong>on</strong> as there is enough space to hold the packet. However, unlike S&F,<br />
the VCT algorithm divides a packet into flits, which may be further divided into phits. Therefore, it has the same<br />
buffer requirement as S&F. N<strong>on</strong>e <str<strong>on</strong>g>of</str<strong>on</strong>g> the NOC implementati<strong>on</strong>s has adopted this switching technique in their<br />
implementati<strong>on</strong>.<br />
Ad-hoc switching techniques can be also developed by combining different switching techniques. For instance, VCs<br />
can be used for each class <str<strong>on</strong>g>of</str<strong>on</strong>g> traffic, while each channel is operated as per the principles <str<strong>on</strong>g>of</str<strong>on</strong>g> circuit switching. The<br />
Ethereal [10], [21] and M<strong>on</strong>go NOC implementati<strong>on</strong>s use such a combinati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> techniques [22], [23].<br />
Flow C<strong>on</strong>trol<br />
Flow c<strong>on</strong>trol determines how network resources, such as channel bandwidth, buffer capacity, and c<strong>on</strong>trol state, are<br />
allocated to a packet traversing the network. The flow c<strong>on</strong>trol may be buffered or bufferless (see Figure 3).<br />
The Bufferless Flow C<strong>on</strong>trol has more latency and less throughput than thr Buffered Flow C<strong>on</strong>trol. The Buffered<br />
Flow C<strong>on</strong>trol can be further categorized into Credit Based Flow C<strong>on</strong>trol, ACK/NACK Flow C<strong>on</strong>trol, STALL/GO Flow<br />
C<strong>on</strong>trol, T-Error Flow C<strong>on</strong>trol, and Handshaking Signal based Flow C<strong>on</strong>trol.<br />
Flow C<strong>on</strong>trol<br />
Bufferless Flow<br />
C<strong>on</strong>trol<br />
(Mainly used for<br />
circuit switched<br />
networks)<br />
Buffered Flow<br />
C<strong>on</strong>trol<br />
(Mainly used for<br />
packet switched<br />
networks)<br />
Credit<br />
Based<br />
Flow<br />
C<strong>on</strong>trol<br />
Handshakin<br />
g Signals<br />
ACK/NAC<br />
K Flow<br />
C<strong>on</strong>trol<br />
STALL/GO<br />
Flow<br />
C<strong>on</strong>trol<br />
T-Error<br />
Flow<br />
C<strong>on</strong>trol<br />
Figure 3. Flow c<strong>on</strong>trol techniques.<br />
In Credit Based Flow C<strong>on</strong>trol, an upstream node keeps count <str<strong>on</strong>g>of</str<strong>on</strong>g> data transfers, and thus the available free slots are<br />
termed as credits. Once the transmitted data packet is either c<strong>on</strong>sumed or further transmitted, a credit is sent back.<br />
Bolotin et al. used Credit Based Flow C<strong>on</strong>trol in QNOC [24], [25].<br />
In Handshaking Signal Based Flow C<strong>on</strong>trol, a VALID signal is sent whenever a sender transmits any flit. The<br />
receiver acknowledges by asserting a VALID signal after c<strong>on</strong>suming the data flit. Zeferino et al. used handshaking<br />
signals in their SoCIN NOC implementati<strong>on</strong> [26].<br />
In the ACK/NACK protocol a copy <str<strong>on</strong>g>of</str<strong>on</strong>g> a data flit is kept in a buffer until an ACK signal is received. On asserti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g><br />
ACK, the flit is deleted from the buffer; instead if a NACK signal is asserted then the flit is scheduled for