Tue, 19 Feb 2013, 00:07

The student writes again:

> Dear Professor,
> In last e-mail you said that "Since an ADD needs two sources, if one is in the
> reservation station, both operands can be forwarded to the functional unit at
> the end of the cycle in which the second operand is produced, rather than
> having the second source sent to the reservation station first, and the two
> sources sent to the functional unit in the next cycle."
> Is that means the second operand will be sent directly to the functional unit
> without being sent to the data bus? Or there is there a data path between
> functional units and bus that controlled by some logic associated to tags so
> that the the data can go directly to the functional units?
> Thanks,
> <<name withheld to protect the student who notices missing circuitry>>

The drawing we have shown is *without* data forwarding.  In that case, the
result is sent to the reservation station first, and in the next cycle, since
both results have ready bits = 1, the instruction is ready to send to the
appropriate functional unit.

If data forwarding were allowed, then indeed, we would need additional 
circuitry.  It could be along the common data bus directly to the functional
unit, as you point out.  ...and additional circuitry would be needed to 
enable that to happen.  Or there could be a separate bus so the common data
bus would not be used.  ...and additional circuitry would be needed there
as well.

I hope this helps.

Yale Patt