IDT MIPS32 4Kc Processor Core
Pipeline Description
79RC32438 User Reference Manual
2 - 12
November 4, 2002
Notes
The following is a cycle-by-cycle analysis of Figure 2.6.
1. The first 32x16 multiply operation (Mult1) enters the I stage and is fetched from the instruction cache.
2. An Add operation enters the I stage. The Mult1 operation enters the E stage. The integer and MDU
pipelines share the I and E pipeline stages. At the end of the E stage in cycle 2, the multiply opera-
tion (Mult1) is passed to the MDU pipeline.
3. In cycle 3 a 32x32 multiply operation (Mult2) enters the I stage and is fetched from the instruction
cache. Since the Add operation has not yet reached the M stage by cycle 3, there is no activity in
the M stage of the integer pipeline at this time.
4. In cycle 4 the Sub instruction enters I stage. The second multiply operation (Mult2) enters the E
stage. And the Add operation enters M stage of the integer pipe. Since the Mult1 multiply is a 32x16
operation, only one clock is required for the MMDU stage, hence the Mult1 operation passes to the
AMDU stage of the MDU pipeline.
5. In cycle 5 the Sub instruction enters E stage. The Mult2 multiply enters the MMDU stage. The Add
operation enters the A stage of the integer pipeline. The Mult1 operation completes and is written
back in to the HI/LO register pair in the WMDU stage.
6. Since a 32x32 multiply requires two passes through the multiplier, with each pass requiring one
clock, the 32x32 Mult2 remains in the MMDU stage in cycle 6. The Sub instruction enters M stage
in the integer pipeline. The Add operation completes and is written to the register file in the W stage
of the integer pipeline.
7. The Mult2 multiply operation progresses to the AMDU stage, and the Sub instruction progress to A
stage.
8. The Mult2 operation completes and is written to the HI/LO registers pair the WMDU stage, while the
Sub instruction write to the register file in W stage.
32x16 Multiply
The 32x16 multiply operation begins in the last phase of the E stage, which is shared between the
integer and MDU pipelines. In the latter phase of the E stage, the rs and rt operands arrive and the booth
recoding function occurs at this time. The multiply calculation requires one clock and occurs in the MMDU
stage. In the AMDU stage, the carry-propagate-add function occurs and the operation is completed. The
result is written back to the HI/LO register pair in the first half of the WMDU stage.
Figure 2.7 shows a diagram of a 32x16 multiply operation.
Figure 2.7 MDU Pipeline Flow During a 32x16 Multiply Operation
32x32 Multiply
The 32x32 multiply operation begins in the last phase of the E stage, which is shared between the
integer and MDU pipelines. In the latter phase or the E stage, the rs and rt operands arrive and the booth
recoding function occurs at this time. The multiply calculation requires two clocks and occurs in the MMDU
stage. In the AMDU stage, the carry-propagate-add (CPA) function occurs and the operation is completed.
The result is written back to the HI/LO register pair in the first half of the WMDU stage.
Figure 2.8 shows a diagram of a 32x32 multiply operation.
Booth
Array
CPA
E
M
MDU
A
MDU
Reg WR
W
MDU
Clock
1
2
3
4