Hardware Reference
In-Depth Information
that the outgoing flit is a tail flit the output controller should reset the corresponding
output VC availability flags to available since the packet that used this output VC
has left the current router.
7.2.5
The Internal Organization of the VC Allocator
for a VC-Based Router
The VC allocator should be able to allocate in parallel the input VCs to the output
VCs of the router. In this case, the router consists of many outputs that each one
services a number of VCs. Therefore, the input VC should not only inform the VC
allocator on the candidate output VCs but it should also declare the output that these
candidate VCs belong to. Therefore, the VC allocator receives a pair of vectors from
each input VC: A vector that indexes the requested output port reqPort Œi ,andthe
reqVC Œi that indexes the requested output VC(s). The first step of VC allocation is
to filter out from the requested output VCs those that are not available. Each input
VC sees N V output VC availability flags. From those flags selects the ones that
refer to the destined output port, that are later masked with the candidate output VCs
of each input VC.
The allocation process evolves in two steps, according to the organization
depicted in Fig. 7.13 . In the first step (VA1) each input VC selects one of the
outVCAvailable
per input VC
reqPort[i]
N
align requests
to output
V
VCgranted[i]
per output VC
selOutVC[i]
V
V:1
arb
NV:1
arb
V
V
NV
NV
reqVC[i]
V
select one of the
available output VCs
NV:1
arb
V:1
arb
V
NV
NV
total NV
NV:1 arbiters
total NV
V:1 arbiters
Fig. 7.13 The VC allocator of a complete VC-based router. The requested output VCs ( reqVC )
are masked with their corresponding outVCavailable flags and a single output VC is selected per
input VC after VA1 arbitration. During VA2, each available output VC is assigned to at most one
requesting input VC
 
Search WWH ::




Custom Search