Programmers Model
ARM DDI 0363G
Copyright © 2006-2011 ARM Limited. All rights reserved.
3-18
ID073015
Non-Confidential
Memory that is marked as Strongly-ordered or Device type is typically sensitive to the number
of reads or writes performed. Because of this, instructions that access Strongly-ordered or
Device memory are never abandoned when they have started accessing memory. These
instructions always complete either all or none of their memory accesses. Therefore, to
minimize the interrupt latency, you must avoid the use of multiword load/store instructions to
memory locations that are marked as Strongly-ordered or Device.
Interrupt controller
The processor includes a VIC port for connection of a
Vectored Interrupt Controller
(VIC). An
interrupt controller is a peripheral that handles multiple interrupt sources. Features usually
found in an interrupt controller are:
•
multiple interrupt request inputs, one for each interrupt source, and one or more
amalgamated interrupt request outputs to the processor
•
the ability to mask out particular interrupt requests
•
prioritization of interrupt sources for interrupt nesting.
In a system with an interrupt controller with these features, software is still required to:
•
determine from the interrupt controller which interrupt source is requesting service
•
determine where the service routine for that interrupt source is loaded
•
mask or clear that interrupt source, before re-enabling processor interrupts to permit
another interrupt to be taken.
A VIC does all these in hardware to reduce the interrupt latency. It supplies the starting address
of the service routine corresponding to the highest priority asserted interrupt source directly to
the processor. When the processor has accepted this address, it masks the interrupt so that the
processor can re-enable interrupts without clearing the source. The PL192 VIC is an AMBA
compliant, SoC peripheral that is developed, tested, and licensed by ARM.
You can use the VIC port to connect a PL192 VIC to the processor. See the
ARM PrimeCell
Vectored Interrupt Controller (PL192) Technical Reference Manual
for more information about
the PL192 VIC. You can enable the VIC port by setting the VE bit in the SCTLR. When the
VIC port is enabled and an IRQ occurs, the processor performs an handshake over the VIC
interface to obtain the address of the handling routine for the IRQ.
Interrupt entry flowchart
is a flowchart for processor interrupt recognition. It shows all the
necessary decisions and actions for complete interrupt entry.