VFP Instruction Execution
ARM DDI 0301H
Copyright © 2004-2009 ARM Limited. All rights reserved.
21-18
ID012310
Non-Confidential, Unrestricted Access
Table 21-12 lists the pipeline stages for Example 21-10 on page 21-17.
21.9.2
Load multiple-short vector CDP resource hazard example
In Example 21-11, no resource hazard exists for the FMULS because of the FLDM in the prior
cycle. The FMULS is issued to the VFP11 coprocessor in the cycle following the issue of the
FLDM, and executes in parallel with it.
The LEN field contains, b011, selecting a vector length of four iterations. The STRIDE field
contains b00, selecting a vector stride of one.
Example 21-11 FLDM-short vector FMULS resource hazard
FLDM [R2], {S8-S10}
FMULS S16, S24, S4
Table 21-13 lists the pipeline stages for Example 21-11.
21.9.3
Short vector CDP-CDP resource hazard example
In Example 21-12, a short vector divide is followed by a FADDS instruction. The short vector
divide has b001 in the LEN field, selecting a vector length of two iterations. It requires the
Execute 1 stage of the FMAC pipeline for the first cycle of each iteration of the divide, resulting
in a stall of the FADDS until the final iteration of the divide completes the first Execute 1 cycle.
The divide iterates for 14 cycles in the Execute 1 and Execute 2 stages of the DS pipeline, that
Table 21-14 on page 21-19 lists, as E1. The first and shared Execute 1 cycle for each divide
iteration is designated as E1’.
Example 21-12 Short vector FDIVS-FADDS resource hazard
FDIVS S8, S10, S12
FADDS S0, S0, S1
Table 21-12 FLDM-FLDS-FADDS resource hazard
Instruction cycle number
Instruction
1
2
3
4
5
6
7
8
9
10
11
12
13
FLDM
D
I
E
M1
M2
W
W
-
-
FLDS
-
D
D
I
E
M1
M2
W
-
FADDS
-
-
-
D
I
E1
E2
E3
E4
E5
E6
E7
W
Table 21-13 FLDM-short vector FMULS resource hazard
Instruction cycle number
Instruction
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FLDM
D
I
E
M1
M2
W
W
-
-
FMULS
-
D
I
E1
E1
E1
E1
E2
E3
E4
E5
E6
E7
W