Hardware Reference
In-Depth Information
Chapter 6
Virtual-Channel Flow Control and Buffering
In all cases described so far when a packet allocated a link (or an output of a router)
the connection was kept until the tail of the packet traversed the link and released its
usage to other packets. This behavior was imposed by the fact that the buffers at the
other side of the link (or the input of the next router) kept the control information
of only one packet, thus prohibiting the interleaving of flits from different packets.
This flow of packets resembles a single-lane street where cars move one after the
other and even if a car wants to turn to a different direction it is obliged to wait the
rest cars to pass the turning point before being able to make the turn to its preferred
direction (see Fig. 6.1 a). Also, this serial packet movement prohibits packet flow
isolation since all traffic is inevitably mixed in the one-lane streets of the network.
Allowing for flow separation and isolation needs the dedication of multiple
resources either in space (more physical lanes by adding extra wires on the links) or
in time (more virtual resources interleaved on the same physical resources in a well-
defined manner). This chapter deals with virtual channels that represent an efficient
flow control mechanism for adding lanes to a street network in an efficient and
versatile manner, as illustrated in Fig. 6.1 b. Adding virtual channels to the network
removes the constraints that appear in single-lane streets and allow otherwise
blocked packets to continue moving by just turning to an empty (less congested)
lane of the same street (Dally and Aoki 1993 ; Dally 1992 ). Since the additional
lanes are virtually existent their implementation involves the time multiplexing of
the packets that belong to different lanes (virtual channels) on the same physical
channel. Briefly, virtual channels behave similar to having multiple wormhole
channels present in parallel. However, adding extra lanes (virtual channel) to each
link does not add bandwidth to the physical channel. It just enables better sharing
of the physical channel by different flows (Boura and Das 1997 ; Nachiondo et al.
2006 ).
Besides performance improvement, virtual channels are used for a variety of
other purposes. Initially, virtual channels were introduced for deadlock avoid-
ance (Dally and Aoki 1993 ). A cyclic network can be made deadlock-free by
Search WWH ::




Custom Search