1

I want to know how one single irq line is shared among multiple devices, i mean how they are physically connected at hardware level, do they use multiple APIC controllers for this, or what other methods are used.

valmiki
  • 701
  • 9
  • 24

1 Answers1

2

The most basic way to connect multiple devices to a single interrupt request line, so that every device can activate a request, is to use open collector.
When the request is granted, the acknowledge signal may be forwarded from device to device using a daisy chain.

Reinhard Männer
  • 14,022
  • 5
  • 54
  • 116
  • Thanks. Suppose, after an interrupt is generated, until isr (interrupt service routine) is executed interrupts are disabled on that irq line, so what if other devices sharing the irq line generate interrupt with in this time, are they getting queued in the interrupt controller or are they are neglected or how are multiple devices interrupts are managed on same irq line – valmiki Nov 13 '14 at 06:51
  • One way to handle this is the following: When the CPU accepts an interrupt of a certain priority, it raises its own priority level to this priority, thus blocking all further interrupts of this and lower priority. So devices requesting interrupt of these priorities simply continue asserting their request until the CPU has terminated the interrupt handler and lowers its priority again. In this moment, an active interrupt request will be granted. – Reinhard Männer Nov 13 '14 at 06:59
  • So then controllers like APIC will not accept any other interrupts on that irq line, until current interrupt is serviced, and until this time that particular device keeps on generating interrupts, so again multiple devices are contending for same irq line to get cpu attention, then is there any device to manage this contention. – valmiki Nov 13 '14 at 07:14
  • As is said in my answer, one way to handle this is a daisy chain, which selects the contenting devices sequentially. – Reinhard Männer Nov 13 '14 at 07:33
  • There is no such thing as lost interrupts. – RootPhoenix Jan 20 '15 at 18:29