Interrupts
ARM DDI 0165B
Copyright 2000 ARM Limited. All rights reserved.
5-7
5.3
Maximum interrupt latency
The processor samples the interrupt input pins on the rising-edge of the system clock,
CLK. The sampled signal is examined and can cause an interrupt in the following cases:
Whenever a new instruction is scheduled to enter the Execute stage of the
pipeline.
Whenever a new instruction is in the Execute stage for the first cycle of its
execution. Here cycle refers to CLK cycles with CLKEN HIGH.
Whenever a coprocessor instruction is being busy waited in the Execute stage.
Whenever a new instruction which interlocked in the Execute stage has just
progressed to its first active Execute cycle.
If the sampled signal is asserted at the same time as a multicycle instruction has started
its second or later cycle of execution, the interrupt exception entry does not start until
the instruction has completed.
The worst-case interrupt latency occurs when the longest possible LDM instruction
incurs a Data Abort. The processor must enter the Data Abort mode before taking the
interrupt so that the interrupt exception exit can occur correctly. This causes a
worst-case latency of 24 cycles:
The longest LDM instruction is one that loads all of the registers, including the PC.
Counting the first Execute cycle as 1, the LDM takes 16 cycles.
The last word to be transferred by the LDM is transferred in cycle 17, and the abort
status for the transfer is returned in this cycle.
If a Data Abort happens, the processor detects this in cycle 18 and prepares for
the Data Abort exception entry in cycle 19.
Cycles 20 and 21 are the Fetch and Decode stages of the Data Abort entry
respectively.
During cycle 22, the processor prepares for FIQ entry, issuing Fetch and Decode
cycles in cycles 23 and 24.
Therefore, the first instruction in the FIQ routine enters the Execute stage of the
pipeline in stage 25, giving a worst-case latency of 24 cycles.