Method and apparatus for reducing I/O interrupts

Electrical computers and digital data processing systems: input/ – Interrupt processing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C710S048000

Reexamination Certificate

active

06338111

ABSTRACT:

TECHNICAL FIELD
The invention relates generally to input/output data processing in computer systems and particularly to reducing the number of interrupts required for the processing of such I/O data.
BACKGROUND OF THE INVENTION
Today's networks transmit data at rates equal to multi-gigabytes per second and these rates continue to increase as user demands for ever faster transmission increase. Computing systems usually include input/output drivers that receive data packets from incoming lines, store the packets, and interrupt a host processor to alert the host of the presence of data for the host to process. Traditionally, an I/O device interrupts a host each time a complete packet of data is received and stored. As data transmission rates rise, this traditional technique of interrupting for each received packet consumes more and more of a host's processing resources, to the point that the traditional technique is unacceptable. Consequently, there have been attempts to reduce the interrupt rate to more efficiently utilize a host processor's resources. For example, one improved technique is disclosed in U.S. Pat. No. 5,659,758, which issued to Gentry et al on Aug. 19, 1997 Gentry teaches a technique that reduces the number of interrupts, while guaranteeing that a host will eventually be interrupted, based on elapsed time or the number of packets received. In Gentry, the I/O device is initially placed in a state such that the first received packet generates an interrupt. Thereafter, an interrupt will be generated each time N packets are received or for the next packet received after the expiration of a fixed time interval T. Thus, after receipt of an initial packet, if a burst of packets are received in short order, an interrupt is generated after each N of these packets. On the other hand, if less than N packets are received when the time interval T expires, then the next packet received thereafter will cause an interrupt. Gentry also mentions that the parameters N and T may be changed by the host. However, Gentry does not teach any algorithm that the host might use for changing these parameters.
While meritorious, Gentry still suffers from certain deficiencies. For example, it is possible for less than N packets to arrive before the expiration of T. In this event, the number of received packets is insufficient to trigger the interrupt based on N. When T expires, the I/O driver is primed to interrupt on the next received packet. However, if there is a long delay in receipt of the next packet, the interrupt is delayed and the resulting latency in processing of the already received packets may be intolerable. More important, however, is the fact that Gentry still generates a significant number of interrupts, which as transmission rates continue to increase can still present a performance problem. Further improvements are needed.
SUMMARY OF THE INVENTION
The invention improves the known methods of generating interrupts for the servicing of packets. The method is based on dynamic communication between an I/O adapter and a host I/O driver for which the data is destined. The invention has the capability to receive data and pass the data to the host for long periods of time with only a single initial interrupt of the host. If the host begins to fall behind in its processing of received data, the invention has the capability to monitor the situation and to initiate additional interrupts to the host. If additional interrupts are needed because the host is falling behind, the invention can initiate additional processes for the processing of the data to relieve the host situation,
In the preferred embodiment, an arriving block of data is stored in a next element of an ordered array of storage elements by a data receiving process. That element is then marked as filled. If an I/O process for processing the elements is already executing, in general, no I/O interrupt is generated. The I/O process is designed to continue executing as long as there elements marked as filled to process. If an I/O process is not executing, an interrupt is generated to initiate the I/O process. Thereafter, the processing of elements by the I/O process is monitored by the data receiving process. If the I/O process falls behind the data receiving process by a specified threshold, another interrupt is generated by the data receiving process. When the I/O process begins to process a given element, that element is marked as not filled.
In the preferred embodiment, monitoring of the I/O process begins after the data receiving process fills an element and then determines that processing of an earlier filled element in the array has not begun. This earlier element is the element immediately preceding the element just filled in the preferred embodiment. During monitoring, the number of previously filled elements that are still marked as filled are counted and if this count exceeds a specified threshold, an additional interrupt is generated. Monitoring also includes measuring the time interval between the filling of an element with arriving data and the initiation of processing of that element by the input/output process. Another interrupt is generated if this time interval exceeds a specified time threshold.


REFERENCES:
patent: 4751634 (1988-06-01), Burrus, Jr. et al.
patent: 5537646 (1996-07-01), Buck et al.
patent: 5659758 (1997-08-01), Gentry et al.
patent: 5673415 (1997-09-01), Nguyen et al.
patent: 5678057 (1997-10-01), Rostoker et al.
patent: 5923852 (1999-07-01), Lee et al.
patent: 5943479 (1999-08-01), Klein et al.
patent: 6012104 (2000-01-01), Van Nguyen et al.
patent: 6067318 (2000-05-01), Bailey et al.
patent: 6115776 (2000-09-01), Reid et al.
patent: 6216182 (2001-04-01), Nguyen et al.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for reducing I/O interrupts does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for reducing I/O interrupts, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for reducing I/O interrupts will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2846513

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.