| |||
| Home > Cycle Timings and Interlock Behavior > Multiplies | |||
The multiplier consists of a three-cycle pipeline with early result forwarding not possible other than to the internal accumulate path. 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.
Multiplies with 64-bit results take and require two cycles to write the results, consequently they have two result latencies with the low half of the result always available first. The multiplicand and multiplier are required as Early registers because they are both required at the start of MAC1.
Table 17.10 shows the cycle timing behavior of example multiply instructions.
Table 17.10. Example multiply instruction cycle timing behavior
| Example instruction | Cycles | Cycles if sets flags | Early register | Late register | Result latency |
|---|---|---|---|---|---|
MUL(S) | 2 | 5 | <Rm>, <Rs> | - | 4 |
MLA(S), MLS | 2 | 5 | <Rm>, <Rs> | <Rn> | 4 |
SMULL(S) | 3 | 6 | <Rm>, <Rs> | - | 4/5 |
UMULL(S) | 3 | 6 | <Rm>, <Rs> | - | 4/5 |
SMLAL(S) | 3 | 6 | <Rm>, <Rs> | <RdLo> | 4/5 |
UMLAL(S) | 3 | 6 | <Rm>, <Rs> | <RdLo> | 4/5 |
SMULxy | 1 | - | <Rm>, <Rs> | - | 3 |
SMLAxy | 1 | - | <Rm>, <Rs> | - | 3 |
SMULWy | 1 | - | <Rm>, <Rs> | - | 3 |
SMLAWy | 1 | - | <Rm>, <Rs> | - | 3 |
SMLALxy | 2 | - | <Rm>, <Rs> | <RdHi> | 3/4 |
SMUAD, SMUADX | 1 | - | <Rm>, <Rs> | - | 3 |
SMLAD, SMLADX | 1 | - | <Rm>, <Rs> | - | 3 |
SMUSD, SMUSDX | 1 | - | <Rm>, <Rs> | - | 3 |
SMLSD, SMLSDX | 1 | - | <Rm>, <Rs> | - | 3 |
SMMUL, SMMULR | 2 | - | <Rm>, <Rs> | - | 4 |
SMMLA, SMMLAR | 2 | - | <Rm>, <Rs> | <Rn> | 4 |
SMMLS, SMMLSR | 2 | - | <Rm>, <Rs> | <Rn> | 4 |
SMLALD, SMLALDX | 2 | - | <Rm>, <Rs> | <RdHi> | 3/4 |
SMLSLD, SMLSLDX | 2 | - | <Rm>, <Rs> | <RdHi> | 3/4 |
UMAAL | 3 | - | <Rm>, <Rs> | <RdLo> | 4/5 |
Result latency is one less if the result is used as the accumulate register for a subsequent multiply accumulate.