Hardware Reference
In-Depth Information
RC in parallel to link traversal. Therefore, at input X the head flit of the packet
has already computed RC X at the link, and presents to the router the pre-computed
outPort requests. The same happens also for inputs A, B, and C. Once the packet
follows the link towards these inputs it computes RC for the next router just before
it gets stored to the corresponding input buffer.
Lookahead routing computation can move one step forward and the let RC A ,
RC B and RC C modules exist at input X instead of the links. When a packet arrives
at input X, it has already computed beforehand the output port that should select
for arbitration and multiplexing. The output port request vector of a head flit at
input X would point to one of the links connecting to the next inputs A, B or C.
Therefore, depending on which output the packet of input X is heading to, it should
select the result of the appropriate routing computation logic RC A ,RC B ,orRC C .
The organization of the LRC unit at input X is illustrated in Fig. 3.17 c. All RC units
receive the destination address of the packet and based one the output port request
of the packet arriving at input X selects the output port request for the next router.
For example, if the incoming packet moves to input A of the next router, the output
port requests of RC A should be selected and attached to the header.
In this way, LRC runs in parallel to the rest tasks of the router, since the outPort
request vector is ready on the header of the packet. The organization of the request
generation logic that relies on LRC is shown in Fig. 3.18 . Instead of the RC's result,
now the head flits use their own field containing the output port, that was calculated
at the previous router. In parallel to request generation, the same field feeds the LRC
unit that computes the output port for the next router.
outPort
(current)
outAvailable[0...N-1]
ready output[0...N-1]
outPort
current outPort
is found in
head flit's header
en
1
head
1
requests
en
outLock
ready
valid
grants
valid/data
data
1
Input #0
only for
head flits
dst
replace
outPort field
LRC
next
outPort
Fig. 3.18 In the traditional RC placement, a flit must wait for the RC result before being able to
perform request generation and arbitration. In Lookahead RC, the output port is pre-computed and
can be found in the flit's header, thus allowing the tasks of the router to execute in parallel to the
LRC for the next router
Search WWH ::




Custom Search