Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine
First Claim
1. A method for reducing interrupt overhead in device drivers comprising:
- asserting a high level hardware interrupt in response to a packet arrival through a network device, said packet destined to one of a plurality of data streams;
assigning a generation number to said one of said plurality of data streams to which said packet is destined;
associating said generation number with said packet;
transferring process control from said high level hardware interrupt to a lower level software interrupt allowing other higher priority processes to execute;
comparing said generation number assigned to said one of said plurality of data streams with said generation number associated with said packet; and
forwarding said packet to said one of said plurality of data streams if said generation numbers are equal.
2 Assignments
0 Petitions
Accused Products
Abstract
A network device such as an Asynchronous Transfer Method (ATM) device with a high level interrupt which begins processing a packet and transfers process control to a lower level software interrupt which completes the packet processing. Prior to the transfer of process control, the hardware interrupt generates a put information for the packet which is then retrieved and utilized by the software interrupt to process the packet. A unique generation number is assigned to each data stream generated for the packet. The generation number associated with a given packet'"'"'s put information is compared to the generation number of a data stream to which the packet is destined to. If the generation numbers are equal, it is assumed that the data stream to which the packet is destined to has not been changed and the packet is forwarded to the data stream for further processing.
-
Citations
18 Claims
-
1. A method for reducing interrupt overhead in device drivers comprising:
-
asserting a high level hardware interrupt in response to a packet arrival through a network device, said packet destined to one of a plurality of data streams; assigning a generation number to said one of said plurality of data streams to which said packet is destined; associating said generation number with said packet; transferring process control from said high level hardware interrupt to a lower level software interrupt allowing other higher priority processes to execute; comparing said generation number assigned to said one of said plurality of data streams with said generation number associated with said packet; and forwarding said packet to said one of said plurality of data streams if said generation numbers are equal. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus comprising:
-
a high level hardware interrupt module asserted by a network device and configured to request a central processing unit (CPU) to support packet input/output associated with said network device and to interrupt process flow to process transmission of a packet from said network device, a generation number being assigned to a data stream to which said packet is destined, said generation number being associated with said packet; and a low level software interrupt module configured to take over process control from said high level hardware interrupt module allowing other higher priority processes to execute, said software interrupt module comparing said generation number assigned to said data stream with said generation number associated with said packet, forwarding said packet to its destination if said generation numbers are equal, said low level software interrupt module coupled to said high level hardware interrupt module. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A system comprising:
-
an asynchronous transfer method (ATM) interface circuit having, a host memory which contains, a high level hardware interrupt module asserted by a network device and configured to request a central processing unit (CPU) to support packet input/output associated with said network device and interrupting process flow to process transmission of a packet from said network device, a generation number being assigned to a data stream to which said packet is destined, said generation number being associated with said packet, and a low level software interrupt module configured to take over process control from said high level hardware interrupt module allowing other higher priority processes to execute, said software interrupt module comparing said generation number assigned to said data stream with said generation number associated with said packet, forwarding said packet to its destination if said generation numbers are equal, said low level software interrupt module coupled to said high level hardware interrupt module; and said CPU for executing said high level hardware interrupt module and said low level software interrupt module. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification