Interrupts
ARM DDI 0165B
Copyright 2000 ARM Limited. All rights reserved.
5-5
Example approaches are:
Analyze the system and ensure enough instructions separate the instruction that
removes the interrupt and the instruction that re-enables interrupts on the
ARM9E-S.
Have a software polling mechanism that reads back a status bit from the system
interrupt controller until it indicates that the interrupt has been removed before
re-enabling interrupts.
Have a hardware system that stalls the ARM9E-S until the interrupt has been
removed.
5.2.4
Interrupt registers
Before use, the nFIQ and nIRQ inputs are registered internally to the ARM9E-S. To
improve interrupt latency, the registers are not conditioned by CLKEN, and run freely,
off the system clock, CLK. Internally, the ARM9E-S can use the registered nFIQ or
nIRQ status to prepare for interrupt entry, even if the rest of the core is being waited by
CLKEN. The registered interrupt signals can only update if CLK is running. Because
of this, the best interrupt latency can only be achieved if CLK is not stopped. This
requirement is counteracted by power saving features of a system (for instance,
stopping CLK while waiting for a slow memory device, or a power-down mode where
CLK is stopped). In systems like this, you can still achieve the best interrupt latency if
you replace the final disabled CLK cycle with one waited (CLKEN = 0) cycle.
Figure 5-2 shows a system where CLK is stopped by external clock-gating for a
number of cycles.
Figure 5-2 Stopping CLK for power saving
benefits of the system shown in
Figure 5-2, while at the same time achieving best
interrupt latency.
CLK
CLKEN