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)
Содержание Ultra64
Страница 2: ...2 ...
Страница 10: ...10 ...
Страница 12: ...12 Figure 6 2 buildtask Operation 137 ...
Страница 14: ...14 ...
Страница 80: ...80 Vector Unit Instructions vmadm dres_int dres_int vconst 3 vmadn dres_frac vconst vconst 0 ...
Страница 104: ...104 RSP Coprocessor 0 ...
Страница 150: ...150 Advanced Information ...
Страница 155: ...Revision 1 0 155 ...
Страница 248: ...248 Exceptions None ...
Страница 251: ...Revision 1 0 251 Exceptions None ...
Страница 254: ...254 Exceptions None ...
Страница 257: ...Revision 1 0 257 Exceptions None ...
Страница 293: ...Revision 1 0 293 Exceptions None ...
Страница 316: ...316 Exceptions None ...