Hardware Reference
In-Depth Information
￿
A packet gets granted by both allocators: The head flit received all the necessary
resources and can leave the input VC buffer. This is the best case of speculative
switch allocation and is expected to happen often under low traffic conditions,
where the output resources (VCs and ports) are free most of the time and
contention probability is very low.
In order to reduce the probability of miss-speculation, the speculative VC-based
router involves two separate switch allocators. The first switch allocator receives
only the speculative requests, i.e., those coming from head flits that have not
allocated an output VC. The second switch allocator receives the remaining requests
including the requests from the head flits that have been assigned to an output VC
and the requests from the body and tail flits that always participate in SA non-
speculatively (always a preceding head flit has allocated for them an output VC).
If we give higher priority to the grants of the non-speculative switch allocator, we
guarantee that the winning flit can always move to the selected output. To satisfy this
feature the grants of the speculative switch allocator should be rejected, when there
is a grant for the same input-output pair from the non-speculative switch allocator.
The organization of the allocation logic in the case of a speculative VC-based router,
including the two switch allocators and the VC allocation logic that runs in parallel,
is illustrated in Fig. 8.4 .
When an input VC has already allocated an output VC it participates only in the
non-speculative SA. On the contrary, the input VCs that do not have allocated yet an
output VC participate in VA and in the speculative SA. During VA, they try to match
to an output VC, but they should guarantee that the requested output VC selected
at VA1 not only is available (as needed in baseline VA), but it is also ready, i.e., it
outVCAvailable
Output VC
assignment
ready VC
per input VC
reqPort[i]
N
V
V
VA2
VA1
V
V
reqVC[i]
V
granted for
speculative
deMUX
speculative
requests
SA
mask
Switch Allocation
sp eculative
non-speculative
requests
SA
non-speculative
Fig. 8.4 The organization of the speculative VC-based router. Each input VC generates in parallel
requests to the VC allocator and to the speculative SA for the head flits and to the non-speculative
SA for the rest flits and the head flits that managed to allocate an output VC in a previous cycle.
The grants that return from the three allocation units are handled according to the four scenarios
described in the beginning of this section
 
Search WWH ::




Custom Search