Cycle Timings and Interlock Behavior
ARM DDI 0363E
Copyright © 2009 ARM Limited. All rights reserved.
14-12
ID013010
Non-Confidential, Unrestricted Access
14.7
Multiplies
Most multiply operations cannot forward their result early, except as the accumulate value for a
subsequent multiply. For a subsequent multiply accumulate the result is available one cycle
earlier than for all other uses of the result.
Certain multiplies require:
•
more than one cycle to execute
•
more than one pipeline issue to produce a result.
The multiplicand and multiplier are required as Early Regs because they are both required at the
end of the Iss stage.
Flag-setting multiplies followed by a conditional instruction interlock the conditional
instruction for one cycle, or two cycles if the instruction is a conditional multiply. Flag-setting
multiplies followed by a flag-setting instruction interlock the flag-setting instruction for one
cycle, unless the instruction is a flag-setting multiply in which case there is no interlock.
Table 14-9 shows the cycle timing behavior of example multiply instructions.
Table 14-9 Example multiply instruction cycle timing behavior
Example
instruction
Cycles
Early Reg
Late Reg
Result latency
MUL(S)
2
<Rn>, <Rm>
-
3
MLA(S)
,
MLS
2
<Rn>, <Rm>
<Ra>
3
SMULL(S)
2
<Rn>, <Rm>
-
3, 3
UMULL(S)
2
<Rn>, <Rm>
-
3, 3
SMLAL(S)
2
<Rn>, <Rm>
<RdLo>, <RdHi>
3, 3
UMLAL(S)
2
<Rn>, <Rm>
<RdLo>, <RdHi>
3, 3
SMULxy
1
<Rn>, <Rm>
-
2
SMLAxy
1
<Rn>, <Rm>
-
2
SMULWy
1
<Rn>, <Rm>
-
2
SMLAWy
1
<Rn>, <Rm>
-
2
SMLALxy
2
<Rn>, <Rm>
<RdLo>, <RdHi>
3, 3
SMUAD
,
SMUADX
1
<Rn>, <Rm>
-
2
SMLAD
,
SMLADX
1
<Rn>, <Rm>
-
2
SMUSD
,
SMUSDX
1
<Rn>, <Rm>
-
2
SMLSD
,
SMLSDX
1
<Rn>, <Rm>
-
2
SMMUL
,
SMMULR
2
<Rn>, <Rm>
-
3
SMMLA
,
SMMLAR
2
<Rn>, <Rm>
<Ra>
3
SMMLS
,
SMMLSR
2
<Rn>, <Rm>
<Ra>
3