INSTRUCTION AND LOGIC FOR REAL-TIME BEHAVIOR OF INTERRUPTS
A processor includes a core and an interrupt control unit. The core includes logic to handle an interrupt. The interrupt control unit includes logic to receive another interrupt. Furthermore, the interrupt control unit includes logic to conditionally dispatch the new interrupt to the core based upon priority of the interrupts and time spent by the new interrupt waiting for dispatch to the core.
1 . A processor, comprising:
a core including a first logic to handle a first interrupt;
an interrupt control unit circuit (ICU), including:
a second logic to receive a second interrupt; and
a third logic to conditionally dispatch the second interrupt to the core based upon a priority of the first interrupt, a priority of the second interrupt, and a time spent by the second interrupt waiting for dispatch to the core.
2 . The processor of claim 1 , wherein:
interrupts are associated with one of a plurality of priority levels;
the processor further comprises time threshold registers specifying a threshold time for each of the priority levels; and
the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt; and
a fifth logic to wait for the threshold time of the priority level of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the core, based on a determination that the first interrupt priority is higher than the second interrupt priority.
3 . The processor of claim 1 , wherein:
the processor further comprises time threshold registers specifying a threshold time for each interrupt; and
the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt; and
a fifth logic to wait for the threshold time of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the core, based on a determination that the first interrupt priority is higher than the second interrupt priority.
4 . The processor of claim 1 , wherein the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt; and
a fifth logic to dispatch the second interrupt to the core to preempt the first interrupt after a determination that the priority of the second interrupt is lower than the priority of the first interrupt.
5 . The processor of claim 1 , wherein:
the processor further includes core affinity registers for each interrupt to specify a destination for each interrupt; and
the ICU further includes:
a fourth logic to wait for a threshold time of the second interrupt specified in a corresponding time threshold register;
a fifth logic to dispatch the second interrupt to a destination specified in a corresponding core affinity register upon expiration of the threshold time.
6 . The processor of claim 1 , wherein:
interrupts are associated with one of a plurality of priority levels;
the processor further comprises time threshold registers specifying a threshold time for each of the priority levels; and
the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt;
a fifth logic to wait for the threshold time of the priority level of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the core, based upon a determination that the first interrupt priority is higher than the second interrupt priority; and
a sixth logic to dispatch the second interrupt to preempt the first interrupt after the threshold time has expired.
7 . The processor of claim 1 , wherein:
the processor further comprises time threshold registers specifying a threshold time for each interrupt; and
the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt;
a fifth logic to wait for the threshold time of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the core, based upon a determination that the first interrupt priority is higher than the second interrupt priority; and
a sixth logic to dispatch the second interrupt to preempt the first interrupt after the threshold time has expired.
8 . A method, comprising:
processing a first interrupt at a core;
receiving a second interrupt; and
conditionally dispatching the second interrupt to the core based upon a priority of the first interrupt, a priority of the second interrupt, and a time spent by the second interrupt waiting for dispatch to the core.
9 . The method of claim 8 , wherein:
interrupts are associated with one of a plurality of priority levels; and
the method further comprises:
comparing the priority of first interrupt against the priority of the second interrupt; and
waiting for a threshold time of a priority level of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the core, based on a determination that the first interrupt priority is higher than the second interrupt priority.
10 . The method of claim 8 , further comprising:
comparing the priority of first interrupt against the priority of the second interrupt; and
waiting for a threshold time of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the core, based on a determination that the first interrupt priority is higher than the second interrupt priority.
11 . The method of claim 8 , further comprising:
comparing the priority of first interrupt against the priority of the second interrupt; and
dispatching the second interrupt to the core to preempt the first interrupt after a determination that a priority of the second interrupt is lower than the priority of the first interrupt.
12 . The method of claim 8 , further comprising:
waiting for a threshold time of the second interrupt specified in a corresponding time threshold register;
dispatching the second interrupt to a destination specified in a corresponding core affinity register upon expiration of the threshold time.
13 . The method of claim 8 , further comprising:
comparing the priority of first interrupt against the priority of the second interrupt;
waiting for a threshold time specified in a corresponding time threshold register before dispatching the second interrupt to the core, based upon a determination that the first interrupt priority is higher than the second interrupt priority; and
dispatching the second interrupt to preempt the first interrupt after the threshold time has expired.
14 . A system, comprising:
a processor including a first logic to handle a first interrupt;
an interrupt control unit circuit (ICU), including:
a second logic to receive a second interrupt; and
a third logic to conditionally dispatch the second interrupt to the processor based upon a priority of the first interrupt, a priority of the second interrupt, and a time spent by the second interrupt waiting for dispatch to the processor.
15 . The system of claim 14 , wherein:
interrupts are associated with one of a plurality of priority levels;
the system further comprises time threshold registers specifying a threshold time for each of the priority levels; and
the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt; and
a fifth logic to wait for the threshold time of the priority level of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the processor, based on a determination that the first interrupt priority is higher than the second interrupt priority.
16 . The system of claim 14 , wherein:
the system further comprises time threshold registers specifying a threshold time for each interrupt; and
the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt; and
a fifth logic to wait for the threshold time of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the processor, based on a determination that the first interrupt priority is higher than the second interrupt priority.
17 . The system of claim 14 , wherein the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt; and
a fifth logic to dispatch the second interrupt to the processor to preempt the first interrupt after a determination that the priority of the second interrupt is lower than the priority of the first interrupt.
18 . The system of claim 14 , wherein:
the system further includes core affinity registers for each interrupt to specify a destination for each interrupt; and
the ICU further includes:
a fourth logic to wait for a threshold time of the second interrupt specified in a corresponding time threshold register, based on a determination that the first interrupt priority is higher than the second interrupt priority;
a fifth logic to dispatch the second interrupt to a destination specified in a corresponding core affinity register upon expiration of the threshold time.
19 . The system of claim 14 , wherein:
interrupts are associated with one of a plurality of priority levels;
the system further comprises time threshold registers specifying a threshold time for each of the priority levels; and
the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt;
a fifth logic to wait for the threshold time of the priority level of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the processor, based upon a determination that the first interrupt priority is higher than the second interrupt priority; and
a sixth logic to dispatch the second interrupt to preempt the first interrupt after the threshold time has expired.
20 . The system of claim 14 , wherein:
the system further comprises time threshold registers specifying a threshold time for each interrupt; and
the ICU further includes:
a fourth logic to compare the priority of first interrupt against the priority of the second interrupt;
a fifth logic to wait for the threshold time of the second interrupt specified in a corresponding time threshold register before dispatching the second interrupt to the processor, based upon a determination that the first interrupt priority is higher than the second interrupt priority; and
a sixth logic to dispatch the second interrupt to preempt the first interrupt after the threshold time has expired.