Hardware Reference
In-Depth Information
new head[i]
a
b
RC
RC
RC
RC
Fig. 7.9 ( a ) Each input VC can have its own RC unit for performing routing computation
independent of the rest or ( b ) one RC unit can be shared by all input VCs of the same input
7.2.2
Requests to VC the Allocator
A head flit of a packet that has not been yet assigned an output VC to its destined
output port should send a request to the VC allocator. Depending on the limitations
imposed by the routing algorithm or some other upper level protocol, the packet
can request from one to many output VCs. Besides the requested VC ( reqVC Œi ),
each input VC should also send its destination output port ( reqPort Œi ), which will
be used for the per-output arbitration stage of VA, as depicted in Fig. 7.10 .
Similar to the many-to-one connection, the VC allocator returns per input VC the
selected output VC derived by the local VC arbitration step and a flag that denotes
if this input-output VC pair has been matched or not. Please keep in mind that since
VC allocation is performed in parallel across input and output VCs many input VCs
can be matched in parallel as long as they refer to different output VCs (or output
VCs that belong to different output ports).
7.2.3
Requests to the Switch Allocator
The packets that have been successfully assigned to an output VC can participate
in switch allocation. The output requests for the flits of each input VC are already
stored in the outPort variable. The head flits do not use the stored variable but the
one available via the bypass path of the outPort register shown in Fig. 7.11 .Thisis
necessary in the single-cycle router implementation described in this chapter. The
outPort Œi lines per input VC are actually driven to the switch allocator after being
qualified by three conditions:
The request corresponds to a valid flit: The outPort Œi variable that was set by
the head flit of a packet may contain active output requests even if the buffer of
 
Search WWH ::




Custom Search