Hardware Reference
In-Depth Information
outVCAvailable
Requests to
available output VCs
Initial Requests
Matched VCs
VC#0
VC#1
VC#2
VC#3
VC#4
VC#5
Output VCs
Fig. 7.3 An example output VC request matrix that feeds the VC allocator. The switching module
connects 2 inputs that each one hosts 3 VCs. An input VC may request any of the output VCs, while
the requests that correspond to unavailable output VCs are filtered from the allocation process.
The requested and available output VCs will be assigned to one of the requesting input VCs, while
making sure that no input VC is assigned to more than one output VC
yet and should retry in the next cycle. The assignment selected by the VC allocator,
besides the input controllers, is also used to update the status of the outVCAvailable
flags accordingly, so that no other input VC is allowed to request it on a future cycle,
until it is released by the tail flit of the same packet.
Once an input VC succeeds in allocating an output VC it should stop issuing
any requests to the VC allocator. This stop of requesting for an output VC is
critical, since the VC allocator does not have any mechanism to understand that
an input VC already holds an output VC, and may grant to it another available
output VC. Therefore, a head flit that has succeeded in VC allocation, but still
remains at the input VC buffer due to possible lack of available credit at the output
VC buffers, should not make any further request. The only condition that qualifies
candidateOutVC Œi to reach the VC allocator, is when a head flit is present at
the frontmost position of an input VC buffer and observes its local outVCLock Œi
being 0.
7.1.3
Request Generation for the Switch Allocator
Once an output VC is allocated, the packet is allowed to move to the next stage
of switch allocation (SA), in which it has to fight with other input VCs for getting
access to the output port. Unlike VA, which is performed once per packet, switch
allocation is performed by every flit independently. The switch allocator of the
 
Search WWH ::




Custom Search