Hardware Reference
In-Depth Information
3.4
Multiple Inputs Connecting to Multiple Outputs
Using an Unrolled Switching Datapath
The design of switching elements has evolved so far from simple point-to-point
links (1-to-1 connections) that were useful in understanding the operation of flow
control, to many-to-one connections as well as many-to-many connections using
only one arbiter and one multiplexer. In this section, we focus on the many-to-many
connection but try to increase the throughput seen by the switch as whole. Our main
goal is to move from the 1 flit per cycle traversing the switch as shown in Fig. 3.7 ,
to many flits travelling to different outputs per cycle. To achieve this we need to
fully unroll the datapath presented in the previous section by adding a separate
multiplexer and arbiter pair at each output following the connection of Fig. 3.10 a.
In this way, each output independently from the rest can accept and forward to the
output link a new flit as shown in Fig. 3.10 b. The set of per-output multiplexers
constitute the crossbar of the switch that enables the implementation of an input-
output permutation, provided that each input selects a different output.
Besides the unrolling of the datapath, the input and output operations involved
remain more or less the same to the ones described for the reduced datapath. Each
input and each output has its own buffer space that employs a ready/valid protocol
and can be from a simple 1-slot EB to a fully fledged FIFO. The most simple choice
can be a 2-slot EB that provides lossless and full throughput operation without
allowing any backpressure combinational paths to propagate inside the switch and
increase inevitably the clock cycle. While a 2-slot EB is enough for most cases,
bursty traffic and high congestion in the network may call for more buffers that will
absorb the extra traffic.
As in all previous cases, each input holds 2 state variables. The outPort Œi that
holds the destined output port of the packet stored at the i th input and the outLock Œi
bit that declares whether the packet of the particular source has gained an exclusive
a
Inputs
b
Outputs
arb
0
0
arb
1
1
2
2
arb
3
3
Fig. 3.10 ( a ) The fully unrolled organization of the switching datapath that includes a separate
per output arbiter and multiplexer and ( b ) its parallel switching properties that allows different
input-output connections to occur concurrently
Search WWH ::




Custom Search