0

Why are specific IRQ values assigned to certain devices? For example, why is the system timer assigned the value of 0 and not 10?

1
  • Poorly formed question. IRQ assignment is processor and board dependent.
    – sawdust
    Aug 14, 2014 at 4:40

1 Answer 1

2

The IRQ level (IRQL) is also its priority; if two interrupt requests come in at the same time, the one with the lower level is handled first. That means if the system timer has IRQL 10, it would be relatively low priority and would be delayed by many other devices. Since the system timer is (or was, once upon a time) responsible for providing the system's ticks, it's essential that it not be interfered with

3
  • This is also why no IRQ can be the same; two devices in conflict with same IRQ would cause a deadlock.
    – Edward
    Aug 14, 2014 at 4:21
  • 1
    @Edward - "This is also why no IRQ can be the same" -- Incorrect, interrupts can be shared among multiple devices. Most interrupt controllers also llow interrupt lines to have the same priority. "two devices in conflict with same IRQ would cause a deadlock." Incorrect, there is no deadlock. Each interrupt line can be serviced in turn by the interrupt controller.
    – sawdust
    Aug 14, 2014 at 4:45
  • 1
    "The IRQ level (IRQL) is also its priority" -- A modern interrupt controller allows assignment of a priority to each interrupt line. "the one with the lower level is handled first." -- There is no standard or convention for priority-to-numerical valuing. A higher priority can have larger numerical value, or in another system the higher priority could have a smaller numerical value.
    – sawdust
    Aug 14, 2014 at 4:50

You must log in to answer this question.