| |||
| Home > Instruction Execution > Execution timing | |||
Complex instruction dependencies and memory system interactions make it impossible to describe briefly the exact cycle timing of all instructions in all circumstances. The timing shown in Table 4.17 is accurate in most cases. For precise timing, you must use a cycle-accurate model of the ARM1136JF-S processor.
In Table 4.17, throughput is defined as the cycle after issue in which another instruction can begin execution. Instruction latency is the number of cycles after which the data is available for another operation. Forwarding reduces the latency by one cycle for operations that depend on floating-point data. Table 4.17 shows the throughput and latency for all VFP11 instructions.
Table 4.17. Throughput and latency cycle counts for VFP11 instructions
| Instructions | Single-precision | Double-precision | ||
|---|---|---|---|---|
| Throughput | Latency | Throughput | Latency | |
FABS, FNEG, FCVT, FCPY | 1 | 4 | 1 | 4 |
FCMP, FCMPE, FCMPZ, FCMPEZ | 1 | 4 | 1 | 4 |
FSITO, FUITO, FTOSI, FTOUI, FTOUIZ, FTOSIZ | 1 | 8 | 1 | 8 |
FADD, FSUB | 1 | 8 | 1 | 8 |
FMUL, FNMUL | 1 | 8 | 2 | 9 |
FMAC, FNMAC, FMSC, FNMSC | 1 | 8 | 2 | 9 |
FDIV, FSQRT | 15 | 19 | 29 | 33 |
FLD [1] | 1 | 4 | 1 | 4 |
FST [1] | 1[1] | System- dependent | 1 | System- dependent |
FLDM [1] | X[2] | X[2] + 3 | X[2] | X[2] + 3 |
FSTM [1] | X[2] | System- dependent | X[2] | System- dependent |
FMSTAT | 1 | 2 | - | - |
FMSR, FMSRR [3] | 1 | 4 | - | - |
FMDHR, FMDHC, FMDRR [3] | - | - | 1 | 4 |
FMRS, FMRRS [3] | 1 | 2 | - | - |
FMRDH, FMRDL, FMRRD [3] | - | - | 1 | 2 |
FMXR [4] | 1 | 4 | - | - |
FMRX [4] | 1 | 2 | - | - |
[1] The cycle count for a load instruction is based on load data that is cached and available to the ARM1136 processor from the cache. The cycle count for a store instruction is based on store data that is written to the cache and/or write buffer immediately. When the data is not cached or the write buffer is unavailable, the number of cycles also depends on the memory subsystem. [2] The number of cycles represented by X is (N/2) if N is even or (N/2 + 1) if N is odd. [3] [4] | ||||