GR740-UM-DS, Nov 2017, Version 1.7
301
www.cobham.com/gaisler
GR740
21
Multiprocessor Interrupt Controller with extended ASMP support
21.1
Overview
The system implements an interrupt scheme where interrupt lines are routed together with the remain-
ing AHB/APB bus signals forming an interrupt bus. The multiprocessor interrupt controller core is
attached to the AMBA bus as an APB slave and monitors the combined interrupt signals.
The interrupts generated on the interrupt bus are all forwarded to the interrupt controller. The interrupt
controller prioritizes, masks and propagates the interrupt with the highest priority. In order to support
separated ASMP configurations, the controller implements four internal interrupt controllers. Each
processor in a system can be dynamically routed to one of the internal controllers. For Symmetric
Multiprocessor (SMP) operation, several processors can be routed to the same internal interrupt con-
troller.
21.2
Operation
21.2.1 Support for Asymmetric Multiprocessing
Asymmetric Multiprocessing support means that parts of the interrupt controller are duplicated in
order to provide safe ASMP operation. The core’s register set is duplicated on 4 KiB address boundar-
ies. In addition to the traditional LEON multiprocessor interrupt controller register interface, the
core’s register interface will also enable the use of three new registers, one Asymmetric Multiprocess-
ing Control Register and two Interrupt Controller Select Registers.
Software can detect if the controller has been implemented with support for ASMP by reading the
Asymmetric Multiprocessing Control register. If the field NCTRL is 0, the core was not implemented
with ASMP extensions. If the value of NCTRL is non-zero, the core has NCTRL+1 sets of registers
with additional underlying functionality. From a software view this is equivalent to having NCTRL+1
interrupt controllers available and software can configure to which interrupt controller a processor
should connect.
After system reset, all processors are connected to the first interrupt controller accessible at the core’s
base address. Software can then use the Interrupt Controller Select Registers to assign processors to
other (internal) interrupt controllers. After assignments have been made, it is recommended to freeze
(A)MP IRQ
Processor 0
Processor 1
BUS
CONTROL
SLAVE 1
SLAVE 2
Processor
n
CTRL
Interrupt level
Interrupt acknowledge
Figure 36.
LEON multiprocessor system with Multiprocessor Interrupt controller
AMBA BUS