Hardware Reference
In-Depth Information
many-to-one switching module takes many requests and grants only one of them.
An input VC can have a valid request to the switch allocator when three conditions
are satisfied:
Valid flit:
The i th input VC is not empty in the current cycle, i.e., there is a valid
flit at the frontmost position of the corresponding input VC buffer.
Output VC already allocated:
The input VC has been assigned to an output VC
either in the same or in a previous cycle. When
outVCLock
Œi
D
1,thei th input
VC has already allocated an output VC with id equal to
outVC
Œi . In case that
outVCLock
Œi
D
0 but
VCgranted
Œi
D
1, it means that the flit (for sure a head
flit) is allocated to an output VC in this cycle and the id of the output VC is equal
to
selOutVC
Œi .
The output VC has enough credits:
A given input VC can only request access
to the output port if its destination VC has at least one credit available. Therefore,
the i th input VC should check whether
ready
Œ
outVC
Œi
D
1. The ready signal of
all output VC credit counters are distributed to all input VCs. The ready bit that
corresponds to the matched output VC is selected by
outVC
Œi or by
selOutVC
Œi ,
depending on whether the corresponding flit has already allocated an output VC
in a previous cycle, or, it is allocated to a new output VC in the same cycle that
prepares the requests for SA (Fig.
7.4
).
The requests of all input VCs are gathered and sent to the switch allocator. The
switch allocator is responsible for selecting one eligible input VC, and driving the
per-input and output data multiplexers, according to that selection.
Fig. 7.4
The per-input-VC logic that implements request generation and grant handling for both
VA and SA allocation stages in a many-to-one connection that supports VCs
Search WWH ::
Custom Search