Interrupt handler with prioritized interrupt vector generator
First Claim
1. An interrupt handler for handling interrupts, comprising:
- a programmable prioritized interrupt array that stores priority levels for associated interrupts and information for handling the associated interrupt; and
a dynamic interrupt scanning state machine that scans the prioritized interrupt array upon receipt of one or more interrupts to locate the interrupt with a highest priority and identify the information for handling the interrupt with the highest priority.
2 Assignments
0 Petitions
Accused Products
Abstract
A hardware-implemented interrupt handler external to a processor handles interrupts destined for the processor. The interrupt handler has a programmable prioritized interrupt array with programmable registers that identify priority levels and handling processes for handling one or more interrupts. The interrupt handler also has an interrupt scanning state machine that scans the prioritized interrupt following receipt of an interrupt to extract the priority level and handling process associated with the interrupt. The interrupt handler is designed to handle interrupts in significantly less time than software implementations, thereby making the handler favorable for real time systems.
44 Citations
28 Claims
-
1. An interrupt handler for handling interrupts, comprising:
-
a programmable prioritized interrupt array that stores priority levels for associated interrupts and information for handling the associated interrupt; and
a dynamic interrupt scanning state machine that scans the prioritized interrupt array upon receipt of one or more interrupts to locate the interrupt with a highest priority and identify the information for handling the interrupt with the highest priority. - View Dependent Claims (2, 3, 4, 5)
a processor; and
an interrupt handler as recited in claim 1 to handle interrupts for the processor.
-
-
4. A vehicle computer for a vehicle comprising an interrupt handler as recited in claim 1.
-
5. A vehicle computer for a vehicle, comprising:
-
a CPU module with a processor and a first interrupt handler constructed as the interrupt handler recited in claim 1 to handle interrupts for the processor;
a bus connected to the CPU module; and
a support module connected to the bus, the support module having a second interrupt handler constructed as the interrupt handler recited in claim 1, the second interrupt handler supplying a highest priority interrupt derived at the support module as one of the interrupts handled by the first interrupt handler on the CPU module.
-
-
6. An interrupt handler for handling interrupts, comprising:
-
a programmable prioritized interrupt array that stores priority levels for associated interrupts and information for handling the associated interrupt; and
an interrupt scanning state machine that scans the prioritized interrupt array upon receipt of one or more interrupts to locate the interrupt with a highest priority and identify the information for handling the interrupt with the highest priority, wherein the information comprises at least one address to a remote interrupt handler.
-
-
7. An interrupt handler for handling interrupts, comprising:
-
a programmable prioritized interrupt array that stores priority levels for associated interrupts and information for handling the associated interrupt; and
an interrupt scanning state machine that scans the prioritized interrupt array upon receipt of one or more interrupts to locate the interrupt with a highest priority and identify the information for handling the interrupt with the highest priority, wherein the prioritized interrupt array may be programmed such that multiple different interrupts have identical priority levels.
-
-
8. An interrupt handler for handling interrupts, comprising:
-
a programmable prioritized interrupt array that stores priority levels for associated interrupts and information for handling the associated interrupt; and
an interrupt scanning state machine that scans the prioritized interrupt array upon receipt of one or more interrupts to locate the interrupt with a highest priority and identify the information for handling the interrupt with the highest priority, wherein the interrupt scanning state machine scans the prioritized interrupt array sequentially.
-
-
9. An interrupt handler for handling interrupts, comprising:
-
a programmable prioritized interrupt array that stores priority levels for associated interrupts and information for handling the associated interrupt; and
an interrupt scanning state machine that scans the prioritized interrupt array upon receipt of one or more interrupts to locate the interrupt with a highest priority and identify the information for handling the interrupt with the highest priority, wherein if the prioritized interrupt array locates an interrupt before scanning all of the prioritized interrupt array, the interrupt scanning state machine continues scanning until all of the prioritized interrupt array has been scanned to ensure that the interrupt with the highest priority is located.
-
-
10. An interrupt handler for handling interrupts, comprising:
-
a programmable prioritized interrupt array that stores priority levels for associated interrupts and information for handling the associated interrupt, wherein the prioritized interrupt array comprises;
a mask register to hold mask values for corresponding ones of the interrupts to indicate whether the interrupts are enabled; and
a priority/address register having a priority field to hold priority levels for the interrupts and an address field to hold addresses to interrupt service routines for servicing the associated interrupts; and
an interrupt scanning state machine that scans the prioritized interrupt array upon receipt of one or more interrupts to locate the interrupt with a highest priority and identify the information for handling the interrupt with the highest priority.
-
-
11. An interrupt handler for handling interrupts, comprising:
-
a programmable prioritized interrupt array that stores priority levels for associated interrupts and information for handling the associated interrupt; and
an interrupt scanning state machine that scans the prioritized interrupt array upon receipt of one or more interrupts to locate the interrupt with a highest priority and identify the information for handling the interrupt with the highest priority, wherein the interrupt scanning state machine is initially in an idle state until the prioritized interrupt array receives one or more interrupts; and
whereupon receipt of the one or more interrupts, the interrupt scanning state machine transitions to a scanning state to scan the prioritized interrupt array and identify which of the one or more interrupts has a highest priority; and
whereupon identifying the interrupt with the highest priority, the interrupt scanning state machine transitions to an interrupt selected state and accesses the prioritized interrupt array to output the information for handling the interrupt with the highest priority.
-
-
12. An interrupt handler for handling interrupts, comprising:
-
a programmable prioritized interrupt array for receiving one or more interrupts from multiple interrupt sources, the prioritized interrupt array having;
a mask register to hold mask values for corresponding interrupt sources to indicate whether the interrupts from the interrupt sources are enabled;
a priority register to hold priority levels for the interrupts received from the corresponding interrupt sources;
an address register to hold information for handling the interrupts received from the corresponding interrupt sources;
an interrupt scanning state machine coupled to the prioritized interrupt array, the interrupt scanning state machine remaining in an idle state until the prioritized interrupt array receives one or more active interrupts that are indicated by the mark register as being enabled;
whereeupon receipt of the one or more active interrupts, the interrupt scanning state machine transitions to a scanning state to scan the priority register and identify which of the one or more active interrupts has a highest priority; and
whereupon identifying the active interrupt with the highest priority, the interrupt scanning state machine transitions to an interrupt selected state and accesses the address register to output information for handling the active interrupt with the highest priority. - View Dependent Claims (13, 14, 15, 16, 17, 18)
a processor; and
an interrupt handler as recited in claim 12 to handle interrupts for the processor.
-
-
18. A vehicle computer for a vehicle comprising an interrupt handler as recited in claim 12.
-
19. A computing device comprising:
-
a processor;
an interrupt handler implemented in hardware and external to the processor to handle interrupts destined for the processor, the interrupt handler having programmable registers that define (1) whether interrupts from particular interrupt sources are enabled, (2) priority levels of the interrupts, and (3) information for handling the interrupts; and
upon receiving one or more interrupts, the interrupt handler through a dynamic state machine identifies a highest priority from among the one or more interrupts and provides an interrupt source identity and handling information for the highest priority interrupt to the processor. - View Dependent Claims (20, 21, 22)
a bus;
a computing device as recited in claim 19 coupled to the bus; and
a remote interrupt handler coupled to the bus to supply an external interrupt to the intedrrupt handler of the computing device.
-
-
23. A computing device comprising:
-
a processor;
an interrupt handler implemented in hardware and external to the processor to handle interrupts destined for the processor, the interrupt handler having programmable registers that define (1) whether interrupts from particular interrupt sources are enabled, (2) priority levels of the interrupts, and (3) information for handling the interrupts; and
upon receiving one or more interrupts, the interrupt handler identifies a highest priority from among the one or more interrupts and provides an interrupt source identity and handling information for the highest priority interrupt to the processor, wherein multiple different interrupts are assigned with identical priority levels.
-
-
24. A computing device comprising:
-
a processor;
an interrupt handler implemented in hardware and external to the processor to handle interrupts destined for the processor, the interrupt handler having programmable registers that define (1) whether interrupts from particular interrupt sources are enabled, (2) priority levels of the interrupts, and (3) information for handling the interrupts; and
upon receiving one or more interrupts, the interrupt handler identifies a highest priority from among the one or more interrupts and provides an interrupt source identity and handling information for the highest priority interrupt to the processor, wherein the interrupt handler comprises;
a programmable prioritized interrupt array that interrelates the programmable registers in a data structure; and
an interrupt scanning state machine that scans the prioritized interrupt array upon receipt of the one or more interrupts. - View Dependent Claims (25)
-
-
26. A computing device comprising:
-
a processor;
an interrupt handler implemented in hardware and external to the processor to handle interrupts destined for the processor, the interrupt handler having programmable registers that define (1) whether interrupts from particular interrupt sources are enabled, (2) priority levels of the interrupts, and (3) information for handling the interrupts; and
upon receiving one or more interrupts, the interrupt handler identifies a highest priority from among the one or more interrupts and provides an interrupt source identity and handling information for the highest priority interrupt to the processor, wherein one of the interrupt sources is a remote interrupt handler.
-
-
27. A method for handling interrupts comprising:
-
awaiting receipt of one or more interrupts;
upon receipt of the one or more interrupts, scanning using a dynamic state machine a prioritized interrupt array to determine which interrupt has a highest priority; and
upon identifying the interrupt with the highest priority, accessing the prioritized interrupt array to obtain information for handling the interrupt with the highest priority.
-
-
28. A method for handling interrupts comprising:
-
awaiting receipt of one or more interrupts;
upon receipt of the one or more interrupts, scanning a prioritized interrupt array to determine which interrupt has a highest priority;
upon identifying the interrupt with the highest priority, accessing the prioritized interrupt array to obtain infortnation for handling the interrupt with the highest priority; and
repeating the scanning and the accessing until all of the one or more interrupts have been handled.
-
Specification