Electrical computers and digital data processing systems: input/ – Input/output data processing – Input/output access regulation
Reexamination Certificate
1999-06-04
2001-04-17
Ray, Gopal C. (Department: 2781)
Electrical computers and digital data processing systems: input/
Input/output data processing
Input/output access regulation
C710S001000, C710S266000, C709S241000
Reexamination Certificate
active
06219727
ABSTRACT:
FIELD OF THE INVENTION
This invention relates generally to the field of interrupt processing including clustering command completion in a computer system, and more particularly to apparatus and method for reducing the number of interrupts in a computer system and reducing the overhead as a result of posting command completion to reduce processing overhead and thereby enhance a computer system, particularly input/output performance.
BACKGROUND OF THE INVENTION
In a conventional computer server system, a primary measure of performance is he number of transactions per minute (TPM) handled by the server system. One of the major impediments to a high TPM throughput is the number of interrupts handled and processed per second by the host computer or server system. On most server systems, two types of interrupts predominate: (1) disk drive I/O interrupts handled in conjunction with a disk drive controller, and (2) workstation interrupts generated by one or more workstation nodes and handled through the network controller. There may be more than one of each of these types of controllers and there may be other types of controllers appropriate to the devices attached to the host as well.
If we consider a Redundant Array of Independent Disk (RAID) drive array and the disk I/O interrupts generated by or in conjunction with that RAID array, a better understanding of the impediments imposed by conventional systems will be appreciated. By way of example, a Transaction Processing Counsel-Type C (TPC-C) system running a 10,000 TPM load in a conventional system may typically generate about 6,000 input/output (I/O) operations per second. Handling each interrupt may typically involve executing between about 500 and about 4000 instructions. For example, the DAC960 requires about 564 instructions for each interrupt, and the Flashpoint requires about 3657 instructions. Therefore, the total I/O interrupt processing overhead for 6,000 I/O operations per second system may typically run into millions of instructions per second. For example, for a 6000 interrupts/sec system needing 500 instructions/interrupt, three million instructions/sec are executed.
The impact of interrupts can be particularly significant when the computer system is a network server configured and operable to serve input/output (I/O) requests for data or program information from a large number of workstation users. These conventional systems handle interrupts as they occur with only minor variations that may occur when the system is heavily loaded, and even under such heavily loaded condition, the delay in handling interrupts is not a controlled delay, rather it is the result of system capacity limitations. It will therefore be appreciated that in conventional systems, neither the number of I/O operations nor the number of interrupts generated by those I/O operations are constrained, controlled, or optimized to reduce the interrupt related overhead and improve system performance.
In similar manner, the total overhead to process one Input/Output (I/O) completion runs into thousands of processor instructions, and I/O completion processing overhead runs into millions of instructions per second.
Locking overhead, added by the multiprocessor system, is an additional burden. The locking cycle is particularly problematic and a burden on the system because for at least most microprocessors, locking stops all activity on the system bus during the lock cycle.
For every completed I/O, device drivers typically do number of calls before posting the completion to the file system or original request. In most of the operating systems, device drivers are layered, therefore the same functions are called for every I/O. For example, a low level controller driver typically makes calls to an upper level disk driver for every I/O. These call operations are summarized as follows:
(a) Controller driver calls disk driver.
(b) Controller driver frees up the associated I/O request buffer/resource.
(c) Controller driver does at least one set of lock/unlock per I/O request to free the buffer/resource.
(d) Disk driver calls upper level driver.
(e) Disk driver frees up the associated I/O request buffer/resource.
(f) Disk driver does at least one set of lock/unlock per I/O request to free the buffer/resource.
Therefore there remains a need to reduce the impact of interrupts in a computer system, particularly when the computer system is a network server configured and operable to serve input/output (I/O) requests for data or program information from a large number of workstations.
SUMMARY OF THE INVENTION
The number of interrupts are controlled by delaying communication of the interrupt to the host computer or processor according to predetermined rules. In some cases, this controlled delay or interrupt clustering may result in a slight increase in I/O response time, but this possible response time increase is generally negligible relative to overall performance increase realized, and the effect of any response time increase actually lessens for higher performance systems. This reduces the processing overhead and greatly increases system performance. Application of the inventive structure and method to RAID disk drive storage arrays is particularly beneficial.
In one embodiment, the invention provides structure and method for reducing the number of system interrupts to the host processor to reduce host processor overhead for operation of a computer system having a host processor and a peripheral device coupled to the host processor by a device controller, where the method includes: detecting the occurrence of an input/output interrupt related to a device; reserving notification to the host processor of the input/output interrupt for a period of time according to predetermined rules; notifying the host processor of all input/output interrupts for which notification has been reserved during the period of time at the expiration of the period of time; where the reserved notification lowering the overhead to the host processor in handling the input/output interrupts.
In another embodiment, the invention provides structure and method for clustering command completion prior to posting completion. The inventive method includes the steps of identifying completed I/O requests which can be completed in clustered mode, gathering all completed I/O requests which can be completed in clustered mode to the same receiver function, chaining all completed requests with the last I/O in the chain, and sending completion to requestor with one pointer which is at the head of the chained request.
Apparatus, system, method, and computer program product are provided which cover various embodiment of the invention.
REFERENCES:
patent: 4093825 (1978-06-01), Gladstone et al.
patent: 5179704 (1993-01-01), Jibbe et al.
patent: 5557756 (1996-09-01), Spencer
patent: 5608891 (1997-03-01), Mizuno et al.
patent: 5925115 (1999-07-01), Ponte
patent: 0 508 602 A2 (1992-10-01), None
patent: 0 685 798 A2 (1995-05-01), None
patent: 2 298 306 (1996-08-01), None
patent: WO 94/22082 (1994-09-01), None
Oct. 19, 1999, PCT International Search Report; US99/12551.
Bayar Balakrishna B.
Chandramouli Vytla P.
Gokhale Sanjeev B.
Kailash Kailash
Flehr Hohbach Test Albritton & Herbert
International Business Machines - Corporation
Ray Gopal C.
LandOfFree
Apparatus and method for computer host system and adaptor... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Apparatus and method for computer host system and adaptor..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus and method for computer host system and adaptor... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2497402