
Instruction Cycle Times
8-12
Copyright 2000 ARM Limited. All rights reserved.
ARM DDI 0165B
8.7
Data operations
A normal data operation executes in a single execute cycle except where the shift is
determined by the contents of a register. A normal data operation requires up to two
operands, that are read from the register file onto the A and B buses.
The ALU combines the A bus operand with the (shifted) B bus operand according to
the operation specified in the instruction. The ARM9E-S pipelines this result and writes
it into the destination register, when required. Compare and test operations do not write
a result as they only affect the status flags.
An instruction prefetch occurs at the same time as the data operation, and the PC is
incremented.
When a register specified shift is used, an additional execute cycle is needed to read the
shifting register operand. The instruction prefetch occurs during this first cycle.
The PC can be one or more of the register operands. When the PC is the destination, the
external bus activity is affected. When the ARM9E-S writes the result to the PC, the
contents of the instruction pipeline are invalidated, and the ARM9E-S takes the address
for the next instruction prefetch from the ALU rather than the incremented address. The
ARM9E-S refills the instruction pipeline before any further instruction execution takes
place. Exceptions are locked out while the pipeline is refilling.
Note
Shifted register with destination equals PC is not possible in Thumb state.
The data operation cycle timings are shown in
Table 8-8.Table 8-8 Data operation cycle timing
Cycle
IA
InMREQ,
ISEQ
INSTR
DA
DnMREQ,
DSEQ
RDATA/
WDATA
Normal
1
pc+3i
S cycle
(pc+2i)
-
I cycle
(pc+3i)
-
dest=pc
1
pc’
N cycle
(pc+2i)
-
I cycle
2
pc’+ i
S cycle
(pc’)
-
I cycle
-
3
pc’+2i
S cycle
(pc’+i)
-
I cycle
-
(pc’+ 2i)
-