what is the difference between PPI, SPI and SGI interrupts?

Saurabh Sengar picture Saurabh Sengar · Dec 30, 2014 · Viewed 11.3k times · Source

In ARM architecture I have read that there are 3 kinds of interrupt :

  • PPI - Per processor interrupts
  • SPI - Shared processor interrupts
  • SGI - Software generated interrupts

I want to know what are these, and how they are different from each other ?

Answer

sramij picture sramij · Apr 13, 2015

Software Generated Interrupt (SGI) This interrupt is generated explicitly by software by writing to a dedicated distributor register, the Software Generated Interrupt Register. It is most commonly used for inter-core communication. SGIs can be targeted at all, or at a selected group of cores in the system. Interrupt numbers 0-15 are reserved for this. The software manages the exact interrupt number used for communication.

Private Peripheral Interrupt (PPI) This interrupt is generated by a peripheral that is private to an individual core. Interrupt numbers 16-31 are reserved for this. PPIs identify interrupt sources private to the core, and are independent of the same source on another core, for example, per-core timer.

Shared Peripheral Interrupt (SPI) This interrupt is generated by a peripheral that the Interrupt Controller can route to more than one core. Interrupt numbers 32-1020 are used for this. SPIs are used to signal interrupts from various peripherals accessible across the whole system.

You can read here