Programmer’s Model
ARM DDI 0301H
Copyright © 2004-2009 ARM Limited. All rights reserved.
2-40
ID012310
Non-Confidential, Unrestricted Access
2.12.8
Low interrupt latency configuration
The FI bit, bit 21, in CP15 register 1 enables a low interrupt latency configuration. This bit is
not duplicated in both worlds, and can only be modified in Secure state. It applies to both worlds.
This mode reduces the interrupt latency of the processor. This is achieved by:
•
disabling
Hit-Under-Miss
(HUM) functionality
•
abandoning restartable external accesses so that the core can react to a pending interrupt
faster than is normally the case
•
recognizing low-latency interrupts as early as possible in the main pipeline.
To ensure that a change between normal and low interrupt latency configurations is
synchronized correctly, the FI bit must only be changed in using the sequence:
1.
Data Synchronization Barrier.
2.
Change FI Bit.
3.
Data Synchronization Barrier with interrupt disabled.
You must disable interrupts during this complete sequence of operations.
You must ensure that software systems only change the FI bit shortly after Reset, while
interrupts are disabled. In low interrupt latency configuration, software must only use
multi-word load/store instructions in ways that are fully restartable. In particular, they must not
be used on memory locations that produce non-idempotent side-effects for the type of memory
access concerned.
This enables, but does not require, implementations to make these instructions interruptible
when in low interrupt latency configuration. If the instruction is interrupted before it is
complete, the result might be that one or more of the words are accessed twice, but the
idempotency of the side-effects, if any, of the memory accesses ensures that this does not matter.
Note
There is a similar existing requirement with unaligned and multi-word load/store instructions
that access memory locations that can abort in a recoverable way. An abort on one of the words
accessed can cause a previously-accessed word to be accessed twice, once before the abort, and
once again after the abort handler has returned. The requirement in this case is either:
•
all side-effects are idempotent
•
the abort must either occur on the first word accessed or not at all.
The instructions that this rule currently applies to are:
•
ARM instructions LDC, all forms of LDM, LDRD, STC, all forms of STM, STRD, and
unaligned LDR, STR, LDRH, and STRH
•
Thumb instructions LDMIA, PUSH, POP, and STMIA, and unaligned LDR, STR, LDRH,
and STRH.
System designers are also advised that memory locations accessed with these instructions must
not have large numbers of wait-states associated with them if the best possible interrupt latency
is to be achieved.