28.06.2014 Views

Survey of Network on Chip (NoC) Architectures & Contributions ...

Survey of Network on Chip (NoC) Architectures & Contributions ...

Survey of Network on Chip (NoC) Architectures & Contributions ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!