Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR INTERRUPT HANDLING
Document Type and Number:
WIPO Patent Application WO/2000/052895
Kind Code:
A2
Abstract:
A network interface is polled by a host computer system process to whether any packets have been received. Interrupts that would normally be issued by the network interface in response to the transfer of packets to the host system are suppressed during polling. If, however, a predetermined period of time elapses or a predetermined number of packets are received after a previous poll or a previous interrupt, then an interrupt may be generated. A time counter may track the passage of time; a packet counter may track the number of packets. After each polling operation or processing of an interrupt, the time and packet counters are reset to threshold values and decrement toward a final time count and a final packet count. Thus, a packet transferred after one polling operation or interrupt does not cause the issuance of an interrupt to the host processor unless a time or packet counter reaches its final value.

Inventors:
GENTRY DENTON
Application Number:
PCT/US2000/005243
Publication Date:
September 08, 2000
Filing Date:
February 29, 2000
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SUN MICROSYSTEMS INC (US)
International Classes:
H04L12/56; H04L29/06; (IPC1-7): H04L29/00
Foreign References:
EP0496177A11992-07-29
US5319752A1994-06-07
Attorney, Agent or Firm:
Vaughan, Daniel E. (Suite 310 702 Marshall Stree, Redwood City CA, US)
Hanna, Peter William Derek (11 Mespil Road, Dublin 4, IE)
Download PDF:
Claims:
What Is Claimed Is:
1. A method of controlling the generation of interrupts from a communication device, comprising: operating a communication device in an interrupt mode until a rate of information transfer from said communication device reaches a first level, wherein a host computer identifies a transfer of a first packet of information in said interrupt mode by receiving an interrupt generated by said communication device; operating said communication device in a polling mode after said first level of information transfer is detected, wherein said host computer identifies a transfer of a second packet of information in said polling mode by polling said communication device; and returning said communication device to said interrupt mode of operation if a rate of information transfer decreases to a second level.
2. The method of claim 1, further comprising returning said communication device to said interrupt mode of operation if a predetermined length of time passes without said communication device receiving a poll from said host computer.
3. The method of claim 1, further comprising returning said communication device to said interrupt mode of operation if a predetermined amount of information is transferred from said communication device without said communication device receiving a poll from said host computer.
4. The method of claim 1, further comprising returning said communication device to said interrupt mode if said communication device receives a predetermined number of polls without detecting the transfer of a packet of information.
5. The method of claim 1, wherein said operating a communication device in an interrupt mode comprises: transferring a first packet of information from said communication device; generating a first packettransferred interrupt to a host computer from said communication device; initializing a time counter in response to completion of processing of said first packettransferred interrupt by said host computer, wherein said time counter is configured to increment through a first range of time counts after said initializing; initializing a packet counter in response to said completion of processing of said first packettransferred interrupt by said host computer, wherein said packet counter is configured to increment through a first range of packet counts after said initializing; and if either said time counter is incremented to a first final time count or said packet counter is incremented to a first final packet count, issuing another packettransferred interrupt to said host computer in response to transfer of another packet.
6. The method of claim 5, wherein said initializing a time counter comprises setting said time counter to a first initial time count.
7. The method of claim 6, wherein said initializing a packet counter comprises setting said packet counter to a first initial packet count.
8. The method of claim 5, wherein said operating said communication device in a polling mode comprises: receiving a poll from a polling module operating on said host computer, wherein said poll comprises an examination of said communication device to determine if a packet of information has been transferred from said communication device; reinitializing said time counter in response to said poll, wherein said time counter is configured to increment through a second range of time counts after said reinitializing; and reinitializing said packet counter in response to said poll, wherein said packet counter is configured to increment through a second range of packet counts after said re initializing.
9. The method of claim 8, wherein said polling mode further comprises: transferring a second packet; and if either said time counter is incremented to a second final time count or said packet counter is incremented to a second final packet count, issuing a second packettransferred interrupt to said host computer in response to said transfer of said second packet.
10. The method of claim 8, wherein said initializing said time counter in response to said poll comprises setting said time counter to a second initial time count.
11. The method of claim 10, wherein said initializing said packet counter in response to said poll comprises setting said packet counter to a second initial packet count.
12. The method of claim 11, further comprising: storing said first initial time count in a first time threshold storage device ; storing said second initial time count in a second time threshold storage device; storing said first initial packet count in a first packet threshold storage device; and storing said second initial packet count in a second packet threshold storage device.
13. The method of claim 8, wherein said second range of time counts is larger than said first range of time counts and said second range of packet counts is larger than said first range of time counts.
14. The method of claim 1, wherein said operating said communication device in a polling mode comprises: examining a set of alias indicators in said communication device, wherein each of said alias indicators is configured to change from a first state to a second state in association with a corresponding status indicator in a set of status indicators; altering one or more of said alias indicators from said second state to said first state; and selectively altering one or more of said status indicators from said second state to said first state.
15. The method of claim 14, wherein said set of status indicators includes a packettransferred indicator configured to change from said first state to said second state in response to said transfer of said second packet from said communication device.
16. The method of claim 1, wherein said communication device is a network interface.
17. A method of facilitating polling of a communication device, comprising: maintaining a set of status indicators, including a packettransferred indicator configured to change from a first state to a second state in response to transfer of a packet from a communication device; maintaining a set of alias indicators, including an alias packettransferred indicator configured to change from said first state to said second state when said packettransferred indicator changes from said first state to said second state; transferring a first packet from said communication device; altering said packettransferred indicator from said first state to said second state; receiving a poll at said communication device from a polling module of a host computer, wherein said polling module is configured to poll said communication device to determine if a packet has been transferred; returning said alias packettransferred indicator from said second state to said first state; and selectively returning one or more of said status indicators from said second state to said first state, including said packettransferred indicator.
18. The method of claim 17, further comprising disabling issuance of a packet transferred interrupt from said communication device, wherein said packettransferred interrupt is normally issued in response to transfer of a packet.
19. The method of claim 18, further comprising: enabling said issuance of a packettransferred interrupt if a predetermined period of time has elapsed after said returning said alias packettransferred indicator or said selectively returning said packettransferred indicator; and enabling said issuance of a packettransferred interrupt if a predetermined number of packets have been transferred from said communication device after said selectively returning said alias packettransferred indicator or said returning said packettransferred indicator.
20. The method of claim 18, wherein said disabling comprises initializing a time counter to hold an initial time count, wherein said time counter is configured for incrementing said time count toward a final time count after said initializing.
21. The method of claim 20, wherein said initial time count comprises a first time threshold value stored in a first time threshold storage device and said incrementing comprises incrementing said time count toward zero from said first time threshold.
22. The method of claim 18, wherein said disabling comprises initializing a packet counter to hold an initial packet count, wherein said packet counter is configured for incrementing said packet count toward a final packet count after said initializing.
23. The method of claim 22, wherein said initial packet count comprises a first packet threshold value stored in a first packet threshold storage device and said incrementing comprises incrementing said packet count toward zero.
24. The method of claim 17, wherein said poll comprises examining said set of alias indicators.
25. The method of claim 17, wherein said selectively returning comprises applying a mask, said mask comprising a mask indicator configured to indicate whether a predetermined status indicator is to be altered from said second state to said first state when a corresponding alias indicator is altered from said second state to said first state.
26. The method of claim 17, further comprising: initializing a time count to a first threshold time count stored in a first time threshold storage device associated with a first level of traffic transferred from said communication device, wherein said time count is configured to decrement after said initializing; and initializing a packet count to a first threshold packet count stored in a first packet threshold storage device associated with a first level of traffic transferred from said communication device, wherein said packet count is configured to decrement after said initializing; wherein an interrupt normally issued in response to transfer of a packet from said communication device is suppressed unless said time count reaches a final time count or said packet count reaches a final packet count.
27. The method of claim 26, further comprising: reinitializing said time count to a second threshold time count stored in a second time threshold storage device associated with a second level of traffic transferred from said communication device, wherein said time count is configured to decrement after said re initializing; and reinitializing said packet count to a second threshold packet count stored in a second packet threshold storage device associated with a second level of traffic transferred from said communication device, wherein said packet count is configured to decrement after said reinitializing.
28. The method of claim 17, wherein said returning said alias packettransferred indicator comprises clearing said set of alias indicators.
29. The method of claim 17, wherein said communication device is a network interface.
30. An interrupt modulator for controlling the generation of interrupts from a communication device, comprising: an indicator configured to indicate the transfer of a packet from a communication device, wherein said indicator is set from a first state to a second state in response to said transfer of said packet and is reset to said first state when a poll is received; a first time threshold storage device configured to store a first initial time count; a second time threshold storage device configured to store a second initial time count; a time counter configured to store a time count, wherein said time count is incrementable in response to a clock signal; and an interrupt generator configured to generate an interrupt in response to said transfer of a packet if said time count reaches a final time count; wherein said time count is reset to one of said first initial time count and said second initial time count in response to said poll or a termination of processing of said interrupt.
31. The interrupt modulator of claim 30, further comprising: a first packet threshold storage device configured to store a first initial packet count; a second packet threshold storage device configured to store a second initial packet count; and a packet counter configured to hold a packet count, wherein said packet count is incrementable in response to transfer of packets; wherein said interrupt generator is further configured to generate an interrupt in response to said transfer of said packet if said packet count reaches a final packet count; and wherein said packet count is reset to one of said first initial packet count and said second initial packet count in response to said poll or said termination of processing of said interrupt.
32. The interrupt modulator of claim 30, wherein said indicator comprises a packettransferred indicator of a status module, said status module comprising a set of indicators that change from said first state to said second state in response to predetermined events.
33. The interrupt modulator of claim 30, wherein said indicator is a status module comprising a packettransferred indicator configured to enter a second state from a first state in response to the transfer of a packet.
34. The interrupt modulator of claim 30, wherein said indicator comprises an alias packettransferred indicator of an alias module, wherein said alias module comprises a set of virtual indicators configured to change from said first state to said second state when corresponding indicators in a status module change from said first state to said second state.
35. The interrupt modulator of claim 30, wherein said indicator is an alias module comprising an alias packettransferred indicator configured to change from said first state to said second state when a packettransferred indicator of a set of status indicators changes from said first state to said second state.
36. The interrupt modulator of claim 34, further comprising a mask, said mask comprising a set of entries corresponding to said virtual indicators and said status register indicators, and wherein a status register indicator changes state when a corresponding virtual indicator changes state if said corresponding entry is set to a predetermined value.
37. The interrupt modulator of claim 30, further comprising: a set of status indicators configured to change from a first status state to a second status state in response to predetermined conditions in said communication device, wherein said set of status indicators includes said indicator; a set of virtual status indicators, wherein each of said virtual status indicators is configured to change from said first status state to said second status state when a corresponding status indicator in said set of status indicators changes from said first status state to said second status state; and a set of return indicators, wherein each of said return indicators is configured to selectively indicate whether a predetermined status indicator in said set of status indicators is to be returned to said first status state when a corresponding virtual status indicator in said set of virtual status indicators returns to said first status state; wherein one or more of said set of virtual status indicators are returned from said second status state to said first status state when said poll is received.
38. The interrupt modulator of claim 30, wherein said poll is received from a polling module of a host computer.
39. The interrupt modulator of claim 30, wherein said communication device is a network interface.
40. A computer system for receiving packets from a network, comprising: a packettransferred indicator configured to indicate a transfer of a first packet from a network interface, wherein said packettransferred indicator changes from a first state to a second state in response to transfer of said packet; an alias packettransferred indicator configured to change from said first state to said second state when said packettransferred indicator changes from said first state to said second state ; a polling module for polling said alias packettransferred indicator to determine if a packet has been transferred; a time counter configured to store a time count, wherein said time count is initialized to an initial time count when said polling module polls said alias packet transferred indicator, and thereafter increments toward a final time count; a packet counter configured to store a packet count, wherein said packet count is initialized to an initial packet count when said polling module polls said alias packet transferred indicator, and thereafter increments toward a final packet count; an interrupt generator configured to generate an interrupt signal in response to a transfer of a packet from said network interface if said time count reaches said final time count or said packet count reaches said final packet count; and a mask for selectively determining whether said packettransferred indicator is returned to said first state when said alias packettransferred indicator is returned to said first state; wherein said alias packettransferred indicator is returned from said second state to said first state when polled by said polling module.
41. A method of polling a network interface to detect the transfer of a packet from a network interface, comprising: determining whether a level of traffic transferred from a network interface has reached a first level; loading a polling module; periodically polling said network interface to determine if a packet has been transferred from said network interface; receiving an interrupt from said network interface if a predetermined amount of time passes or a predetermined number of packets are transferred from said network interface after a first poll; and if a level of traffic transferred from the network interface decreases from said first level to a second level, halting said periodic polling; wherein interrupts from said network interface associated with the transfer of packets are suppressed during said periodic polling.
42. The method of claim 41, wherein said polling comprises: examining an alias indicator of a network interface to determine if said alias indicator is in a second state, wherein said alias indicator enters said second state from a first state when a packettransferred indicator in said network interface changes from said first state to said second state in response to a transfer of a packet from said network interface; returning said alias indicator to said first state from said second state; and selectively returning said packettransferred indicator to said first state from said second state.
43. The method of claim 41, wherein said polling comprises: processing one or more packets transferred from said network interface; and suspending said processing prior to completion of processing of a number of packets transferred from said network interface since a prior poll; wherein said suspension of processing prevents said passing of said predetermined amount of time.
44. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of polling a network interface to detect the transfer of a packet from a network interface, the method comprising: determining whether a level of traffic transferred from a network interface has reached a first level; loading a polling module; periodically polling said network interface to determine if a packet has been transferred from said network interface; receiving an interrupt from said network interface if a predetermined amount of time passes or a predetermined number of packets are transferred from said network interface after a first poll; and if a level of traffic transferred from said network interface decreases from said first level to a second level, suspending said periodic polling; wherein interrupts from said network interface associated with the transfer of packets are suppressed during said periodic polling.
Description:
INTERNATIONALSEARCHREPORTInte, a sion No Inlonwastio}onpeterKMmify membsrs PCT/US00/05243 Patantdocument| Publication | Patent citedinsearchreportdate member (s) date EP0496177A29-07-1992US 5317692 A 31-05-1994 JP 2107782 C 06-11-1996 JP 5153194 A 18-06-1993 JP 8024320 B 06-03-1996 US5319752A07-06-1994AU 674341 B 19-12-1996 AU 4930093 A 12-04-1994 CA 2143951 A 31-03-1994 EP 0660955 A 05-07-1995 JP 2584957 B 26-02-1997 JP 7507173 T 03-08-1995 KR 186928 B 15-05-1999 WO 9407201 A 31-03-1994