What is an Interrupt Controller ?

1. What is an Interrupt Controller?

An Interrupt controller is a programable peripheral that manages the interrupt requests from the hardware or other peripherals to the CPU. Processor standards evolved with an Interrupt Controller to reduce the burden on the CPU Designs. The interrupt Controller is a programable peripheral that enables/disables the interrupt requests and selects the interrupt priority. As the CPU has limited hardware lines and computing, the interrupt controller extends the CPU scope for multiple interrupts by multiplexing interrupts from peripherals.

When an interrupt is triggered, the CPU gets notified with the interrupt number. Interrupt number used to execute the respective interrupt service routine (ISR) on the CPU.

2. ARM Architecture supports these types of interrupt requests:

1. IRQs: Interrupt ReQuest type supports multiple sources at the same time. That is ideal for less real-time applications, as there can be a slight delay in response because of the support of multiple sources for an interrupt. IRQs used for general applications.

2. FIQs: Fast Interrupt Request type support only one source of an interrupt at a time. FIQ has supports for dedicated register bank support for the interrupts so that there is no lead time spent in stacking and unstacking the normal program execution.