Fault-tolerant computer system with voter delay buffer

Information

  • Patent Grant
  • 6820213
  • Patent Number
    6,820,213
  • Date Filed
    Thursday, April 13, 2000
    24 years ago
  • Date Issued
    Tuesday, November 16, 2004
    19 years ago
Abstract
A fault-tolerant computer system includes first and second central processing units (CPUs) producing essentially identical data output streams, a voter delay buffer having a first FIFO buffer and a second FIFO buffer, and an I/O module connected to the CPUs. The I/O module includes a comparator for bitwise comparing the CPU data output streams. The first CPU data output stream is transmitted to peripheral devices if both CPU outputs remain substantially identical. Otherwise, if the comparator indicates differences, queued first and second CPU data are routed to the first and second FIFOs respectively, and subsequent data are retained in respective CPU buffers. While the CPUs continue processing, ongoing diagnostic procedures attempt to identify one or the other of the CPUs as malfunctioning and the remaining CPU as correctly-functioning. If the resulting diagnosis is inconclusive, the CPU having the lower rate of error correction is identified as being correctly-functioning. In either case, the buffered output and the subsequently processed data output stream from the correctly-functioning CPU are thereafter transmitted to the peripheral devices.
Description




CROSS-REFERENCE TO RELATED APPLICATIONS




This Application is related to the following commonly-assigned, co-pending application entitled METHOD AND SYSTEM FOR UPGRADING FAULT-TOLERANT SYSTEMS, identified by Cesari and McKenna File No. 104160-0010.




BACKGROUND OF THE INVENTION




1. Field of the Invention




The present invention is related to fault-tolerant computer systems and, in particular, to a method for efficiently providing reliable operation in a computer system.




2. Background Information




In most data processing applications, reliable performance of a computer system is critical. To provide for a specified level of reliability, the computer system may include at least one redundant, or backup, central processing unit (CPU), where the CPUs perform the same operations and provide the same data output stream. The input/output (I/O) buses of the CPUs are continually monitored and compared to identify any differences in their respective data streams. If signal differences are detected, a voting device applies predetermined criteria to identify one of the CPUs as malfunctioning. In a redundant computer system having two CPUs, for example, the voting device may identify the CPU having a history of greater cumulative error correction as the malfunctioning CPU. However, experience has shown that this method has an unacceptably low accuracy rate.




The accuracy rate improves with the addition of a second redundant CPU to the computer system. All three CPU outputs are monitored and, when differences are detected, the CPU determined to be malfunctioning is the CPU producing an output not in agreement with the other two CPUs. This approach, however, incurs the additional expense and complexity of integrating the third CPU into the computer system.




Another method used in computer systems having only two redundant CPUs is to have each CPU revert to an idle state and/or lose output data while diagnostic procedures are initiated to determine which CPU is malfunctioning. Based on the results of the diagnostic procedure, one CPU may be identified as malfunctioning. One undesirable side effect of this approach is that the operation of the computer system is impacted and may be severely disrupted while the CPUs are in the idle state.




It is therefore an object of the present invention to provide a computer system achieving a high degree of reliability with a redundant CPU.




It is a further object of the present invention to provide such a computer system in which a malfunctioning CPU can be identified without first placing the CPU into an idle state.




It is a still further object of the present invention to provide such a computer system in which computational data is not lost while the malfunctioning CPU is identified.




It is yet another object of the present invention to provide such a system in which a malfunctioning CPU can be identified with a high degree of reliability. Other objects of the invention will be obvious, in part, and, in part, will become apparent when reading the detailed description to follow.




SUMMARY OF THE INVENTION




The present invention comprises a fault-tolerant computer system which includes a pair of CPUs that produce essentially identical data output streams, a voter delay buffer having first and second FIFO buffers, and an I/O module interconnecting the CPUs and the FIFO buffers. The I/O module compares the data output streams from the two CPUs for differences. If both CPU output streams remain identical, the data output of a selected CPU is transmitted to one or more peripheral devices. Otherwise, if the comparator indicates differences, the data output stream from one CPU is rerouted to the first FIFO, and the data output streams from the other CPU is rerouted to the second FIFO. Meanwhile, the CPUs continue processing operations and ongoing diagnostic procedures to identify one of the CPUs as malfunctioning. The FIFOs provide buffering for the data output streams which would otherwise be discarded. Additionally, use of the FIFOs allows the CPUs to continue operation and avoid a disruption to the computer system. If neither CPU is diagnosed as malfunctioning, the I/O module uses data from a priority module to determine which CPU has a higher assigned priority, and identifies the higher-priority CPU as the correctly-functioning CPU. In either case, the computer system then provides the data held in the FIFO associated with the correctly-functioning CPU to the peripheral devices. By thus buffering the data output streams, the present invention allows the computer system to utilize the diagnostic procedures for increasing the probability of correctly identifying a CPU as malfunctioning.











BRIEF DESCRIPTION OF THE DRAWINGS




The invention description below refers to the accompanying drawings, of which:





FIG. 1

is a functional block diagram of a fault-tolerant computer system in accordance with the present invention;





FIG. 2

is a functional block diagram of a CPU in the fault-tolerant computer system of

FIG. 1

; and





FIG. 3

is a flow diagram illustrating the operation of the fault-tolerant computer system of FIG.


1


.











DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT




There is shown in

FIG. 1

a fault-tolerant computer system


10


in accordance with the present invention. The computer system


10


includes a first CPU


11


and a second CPU


21


. The first CPU


11


and the second CPU


21


are configured to operate in lock-step, or cycle-by-cycle synchronism with one another, as exemplified by a system clock


17


. The first CPU


11


includes a maintenance and diagnostic subsystem


15


, and the second CPU


21


includes a maintenance and diagnostic subsystem


25


. The maintenance and diagnostic subsystems


15


and


25


function to identify and, if possible, correct internal processing errors detected in the operations of the respective CPUs


11


and


21


.




The system also includes an I/O module


40


that controls data transfers between the CPUs


11


and


21


and associated peripheral devices (not shown). The first CPU


11


communicates with the I/O module


40


over a first I/O bus


13


. Data flowing between the first CPU


11


and the peripheral devices are transmitted over the first I/O bus


13


to the I/O module


40


, through the I/O module


40


, and to the peripheral devices via a system I/O bus


19


. Similarly, data flowing between the peripheral devices and the second CPU


21


is transmitted over a second I/O bus


23


connected to the I/O module


40


. It should be understood that the respective data streams on the I/O buses


13


and


23


are essentially identical when both the first CPU


11


and the second CPU


21


are operating error-free.




During normal operation, transient errors may occur within either or both the first CPU


11


and the second CPU


21


. Many of the errors are detected and some corrected internally, such as by using error correction logic or parity protocol logic, before transmission over either the first I/O bus


13


or the second I/O bus


23


. An ongoing maintenance history as to the occurrence of these transient errors in the first CPU


11


is retained in a first priority register


16


. The first priority register


16


is kept updated by the maintenance and diagnostic subsystem


15


. Similarly, transient errors occurring in the second CPU


21


are tracked with a second priority register


26


which is kept updated by the maintenance and diagnostic subsystem


25


. This maintenance information is made available to a priority module


60


via either a first CPU priority line


61


or a second CPU priority line


62


. The priority module


60


includes a software program


63


to assign relative priorities to the two CPUs


11


and


21


based on their relative operational performance parameters. Such statistical data may include, for example, the history of detected transient errors or the length of time a given CPU has been operating in the computer system


10


. These statistical data are used to assign relative priorities to the first CPU


11


and the second CPU


21


. These assigned priorities are provided to the I/O module


40


.




The I/O module


40


includes a comparator


43


which performs a bit-by-bit cycle compare procedure on the data output streams passing into the I/O module


40


on the I/O buses


13


and


23


. The comparator may be, for example, an XOR gate or any other known component for comparing two bit values. If the cycle compare procedure detects a difference between the two data output streams, this may be an indication that one of the CPUs


11


and


21


is malfunctioning. Accordingly, the I/O module


40


responds by issuing a STOP command to both the first CPU


11


and the second CPU


21


over a first command line


41


and a second command line


42


respectively.




When the STOP command is issued, the I/O module


40


stops transmitting output data on the system I/O bus


19


and routes the data output streams on the I/O buses


13


and


23


to a voter delay buffer


50


via a delay buffer line


47


. Specifically, the data received from the first CPU


11


is sent to a first FIFO buffer


51


, and the data received from the second CPU


21


is sent to a second FIFO buffer


52


. This action serves to prevents the peripherals from being sent data which may have been corrupted by the malfunctioning CPU, and also serves to save data which otherwise may have been lost or discarded while the malfunctioning CPU was being identified.




In a preferred embodiment, the maintenance and diagnostic subsystems


15


and


25


continually run their respective diagnostic procedures. It should be understood that, even after the STOP command has been issued to the CPUs


11


and


21


, the I/O module


40


continues to forward input data streams sent by the peripheral devices to the CPUs


11


and


21


. The CPUs


11


and


21


continue to process the data while running the diagnostic procedures, in accordance with normal operational procedures. The computer system


10


is thus seen by the peripheral devices as functioning normally.




As shown in

FIG. 2

, the first CPU


11


preferably includes a microprocessor


71


, a chipset


73


, and a bus interface processor


75


. A memory


77


is provided for internal storage of data, as required. The microprocessor


71


receives data from and outputs data to either the memory


77


or the first I/O bus


13


via the chipset


73


. Output data to be transmitted by the bus interface processor


75


is held in a buffer


85


. When the STOP command is transmitted on the first command line


41


to the bus interface processor


75


, the data present in the buffer


85


is retained and not transmitted to the I/O module


40


. Because there is finite propagation delay incurred before the STOP signal reaches the bus interface processor


75


, some possibly corrupted data may be sent from the first CPU


11


before the STOP signal is received. This data is sent to the voter delay buffer


50


, as described above.




As the first CPU


11


continues its processing and diagnostic operations, output data is retained in the buffer


85


. If the buffer


85


becomes fill, the bus interface processor


75


sends a BUSY signal to the chipset


73


, and further processed data is then stored in a chipset buffer


83


. If the chipset buffer


83


becomes full, the data output stream is stored in a microprocessor buffer


81


. The output data stored in the buffers


81


,


83


, and


85


is not output to the peripherals unless the first CPU has been identified as the correctly-functioning CPU, as described in greater detail below. The second CPU


21


(not shown) has an internal configuration similar to that of the first CPU


11


, described above, and functions in a similar manner.




Operations of the computer system


10


can best be described with reference to the flow diagram of FIG.


3


. The data output streams on the I/O buses


13


and


23


are bit-by-bit compared by the comparator


43


, at box


381


, to provide a comparative reading from which it can be determined if there are differences between the monitored data output streams. If there are no such differences detected, the comparator


43


continues to monitor the data output streams. If differences are detected, the STOP command is issued, at box


82


. Subsequently, the data output streams on the I/O buses


13


and


23


are diverted to the voter delay buffer


50


, at step


383


.




The first CPU


11


continues executing its ongoing diagnostic procedure, at box


84


. If the diagnosis indicates that the first CPU


11


is malfunctioning, the first CPU


11


is isolated, at box


385


, and operation of the computer system


10


continues with the second CPU


21


. The data stored in the second FIFO buffer


52


is output over the system I/O bus


19


, at box


86


, and thereafter subsequently processed data from the second CPU


21


is output over the system I/O bus


19


. Contemporaneously with the ongoing diagnosis procedure in the first CPU


11


, at box


84


, the second CPU


21


also continues diagnosis, at box


87


. If, on the other hand, the resulting diagnosis indicates that the second CPU


21


is malfunctioning, the second CPU


21


is isolated, at box


88


, and operation of the computer system


10


continues with the first CPU


11


. The data stored in the first FIFO buffer


51


is output over the system I/O bus


19


, at box


89


, and subsequent processed data from the first CPU


11


is output over the system I/O bus


19


.




If the diagnostic procedures fail to detect problems with either the first CPU


11


or the second CPU


21


, the relative CPU priorities are used as the determinative factor. The relative priorities are read to establish which of the first CPU


11


the second CPU


21


has the higher priority, at box


90


. As discussed above, the relative priorities of the CPUs have been determined by one or more criteria, such as their operational histories or the comparative cumulative record of their internal error corrections. If the second CPU


21


has been assigned the higher priority, for example, the computer system


10


selects the first CPU


11


as the malfunctioning CPU and continues to operate with only the second CPU


21


, at box


91


. Accordingly, the data stored in the second FIFO buffer


52


is output, at box


92


, and so forth. On the other hand, if the first CPU


11


has been assigned the higher priority, the computer system


10


selects the second CPU


21


as the malfunctioning CPU and the operation of the computer system


10


continues with the first CPU


11


, at box


91


. Subsequently, the data stored in the first FIFO buffer


51


is output, at box


92


.




While the invention has been described with reference to particular embodiments, it will be understood that the present invention is by no means limited to the particular constructions and methods herein disclosed and/or shown in the drawings, but also comprises any modifications or equivalents within the scope of the claims.



Claims
  • 1. A fault-tolerant computer system suitable for exchanging data with peripheral devices, said computer system comprising:a first central processing unit (CPU) having at least one first CPU buffer, a second CPU having at least one second CPU buffer, said second CPU being operationally coupled to said first CPU, such that the output of said second CPU is essentially identical to the output of said first CPU; a voter delay buffer having a first FIFO buffer and a second FIFO buffer; an I/O module connected to receive data output streams from said first CPU and said second CPU, said I/O module having, a comparator for comparing said first CPU data output stream to said second CPU data output stream so as to produce a comparison reading; transmission means responsive to said comparator, for sending said first CPU data output stream to the peripheral devices, if said comparison reading indicates no difference between said first CPU data output stream and said second CPU data output stream; and routing means responsive to said comparator, for routing said first CPU data output stream to said first FIFO buffer if said comparison reading indicates a difference between said first CPU data output stream and said second CPU data output stream, and for routing said second CPU data output stream to said second FIFO buffer if said comparison reading indicates a difference between said first CPU data output stream and said second CPU data output stream, wherein said first FIFO buffer buffers said first CPU data output stream and said second FIFO buffer buffers said second CPU data output stream; a priority module for receiving first error correction information from said first CPU and second error correction information from said second CPU; and priority logic for assigning relative priorities to said CPUs, said assigned relative priorities being determined as a function of said first and second error correction information.
  • 2. The computer system of claim 1 wherein said priority logic assigns a higher priority to selected one of said first and second CPUs if the indicated error rate in said correction information corresponding to said selected CPU is less than the indicated error rate in said correction information corresponding to the other one of said first and second CPUs.
  • 3. The computer system of claim 1 wherein said priority logic assigns a higher priority to a selected one of said first and second CPUs if said selected CPU has been operating in said computer system for a greater length of time than the length of time the other one of said first and second CPUs has been operating in said computer system.
  • 4. The computer system of claim 1 wherein said transmission means is further responsive to said priority logic such thatthe contents of said first FIFO buffer is transmitted to the peripheral devices if said first CPU has been assigned a higher said relative priority, or the contents of said second FIFO buffer is transmitted to the peripheral devices if said second CPU has been assigned a higher said relative priority.
  • 5. The computer system of claim 1 wherein said transmission means is further responsive to said priority logic such thatthe contents of said first CPU buffer is transmitted to the peripheral devices if said first CPU has been assigned a higher said relative priority, or the contents of said second CPU buffer is transmitted to the peripheral devices if said second CPU has been assigned a higher said relative priority.
  • 6. The computer system of claim 1 further comprising a first diagnostic logic resident in said first CPU and a second diagnostic logic in said second CPU.
  • 7. The computer system of claim 6 wherein said I/O module further comprises identification means responsive to said first diagnostic logic and said second diagnostic logic, for identifying one of said first and second CPUs as malfunctioning.
  • 8. The computer system of claim 7 wherein said transmission means is further responsive to said identification means such thatthe contents of said first FIFO buffer is transmitted to the peripheral devices if said second CPU is identified as malfunctioning, or the contents of said second FIFO buffer is transmitted to the peripheral devices if said first CPU is identified as malfunctioning.
  • 9. The computer system of claim 7 wherein said transmission means is further responsive to said identification means such thatthe contents of said first CPU buffer is transmitted to the peripheral devices if said second CPU is identified as malfunctioning, or the contents of said second CPU buffer is transmitted to the peripheral devices if said first CPU is identified as malfunctioning.
  • 10. A method for reliably exchanging data between peripheral devices and a computer system having a first CPU with a buffer operating in lock-step with a second CPU with a buffer, said method comprising the steps of:comparing a data output stream from the first CPU with a contemporaneous data output stream from the second CPU to obtain a bit-by-bit comparative reading; transmitting said first CPU data output stream to the peripheral devices if said comparative reading indicates no difference between said first CPU data output stream and said second CPU data output stream; transmitting said first CPU data output stream to a first FIFO buffer if said comparative reading indicates a difference between said first CPU data output stream and said second CPU data output stream, and transmitting said second CPU data output stream to a second FIFO buffer if said comparative reading indicates a difference between said first CPU data output stream and said second CPU data output stream; buffering each bit of said first CPU data output stream in said first FIFO buffer; buffering each bit of said second CPU data output stream in said second FIFO buffer; executing contemporaneous respective diagnostic procedures in the first CPU and the second CPU; retaining at least a second portion of said first CPU data output stream in the first CPU buffer if said diagnostic procedures indicate the fist CPU to be malfunctioning: and retaining at least a second portion of said second CPU data output stream in the second CPU buffer if said diagnostic procedures indicate the second CPU to be malfunctioning.
  • 11. The method of claim 10 further comprising the steps of:transmitting the contents of said second FIFO to the peripheral devices if said diagnostic procedures indicate the first CPU to be malfunctioning; and transmitting the contents of said first FIFO to the peripheral devices if said diagnostic procedures indicate the second CPU to be malfunctioning.
  • 12. The method of claim 11 further comprising the steps of:isolating the first CPU if said diagnostic procedures indicate the first CPU to be malfunctioning; and isolating the second CPU if said diagnostic procedures indicate the second CPU to be malfunctioning.
  • 13. The method of claim 10 further comprising the steps of:accessing a first error correction history for the first CPU; accessing a first error correction history for the second CPU; if said error correction histories indicate that the second CPU has a higher error correction rate than the first CPU, assigning a higher priority to the first CPU; and if said error correction histories indicate that the first CPU has a higher error correction rate than the second CPU, assigning a higher priority to the second CPU.
  • 14. The method of claim 13 further comprising the steps of:transmitting the contents of said first FIFO to the peripheral devices if the first CPU has been assigned a higher priority; and transmitting the contents of said second FIFO to the peripheral devices if the second CPU has been assigned a higher priority.
  • 15. The method of claim 10 further comprising the steps of:transmitting the contents of said first CPU buffer to the peripheral devices if said diagnostic procedures indicate the second CPU to be malfunctioning; and transmitting the contents of said second CPU buffer to the peripheral devices if said diagnostic procedures indicate the first CPU to be malfunctioning.
US Referenced Citations (227)
Number Name Date Kind
3192362 Cheney Jun 1965 A
3533065 McGilvray Oct 1970 A
3533082 Schnabel Oct 1970 A
3544973 Borck et al. Dec 1970 A
3548176 Shutler Dec 1970 A
3593307 Gouge, Jr. Jul 1971 A
3641505 Artz et al. Feb 1972 A
3665173 Bouricius et al. May 1972 A
3681578 Stevens Aug 1972 A
3688274 Cormier et al. Aug 1972 A
3710324 Cohen et al. Jan 1973 A
3736566 Anderson et al. May 1973 A
3783250 Fletcher et al. Jan 1974 A
3795901 Boehm et al. Mar 1974 A
3805039 Stiffler Apr 1974 A
3820079 Bergh et al. Jun 1974 A
3840861 Amdahl et al. Oct 1974 A
3879712 Edge et al. Apr 1975 A
3991407 Jordan, Jr. et al. Nov 1976 A
3997896 Cassarino, Jr. et al. Dec 1976 A
4015246 Hopkins, Jr. et al. Mar 1977 A
4030074 Giorcelli Jun 1977 A
4032893 Moran Jun 1977 A
4059736 Perucca et al. Nov 1977 A
4099234 Woods et al. Jul 1978 A
4176258 Jackson Nov 1979 A
4228496 Katzman et al. Oct 1980 A
4245344 Richter Jan 1981 A
4263649 Lapp, Jr. Apr 1981 A
4275440 Adams, Jr. et al. Jun 1981 A
4309754 Dinwiddie, Jr. Jan 1982 A
4323966 Whiteside et al. Apr 1982 A
4356550 Katzman et al. Oct 1982 A
4358823 McDonald et al. Nov 1982 A
4366535 Cedolin et al. Dec 1982 A
4369494 Bienvenu et al. Jan 1983 A
4375683 Wensley Mar 1983 A
4434463 Quinquis et al. Feb 1984 A
4449182 Rubinson et al. May 1984 A
4453215 Reid Jun 1984 A
4467436 Chance et al. Aug 1984 A
4484273 Stiffler et al. Nov 1984 A
4486826 Wolff et al. Dec 1984 A
4503496 Holzner et al. Mar 1985 A
4503535 Budde et al. Mar 1985 A
4507784 Procter Mar 1985 A
4543628 Pomfret Sep 1985 A
4562575 Townsend Dec 1985 A
4583224 Ishii et al. Apr 1986 A
4589066 Lam et al. May 1986 A
4590554 Glazer et al. May 1986 A
4597084 Dynneson et al. Jun 1986 A
4608631 Stiffler et al. Aug 1986 A
4610013 Long et al. Sep 1986 A
4622667 Yount Nov 1986 A
4628447 Cartret et al. Dec 1986 A
4630193 Kris Dec 1986 A
4633394 Georgiou et al. Dec 1986 A
4633467 Abel et al. Dec 1986 A
4644498 Bedard et al. Feb 1987 A
4648031 Jenner Mar 1987 A
4654846 Goodwin et al. Mar 1987 A
4654857 Samson et al. Mar 1987 A
4669056 Waldecker et al. May 1987 A
4669079 Blum May 1987 A
4686677 Flora Aug 1987 A
4700292 Campanini Oct 1987 A
4703420 Irwin Oct 1987 A
4736377 Bradley et al. Apr 1988 A
4739498 Eichhorn Apr 1988 A
4750177 Hendrie et al. Jun 1988 A
4799140 Dietz et al. Jan 1989 A
4805091 Thiel et al. Feb 1989 A
4809169 Sfarti et al. Feb 1989 A
4816990 Williams Mar 1989 A
4827409 Dickson May 1989 A
4866604 Reid Sep 1989 A
4872106 Slater Oct 1989 A
4905181 Gregory Feb 1990 A
4907232 Harper et al. Mar 1990 A
4914580 Jensen et al. Apr 1990 A
4916695 Ossfeldt Apr 1990 A
4926315 Long et al. May 1990 A
4931922 Baty et al. Jun 1990 A
4939643 Long et al. Jul 1990 A
4974144 Long et al. Nov 1990 A
4974150 Long et al. Nov 1990 A
4985830 Atac et al. Jan 1991 A
4994960 Tuchler et al. Feb 1991 A
5005174 Bruckert et al. Apr 1991 A
5020024 Williams May 1991 A
5083258 Yamasaki Jan 1992 A
5089958 Horton et al. Feb 1992 A
5099485 Bruckert et al. Mar 1992 A
5117486 Clark et al. May 1992 A
5136498 McLaughlin et al. Aug 1992 A
5136704 Danielsen et al. Aug 1992 A
5138257 Katsura Aug 1992 A
5155809 Baker et al. Oct 1992 A
5157663 Major et al. Oct 1992 A
5179663 Iimura Jan 1993 A
5193162 Bordsen et al. Mar 1993 A
5193180 Hastings Mar 1993 A
5220668 Bullis Jun 1993 A
5226152 Klug et al. Jul 1993 A
5231640 Hanson et al. Jul 1993 A
5243704 Baty et al. Sep 1993 A
5247522 Reiff Sep 1993 A
5249187 Bruckert et al. Sep 1993 A
5251303 Fogg, Jr. et al. Oct 1993 A
5263034 Guenthner et al. Nov 1993 A
5270699 Signaigo et al. Dec 1993 A
5271023 Norman Dec 1993 A
5283870 Joyce et al. Feb 1994 A
5295258 Jewett et al. Mar 1994 A
5313627 Amini et al. May 1994 A
5317726 Horst May 1994 A
5321706 Holm et al. Jun 1994 A
5333265 Orimo et al. Jul 1994 A
5357612 Alaiwan Oct 1994 A
5361267 Godiwala et al. Nov 1994 A
5379381 Lamb Jan 1995 A
5384906 Horst Jan 1995 A
5388242 Jewett Feb 1995 A
5392302 Kemp et al. Feb 1995 A
5404361 Casorso et al. Apr 1995 A
5423024 Cheung Jun 1995 A
5428766 Seaman Jun 1995 A
5430866 Lawrence et al. Jul 1995 A
5463755 Dumarot et al. Oct 1995 A
5465328 Dievendorff et al. Nov 1995 A
5465340 Creedon et al. Nov 1995 A
5537535 Maruyama et al. Jul 1996 A
5550986 DuLac Aug 1996 A
5555372 Tetreault et al. Sep 1996 A
5574865 Hashemi Nov 1996 A
5581750 Haderle et al. Dec 1996 A
5583987 Kobayashi et al. Dec 1996 A
5584030 Husak et al. Dec 1996 A
5586253 Green et al. Dec 1996 A
5600784 Bissett et al. Feb 1997 A
5613162 Kabenjian Mar 1997 A
5615403 Bissett et al. Mar 1997 A
5621885 Del Vigna, Jr. Apr 1997 A
5627965 Liddell et al. May 1997 A
5630046 Loise May 1997 A
5630056 Horvath et al. May 1997 A
5659681 Ojima Aug 1997 A
5671443 Stauffer et al. Sep 1997 A
5682513 Candelaria et al. Oct 1997 A
5694541 Service et al. Dec 1997 A
5696905 Reimer et al. Dec 1997 A
5701410 BeMent et al. Dec 1997 A
5701457 Fujiwara Dec 1997 A
5721918 Nilsson et al. Feb 1998 A
5724581 Kozakura Mar 1998 A
5737601 Jain et al. Apr 1998 A
5748873 Ohguro et al. May 1998 A
5751955 Sonnier et al. May 1998 A
5758065 Reams et al. May 1998 A
5781910 Gostanian et al. Jul 1998 A
5787485 Fitzgerald, V et al. Jul 1998 A
5790397 Bissett et al. Aug 1998 A
5790775 Marks et al. Aug 1998 A
5802265 Bressoud et al. Sep 1998 A
5809256 Najemy Sep 1998 A
5812748 Ohran et al. Sep 1998 A
5815647 Buckland et al. Sep 1998 A
5828903 Sethuram et al. Oct 1998 A
5838899 Leavitt et al. Nov 1998 A
5838900 Horvath et al. Nov 1998 A
5838993 Riley et al. Nov 1998 A
5845060 Vrba et al. Dec 1998 A
5862145 Grossman et al. Jan 1999 A
5870301 Yakushiji et al. Feb 1999 A
5875308 Egan et al. Feb 1999 A
5875351 Riley Feb 1999 A
5881251 Fung et al. Mar 1999 A
5890003 Cutts, Jr. et al. Mar 1999 A
5892928 Wallach et al. Apr 1999 A
5894560 Carmichael et al. Apr 1999 A
5896523 Bissett et al. Apr 1999 A
5903717 Wardrop May 1999 A
5918229 Davis et al. Jun 1999 A
5928339 Nishikawa Jul 1999 A
5933838 Lomet Aug 1999 A
5944800 Mattheis et al. Aug 1999 A
5953538 Duncan et al. Sep 1999 A
5956474 Bissett et al. Sep 1999 A
5956476 Ranson et al. Sep 1999 A
5968185 Bressoud et al. Oct 1999 A
5978866 Nain Nov 1999 A
5982672 Moon et al. Nov 1999 A
5983289 Ishikawa et al. Nov 1999 A
5983371 Lord et al. Nov 1999 A
5991900 Garnett Nov 1999 A
5996035 Allen et al. Nov 1999 A
6000043 Abramson Dec 1999 A
6009535 Halligan et al. Dec 1999 A
6012120 Duncan et al. Jan 2000 A
6021456 Herdeg et al. Feb 2000 A
6026458 Rasums Feb 2000 A
6032271 Goodrum et al. Feb 2000 A
6038685 Bissett et al. Mar 2000 A
6041375 Bass et al. Mar 2000 A
6047343 Olarig Apr 2000 A
6049894 Gates Apr 2000 A
6055584 Bridges et al. Apr 2000 A
6062480 Evoy May 2000 A
6065017 Barker May 2000 A
6065135 Marshall et al. May 2000 A
6067550 Lomet May 2000 A
6073196 Goodrum et al. Jun 2000 A
6085200 Hill et al. Jul 2000 A
6098137 Goodrum et al. Aug 2000 A
6115829 Slegel et al. Sep 2000 A
6119128 Courter et al. Sep 2000 A
6125417 Bailis et al. Sep 2000 A
6141718 Garnett et al. Oct 2000 A
6141769 Petivan et al. Oct 2000 A
6148348 Garnett et al. Nov 2000 A
6199171 Bossen et al. Mar 2001 B1
6233702 Horst et al. May 2001 B1
6357024 Dutton et al. Mar 2002 B1
6374365 Lahmann Apr 2002 B1
6393582 Klecka et al. May 2002 B1
6604177 Kondo et al. Aug 2003 B1
Foreign Referenced Citations (12)
Number Date Country
1200155 Sep 1965 DE
0 301 499 Feb 1989 EP
0 428 330 May 1991 EP
0 475 005 Nov 1995 EP
0 293 860 Feb 1996 EP
0 742 507 Nov 1996 EP
0 390 567 Jun 1999 EP
0 974 912 Jan 2000 EP
1 200 155 Jul 1970 GB
2 060 229 Apr 1981 GB
2 268 817 Jan 1994 GB
WO 9966406 Dec 1999 WO