Abstract:
An apparatus and method for guaranteeing the integrity of a PCI bus is disclosed. Multiple general purpose computers are connected using the PCI bus, and the PCI bus signals between or among them are compared. The present invention comprises general purpose computers, PCI monitoring cards, and network lines. An apparatus and a method for detecting faults are provided without adopting an exclusive CPU board or input/output bus to detect faults. A PCI monitoring card is appended to each general purpose computer system, and the computer systems are connected to electronic communication media.

Description:
CLAIM OF PRIORITY 
     This application makes reference to, incorporates the same herein, and claims all benefits accruing under 35 U.S.C. §119 from an application for FAULT TOLERANT SYSTEM UTILIZING THE PERIPHERAL COMPONENTS INTERCONNECTION BUS MONITORING CARD earlier filed in the Korean Industrial Property Office on Jan. 22 ND  of 1998 and there duly assigned Ser. No. 1911/1998. 
     BACKGROUND OF THE INVENTION 
     1. Technical Field 
     The present invention relates to a fault detection apparatus and method utilizing a PCI (peripheral components interconnection) bus monitoring card. More specifically, the present invention is related to an apparatus and method for guaranteeing the integrity of the PCI bus by connecting a plurality of general purpose computers using a PCI bus and comparing the PCI bus signals between or among them. 
     2. Related Art 
     Typically, fault detection systems necessarily have their own central processing unit (CPU) boards or their own input/output buses. This leads to several disadvantages: an increase in design problems; increase in the time to develop new or modified systems; increased complexity of such systems; greater cost in developing and producing such systems; and increased probability of system malfunction or failure. 
     Exemplars of recent efforts in the art include U.S. Pat. No. 5,822,512 for Switching Control in a Fault Tolerant System issued to Goodrum et al. The aforementioned patent is different from the present invention. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to provide an apparatus and method for detecting fault, without providing an exclusive CPU board or input/output bus to detect fault. Rather, a PCI monitoring card is appended to the general purpose computer system, and the computer systems are connected to electronic communication media. 
     In one aspect of the invention, a fault tolerant system utilizing a plurality of general purpose computers equipped with PCI (peripheral components interconnection) comprises: a PCI monitoring card, connected to the general purpose computer by utilizing a PCI bus, for detecting faults by comparing the PCI bus signals of one of the general purpose computers with the PCI bus signals of the other general purpose computers; and network lines connecting the PCI monitoring card of one general purpose computer with the PCI monitoring cards of the other general purpose computers. 
     The PCI monitoring card is connected to the CPU(Central Processing Unit) of its computer by means of a the PCI bridge. The PCI monitoring card receives the address and data bus signals from its computer, and compares them with the address and data bus signals of the other computer. When they are different from each other, interrupt signals are generated. The PCI monitoring card transmits an interrupt signal to its computer and to the other computers. 
     The PCI monitoring card comprises: a FIFO( First In First Out ) memory for storing the received address and data bus signals by utilizing the PCI bus; compulsive stop logic for activating a stop signal to temporarily stop the PCI transaction when the capacity of the FIFO memory is stack full; communication ports for transmitting the address and data bus signals received from the FIFO memory to the other computers, or for receiving the address and data bus signals from the other computers; and a bus comparator for comparing the address and data bus signals of its computer with those of the other computers as respectively received from the FIFO memory and communication port, and for generating an interrupt signal when the signals are different from each other. 
     The FIFO memory, comprised of 32-bit clocked memories, stores the 32-bit address and data bus signals received from the PCI. When the FIFO memory is full, it generates a status signal in order to temporarily stop PCI bus transactions. 
     Communication ports, comprised of fiber channel communication ports, receive and transmit data from and to the other computers by utilizing fiber channels. 
     Communication ports, comprised of fast ethernet ports, receive and transmit data from and to the other computers by utilizing fast ethernet. 
     The bus comparator reports the interrupt signals to its computer and to the other computers through the PCI bus. The bus comparator comprises a dual 32-bit comparator for comparing the received 32-bit address and data bus signals. 
     In another aspect of the invention, a fault tolerant method utilizes the PCI (peripheral components interconnection) bus monitoring card, and comprises the steps of: receiving the address and data PCI bus signals from its computer; receiving the address and data PCI bus signals from the other computers through the network; comparing the address and data PCI bus signals of its computer with those of the other computers, and, when they are identical, comparing the next signals; generating an interrupt signal when the compared signals are different; transmitting an interrupt signal to its computer; and transmitting an interrupt signal to the other computers. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     A more complete appreciation of the invention, and many of the attendant advantages thereof, will be readily apparent as the same becomes better understood by reference to the following detailed description when considered in conjunction with the accompanying drawings in which like reference symbols indicate the same or similar components, wherein: 
     FIG. 1 illustrates a schematic diagram of a fault detecting apparatus on the basis of CPU level; 
     FIG. 2 illustrates a schematic diagram of a fault detecting apparatus on the basis of input/output level; 
     FIG. 3 illustrates a schematic diagram of a fault detecting apparatus according to the present invention; and 
     FIG. 4 illustrates a schematic diagram of a PCI monitoring card structure. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 1 shows a schematic diagram of a fault detecting apparatus on the basis of CPU operation level. As illustrated, in order to detect fault on the basis of CPU operation level, two CPU boards (CPU board A, CPU board B) with identical structure are connected by utilizing the local buses  102 . Each local bus  102  is connected to each CPU  100   a ,  100   b , and carries data, address and control signals. CPU boards A and B have respective comparison logics  101   a ,  101   b  connected to the local buses  102 . The comparison logics  101   a ,  101   b  detect fault by comparing the signals of the two local buses  102 . When the signals of the two local buses  102  mismatch (that is, a fault occurs), the fault is reported to the CPU  100   a  or  100   b  by utilizing interrupt signals. 
     FIG. 2 shows a schematic diagram of a fault detecting apparatus on the basis of input/output bus level. As illustrated, in order to detect fault on the basis of the input/output level, CPU boards C and D with identical structure (including CPU&#39;s  200   a  and  200   b , memories  201   a  and  201   b , and local devices  202   a  and  202   b ) are connected by utilizing a dual input/output bus  205   a ,  205   b . The CPU boards C and D have respective comparison logics  204   a ,  204   b  connected to each input/output bus  205   a ,  205   b . The comparison logics  204   a ,  204   b  detect fault by comparing the dual input/output buses  205   a ,  205   b . When the above-noted buses are different (that is, a fault occurs), the fault is reported to the CPU  200   a ,  200   b  through the input/output bridges  203   a ,  203   b.    
     Fault detection systems utilizing the above-mentioned structure must have their own CPU boards or input/output buses. This increases the problem of designing or developing new systems, and causes the fault detection system to be more expensive than general purpose computer systems. Furthermore, adding fault detection logic to the CPU board causes the system to be complicated, thereby increasing the probability of fault or system failure. 
     FIG. 3 shows a schematic diagram of a fault detecting apparatus according to the present invention. As illustrated, the system includes: PCI bridges  304   a ,  304   b  connected to CPUs  301   a ,  301   b  of the computers by utilizing the local buses  300   a ,  300   b ; PCI devices  306   a ,  306   b  connected to the PCI bridges  304   a ,  304   b  by utilizing the PCI buses  305   a ,  305   b ; PCI monitoring cards  307   a ,  307   b  connected to the PCI bridges  304   a ,  304   b  by utilizing the PCI buses  305   a ,  305   b ; and network lines  308   a ,  308   b  interconnecting the PCI monitoring cards  307   a ,  307   b  of the computers. 
     Each PCI monitoring card  307   a ,  307   b  is associated with a general purpose computer system, and they are connected by utilizing the network lines  308   a ,  308   b.    
     The computers connected by utilizing the network lines  308   a ,  308   b  check each other&#39;s address and data bus via the PCI buses  305   a ,  305   b , and transmit them to other computers. Therefore, a system fault is detected by concurrently comparing the system with other systems. 
     FIG. 4 shows an inner structure of the PCI monitoring cards  307   a ,  307   b  of FIG.  3 . As illustrated, the PCI monitoring cards  307   a ,  307   b  include: FIFO memories  400   a ,  400   b  which are 32-bit clocked, and which receive the address and data signals by utilizing the PCI buses  305   a ,  305   b  of their computers; compulsive stop logics  401   a ,  401   b  for receiving status signals from the FIFO memories  400   a ,  400   b  and transmitting stop signals to their computers; communication ports  403   a ,  403   b  for transmitting the address and data signals received from the FIFO memories  400   a ,  400   b  to the other computers, and for receiving the address and data signals of the other computers; and dual 32-bit bus comparators  402   a ,  402   b  for comparing the address and data signals received from the FIFO memories  400   a ,  400   b  and the communication ports  403   a ,  403   b , and for transmitting a mismatch signal to the other computers. 
     The FIFO memories  400   a ,  400   b  read AD[31:0] (that is, the address and data bus of the PCI bus  305   a ,  305   b ) and transmit them to the other computers by utilizing the fast networks of ports  403   a ,  403   b , such as fiber channel or fast ethernet. The AD[31:0] of the FIFO memories  400   a ,  400   b  are concurrently transmitted to the bus comparators  402   a ,  402   b , and are compared with the signals received from the other computers through the communication ports  403   a ,  403   b.    
     When two compared signals do not match, the mismatched signals are reported to the CPU  301   a ,  301   b  of its computer as an interrupt signal. It is also transmitted to the other computer in order to facilitate fault detection. 
     When the FIFO memories  400   a ,  400   b  memories are full, the transactions of the PCI bus  305   a ,  305   b  must be stopped. Therefore, the full FIFO memories  400   a ,  400   b  transmit a status signal to the compulsive stop logics  410   a ,  401   b  so as to temporarily stop the transactions of the PCI buses  305   a ,  305   b.    
     As previously mentioned, 32-bit clocked FIFO memories are utilized. The bus comparators  402   a ,  402   b  are arranged for dual 32-bit operation in order to compare the 32-bit bus signals of both computers. A fiber channel of 100 Mbps or a fast ethernet of 10BASE-T/100BASE-TX is utilized. 
     The operation of the present invention is now explained. 
     Each PCI monitoring card  307   a ,  307   b  is associated with a PCI bus  305   a ,  305   b  of the computer A, computer B. Each PCI monitoring card  307   a ,  307   b  receives and transmits the data of its computer and the other computer, and compares them concurrently. When the compared results are identical, which means that no fault is found, a next procedure is executed. When the compared results are different, the computer which detected the fault generates an interrupt signal and reports it to the other computer. 
     The operation of the present invention is explained in more detail with regard to computer A. 
     The signals from PCI bus  305   a , as received through the AD[31:0] line, are written to the 32-bit clocked FIFO  400   a . The AD[31:0] line is a multiplexed bus for the address and data of the PCI bus  305   a . The capacity of the FIFO memory  400   a  is checked. When the capacity of the FIFO memory  400   a  is full, the FIFO memory  400   a  transmits a status signal to the compulsive stop logic  401   a , and the compulsive stop logic  401   a  is activated to generate a stop signal STOP#. Therefore, the PCI transaction being executed or to be executed is temporarily stopped. After this, when the contents of the FIFO memory  400   a  decreases, the FIFO memory  400   a  starts storing data again. 
     The contents of the FIFO memory  400   a  are transmitted to the communication port  403   a  through the AAD[31:0] line, the communication port  403   a  being a fiber channel or a fast ethernet. The data leaving the NAAD[31:0] line of communication port  403   a  are transmitted to the NAAD[31:0] line of the other communication port  403   b , thereby entering the dual 32-bit bus comparator  402   b  of computer B. The comparator  402   b  in computer B compares the entered data with the data received from the FIFO  400   b  of computer B. 
     Concurrently with the above operation, the data leaving the 32-bit clocked FIFO  400   a  are transmitted to the dual 32-bit bus comparator  402   a  through the AAD[31:0] line  406   a . The bus comparator  402   a  in computer A compares the data of the AAD[31:0] line with the data of the BAD[31:0] line received from computer B via communication ports  403   a . When the compared data are identical, then the next data are compared. However, when the compared data are not identical, a mismatch signal is generated to activate the interrupt signal INTA# of computer A. Concurrently, the mismatch signal is transmitted to computer B so as to indicate that a fault is detected. 
     After receiving the interrupt signal computer A detects the fault and tries to determine the cause of the fault. Computer B also detects the fact that a fault has occurred in computer A, and tries to determine the cause of the fault. At this point, computers A and B stop all other operations and check the fault which has occurred. 
     The operation of the present invention will now be explained in more detail with regard to computer B. 
     The signals received through the AD[31:0] line are written to the 32-bit clocked FIFO  400   b . The AD[31:0] line is a multiplexed bus of the address and data of the PCI bus  305   b . The capacity of the FIFO memory  400   b  is checked. When the capacity of the FIFO memory  400   b  is full, the FIFO memory  400   b  transmits a status signal to the compulsive stop logic  401   b , and the compulsive stop logic  401   b  is activated to generate a stop signal STOP#. Therefore, the PCI transactions being executed or to be executed are temporarily stopped. After this, when the contents of the FIFO memory  400   b  decreases, the FIFO memory  400   b  starts storing data again. 
     The contents of the FIFO memory  400   b  are transmitted to the communication port  403   b  through the line BAD[31:0], the communication port  403   b  being a fiber channel or a fast ethernet. The transmitted data leaving the NBAD[31:0] line of the communication port  403   b  are transmitted to the NBAD[31:0] line of the other communication port  403   a , thereby entering the dual 32-bit bus comparator  402   a  of computer A. The comparator  402   a  in computer A compares the entered data with the data received from the FIFO  400   a  of computer A. 
     Concurrently with the above operation, the data leaving the 32-bit clocked FIFO  400   b  are transmitted to the dual 32-bit bus comparator  402   b  through the BAD[31:0] line  406   b . The bus comparator  402   b  in computer B compares the data of the BAD[31:0] line with the data of the AAD[31:0] line received from computer A via communication port  403   b . When the compared data are identical, then next data are compared. However, when the compared data are not identical, a mismatch signal is generated to activate the interrupt signal INTA# of computer B. Concurrently, the mismatch signal is transmitted to computer A so as to indicate that a fault is detected. 
     After receiving the interrupt signal, computer B detects the fault and tries to determine the cause of the fault. Computer A also detects the fact that a fault has occurred in computer B, and tries to determine the cause of the fault. At this point, computer A and B stop all other operations and check on the fault which has occurred. 
     It should be understood that the present invention is not limited to the particular embodiment disclosed herein as the best mode contemplated for carrying out the present invention, but rather that the present invention is not limited to the specific embodiments described in this specification except as defined in the appended claims.