Back to EveryPatent.com
United States Patent | 5,530,872 |
Smeltzer ,   et al. | June 25, 1996 |
A system and method is provided for detecting and correcting a lost hardware interrupt generated by an input/output device in a multiple I/O port computer environment. The lost interrupt condition is caused by the simultaneous occurrence of (i) the reading and subsequent resetting of a interrupt request status bit in an I/O port by a device driver and (ii) the setting of the interrupt request status bit by an I/O device attached to the port. Because the interrupt request status bit is reset before it can be read, the device driver fails to see an acknowledgement of the previous data transmission to the I/O device, and the system encounters a deadlock condition. After a normal timeout timer expires the device driver terminates transmission of data and returns a "cancel or retry" message to the request originator. The present invention prevents a deadlock condition in this situation by providing a second timer in addition to and of significantly less duration than the normal timeout timer. Upon expiration of this additional timer, the device driver, upon satisfying a number of conditions, presumes that an interrupt has been lost, and proceeds to send the next byte of data to the I/O device, thereby preventing a deadlock condition.
Inventors: | Smeltzer; Kenneth D. (Delray Beach, FL); Neel, II; Alan F. (Boca Raton, FL); Louie; Timothy J.-M. (Boca Raton, FL); Schroeder; Frank J. (Boca Raton, FL); Ward; James P. (Boca Raton, FL); Lin; Robert H.-C. (Boca Raton, FL); Hillis; Robert G. (Boca Raton, FL) |
Assignee: | International Business Machines Corporation (Armonk, NY) |
Appl. No.: | 995685 |
Filed: | December 23, 1992 |
Current U.S. Class: | 710/260 |
Intern'l Class: | G06F 013/24 |
Field of Search: | 371/62 395/725,733 |
4099255 | Jul., 1978 | Stanley et al. | 395/725. |
4956842 | Sep., 1990 | Said | 371/62. |
4982404 | Jan., 1991 | Hartman | 371/62. |
5398332 | Mar., 1995 | Komoda et al. | 395/575. |
5408643 | Apr., 1995 | Katayose | 395/575. |