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