44
RSP Architecture
Obviously, pipeline stalls should be avoided by the programmer (when
possible) for the best performance.
Because the SU is
bypassed
(see below), this section only applies to SU
registers for loads (and coprocessor moves) and VU registers.
SU is Bypassed
Bypassing
, or
forwarding
, is a technique commonly used to accelerate RISC
execution pipelines.
Instead of waiting for the result of a previous instruction to be written to its
destination register, a subsequent instruction can use the (correct) value
which is residing in a temporary register in the arithmetic and logical unit.
Figure 2-9
Pipeline Bypassing
For software, this means that results from SU instructions are available in the
next clock cycle, removing the concern of preventing pipeline stalls.
1
1
An obvious question is “why isn’t the VU bypassed?” As illustrated in Figure 2-8, the final result of a vector
computation is not available until very late in the WB stage of the pipeline.
IF
RD
EX
DF
WB
add $4, $4, $5
IF
RD
EX
DF
WB
add $3, $4, $6
IF
RD
EX
DF
WB
add $7, $3, $8
IF
RD
EX
DF
WB
sw $7, 0($10)
Summary of Contents for Ultra64
Page 2: ...2 ...
Page 10: ...10 ...
Page 12: ...12 Figure 6 2 buildtask Operation 137 ...
Page 14: ...14 ...
Page 80: ...80 Vector Unit Instructions vmadm dres_int dres_int vconst 3 vmadn dres_frac vconst vconst 0 ...
Page 104: ...104 RSP Coprocessor 0 ...
Page 150: ...150 Advanced Information ...
Page 155: ...Revision 1 0 155 ...
Page 248: ...248 Exceptions None ...
Page 251: ...Revision 1 0 251 Exceptions None ...
Page 254: ...254 Exceptions None ...
Page 257: ...Revision 1 0 257 Exceptions None ...
Page 293: ...Revision 1 0 293 Exceptions None ...
Page 316: ...316 Exceptions None ...