Method and apparatus using a tree structure for the dispatching of interrupts
First Claim
1. In a computer system comprising a processor and a plurality of devices coupled to a bus, an interrupt dispatching apparatus for determining an interrupt source from the plurality of devices that issued an interrupt request to the processor, said interrupt dispatching apparatus comprising:
- an interrupt source tree (IST) comprising a plurality of hierarchically arranged nodes, said nodes comprising a root node and a plurality of leaf nodes connected to higher level nodes in the hierarchy through branches, said root node providing a branch direction to at least one leaf node, at least one of said leaf nodes comprising an identification of an interrupt source;
an interrupt dispatcher, responsive to an interrupt from an interrupt source, traversing said IST by invoking a routine pointed to by said root node to determine a branch direction to one of said plurality of leaf nodes, said one of said plurality of leaf nodes identifying said interrupt source.
2 Assignments
0 Petitions
Accused Products
Abstract
Each device is represented by a node in a hierarchical tree, referred to herein as an interrupt source tree (IST). The root and intermediate nodes of the IST represent dispatching or determining points; this removes the need for the device drivers to contain dispatching code; the drivers now only need to contain interrupt handling code specific to the device itself. At these nodes code is executed to determine which branch to take down the IST. The bottom nodes are the leaf nodes; the leaf nodes identify the device interrupt handler. By moving the determination steps performed by the different device drivers to the nodes of the IST, the device drivers are modular and portable. Furthermore, changes to the computer system configuration, which in the prior art would require modification of all device drivers, can be adapted to by modification of the IST.
-
Citations
28 Claims
-
1. In a computer system comprising a processor and a plurality of devices coupled to a bus, an interrupt dispatching apparatus for determining an interrupt source from the plurality of devices that issued an interrupt request to the processor, said interrupt dispatching apparatus comprising:
-
an interrupt source tree (IST) comprising a plurality of hierarchically arranged nodes, said nodes comprising a root node and a plurality of leaf nodes connected to higher level nodes in the hierarchy through branches, said root node providing a branch direction to at least one leaf node, at least one of said leaf nodes comprising an identification of an interrupt source; an interrupt dispatcher, responsive to an interrupt from an interrupt source, traversing said IST by invoking a routine pointed to by said root node to determine a branch direction to one of said plurality of leaf nodes, said one of said plurality of leaf nodes identifying said interrupt source.
-
- 2. An apparatus for servicing interrupt requests in a computer system, the apparatus comprising an interrupt source tree (IST) comprising a plurality of hierarchically arranged nodes including a plurality of leaf nodes, the plurality of leaf nodes identifying at least one interrupt handler.
-
7. A method for servicing interrupt requests in a computer system, the method comprising the computer-implemented steps of:
-
generating an interrupt source tree (IST) comprising a plurality of hierarchically arranged nodes; and responsive to an interrupt request, traversing the IST to locate an interrupt handler pointed to by one of the plurality of nodes. - View Dependent Claims (8, 9, 10)
-
-
11. A method for controlling interrupt service in a computer system, the method comprising the steps of:
-
generating an interrupt source tree (IST) comprising a plurality of nodes hierarchically arranged to be traversed to locate and execute an interrupt handler pointed to by a leaf node of the plurality of nodes; and executing an interrupt disable routine (IDR) pointed to by the plurality of nodes to disable execution of the interrupt handler. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method for servicing interrupt requests in a computer system, the method comprising the computer-implemented steps of:
-
(a) generating an interrupt source tree (IST) comprising a hierarchical structure of nodes including a root node and a plurality of leaf nodes connected to the root node via branches; (b) traversing the IST from the root node of the IST to a first leaf node of the IST in response to a first interrupt request; and (c) executing an interrupt handler pointed to by the first leaf node to service the first interrupt request. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. A method for servicing interrupt requests in a computer system, the method comprising the steps of:
-
(a) generating an interrupt source tree (IST) comprising a plurality of nodes; (b) setting a root node of the plurality of nodes to be a current evaluation node; (c) executing a routine pointed to by the current evaluation node, the routine generating a value; (d) if the value identifies a child node of the current evaluation node, setting the child node to be the current evaluation node; (e) repeating steps (c) through (d) until the value does not identify a child node of the current evaluation node; (f) if the value indicates that an interrupt handler has executed, but an interrupt request has not been serviced, and if the current evaluation node is not the root node, repeating the following steps until the current evaluation node is the root node or until the value indicates that an interrupt request has been serviced; (f1) determining whether the parent node of the current evaluation node is to be reevaluated; (f2) if the parent node of the current evaluation node is to be reevaluated, performing the following steps; (f2a) setting a parent node of the current evaluation node to be the current evaluation node; (f2b) repeating steps (c) through (f); (f3) if the parent node of the current evaluation node is not to be reevaluated, and if another child node of a set of child nodes comprising the current evaluation node has not been set to be the current evaluation node, performing the following steps; (f3a) setting the other child node to be the current evaluation node; (f3b) repeating steps (c) through (f); (f4) if the parent node of the current evaluation node is not to be reevaluated, and if each child node of the set of child nodes comprising the current evaluation node has been set to be the current evaluation node, setting a parent node of the current evaluation node to be the current evaluation node; (g) if the value indicates that an interrupt handler has serviced an interrupt request, and if the current evaluation node is not a root node of the IST, repeating the following steps until the current evaluation node is the root node; (g1) setting the parent node of the current evaluation node to be the current evaluation node; (g2) determining whether the parent node of the current evaluation node is to be reevaluated; and (g3) if the parent node of the current evaluation node is to be reevaluated, repeating steps (c) through (g). - View Dependent Claims (28)
-
Specification