Inter-processor interrupt

An inter-processor interrupt (IPI) is a special type of interrupt by which one processor may interrupt another processor in a multiprocessor system if the interrupting processor requires action from the other processor. Actions that might be requested include:

Mechanism

The M65MP option of OS/360 used the Direct Control feature of the S/360 to generate an interrupt on another processor; on S/370 and its successors, including z/Architecture, the SIGNAL PROCESSOR instruction provides a more formalized interface.

On IBM PC compatible computers that use the Advanced Programmable Interrupt Controller (APIC), IPI signalling is often performed using the APIC. When a CPU wishes to send an interrupt to another CPU, it stores the interrupt vector and the identifier of the target's local APIC in the Interrupt Command Register (ICR) of its own local APIC. A message is then sent via the APIC bus to the target's local APIC, which therefore issues a corresponding interrupt to its own CPU.

Examples

In a multiprocessor system running Microsoft Windows, a processor may interrupt another processor for the following reasons, in addition to the ones listed above:

  1. queue a DISPATCH_LEVEL interrupt to schedule a particular thread for execution;
  2. kernel debugger breakpoint.

IPIs are given an IRQL of 29.[1]

gollark: Fear it.
gollark: semi: just because I care about filesize doesn't mean I don't care about code quality!
gollark: I only have 512GB of disk space. That is only enough for 500 billion trailing newlines.
gollark: Why do you think I use such short variable names and so many oneliners?
gollark: They add an entire BYTE to my files for what?

See also

References

  1. Matt (2002-04-28). "Understanding IRQL". Retrieved 2014-12-06.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.