Hardware Reference
In-Depth Information
per-input VC arbitration and additional delay can saved. Certainly, this time overlap
is only enabled if the generation of the candidateOutVC for each input VC is not
strictly dependent on the routing algorithm.
7.2.6
The Internal Organization of the Switch Allocator
for a VC-Based Router
Switch allocation involves both a per-input and a per output arbitration step.
Differently from the case of a many-to-one connection, in this case, the switch
allocator receives a request vector from each input VC that points to the requested
output port. When an input VC has an active output port request (at least one bit
of the request vector is asserted) it is eligible to participate in SA1. The input VC
that is selected by SA1 carries its request vector to the next arbitration step (SA2).
This is done via the multiplexer shown per input in Fig. 7.15 . Each arbiter of SA2
independently from the rest selects which input to grant, based on its local priority
status. The grant signals are distributed to the crossbar setting up the appropriate
input-output connections and to the inputs. Once this information reaches the inputs
it is combined with the decision of SA1 and prepares the winning input VC for
sending a new flit to the crossbar. An example of the grants generation process
by the switch allocator, including both arbitration stages' results, is presented in
Fig. 7.16 .
per input
granted
input VC
local MUX
select
V input VC
requests
V:1
arb
N
crossbar
select
per output
N
N:1
arb
N
port request of
granted Input VC
N:1
arb
V:1
arb
total N
N:1 arbiters
total N
V:1 arbiters
Fig. 7.15 The switch Allocator for a complete VC-based router that supports many input/output
parallel connections. The SA1 stage promotes one VC per input that fights with the rest inputs in
SA2 to get access to the requested output port
 
Search WWH ::




Custom Search