Hardware Reference
In-Depth Information
Fig. 6.1 Virtual channels is
analogous to adding lanes in a
street allowing cars(packets)
to flow in parallel without
interfering with each other.
The added lanes/channels are
virtualized since they do not
physically exist but appear on
the one physical channel in a
time-multiplexed manner
single-lane street
multi-lane street
restricting routing so that there are no cycles in the channel dependency graph. The
channels can be thought as the resources of the network that are assigned to distinct
virtual channels. The transition between these resources in the packet's routing path
is being restricted in order to enforce a partial order of resource acquisition, which
practically removes cyclic dependencies (Duato 1993 ).
In a similar manner, different types of packets, like requests and reply packets,
can be assigned to disjoint sets of virtual channels (VCs) to prevent protocol-
level deadlock that may appear at the terminal nodes of the network. For instance,
protocol-level restrictions in Chip Multi-Processors (CMP) employing directory-
based cache coherence necessitate the use of VCs. Coherence protocols require
isolation between the various message classes to avoid protocol-level deadlocks
(Martin et al. 2005 ). For example, the MOESI directory-based cache coherence
protocol requires at least three virtual networks to prevent protocol-level deadlocks.
A virtual network comprises of one VC (or a group of VCs) that handles a specific
message class of the protocol. Virtual networks and the isolation they provide are
also used for offering quality of service guarantees in terms of bandwidth allocation
and packet delivery deadlines (Grot et al. 2012 ).
Architectures supporting the use of VCs may reduce also on-chip physical
routing congestion, by trading off physical channel width with the number of VCs,
thereby creating a more layout-flexible SoC architecture. Instead of connecting two
nodes with many parallel links that are rarely used at the same time, one link can be
used instead that supports virtual channels, which allows the interleaving in time of
the initial parallel traffic, thus saving wires and increasing their utilization.
6.1
The Operation of Virtual-Channel Flow Control
To divide a physical channel into V virtual channels, the input queue at the receiver
needs to be separated into as many independent queues as the number of virtual
channels. These virtual channels maintain control information that is computed only
 
Search WWH ::




Custom Search