High-reliability computer system

Abstract: A high-reliability computer system is provided in which error correcting codes are preliminarily added to the signals to be applied to a voter (3) from a plurality of computers (1A,1B,1C) at error correcting code encoders (2A,2B,2C) so that, even if an error resulting from a failure of the voter (3) occurs, an error correcting code decoder (4) can provide a right result based on the error correcting codes, whereby a failure in the computers (1A,1B,1C) and error correcting code encoders (2A,2B,2C) can be avoided by means of the voter (3), a failure in the voter (3) can be avoided by the error correcting code decoder (4), and a failure in the error correcting code decoder (4) can be avoided by parallel redundancy arrangement. That is, means for avoiding failures in the constituent elements of the system are provided all as constituent elements.

Description: The present invention relates to high-reliability computer systems comprising a plurality of computers with a redundancy arrangement on a voting basis. The prior art high-reliability computer system of the type referred to is often used in such applications as demands a high operational reliability, since, in the voting system, a failure in constituent elements of the computer system leads to no immediate stoppage of the overall computer system and the computer system operation is not interrupted by redundancy switching operation, software retry and the like. Recently, an increased importance of the role of computers in rockets, space vehicles and the like demands the flight and/or interior control of such vehicles to be fully computerized. Accordingly, more and more large and ultra-large scale integrated circuits (LSI and ultra-LSI) with increased circuit integration or density are used rather than the conventional small and medium scale integrated circuits (SSI and MSI). The current technological study is directed to achieve higher function/performance and smaller dimensions/lower power consumption at the same time. On the other hand, an LSI microprocessor has had a problem of such a so-called single event phenomenon that the LSI when subjected to high energy of cosmic rays traveling in the cosmic space loses information stored therein, thus disabling the operation of the LSI. Such single event phenomenon is said to take place once or so in a time period of from several hours to several months in probability, and varies depending on the strength of the LSI, frequency of actuation, etc. Further, since computers have become the nucleus of space vehicles or the like, one failure or inoperability of the computer has not become permissible or tolerable even if it lasts just for a short time. In addition, it is impossible to repair such a faulty computer mounted on a space vehicle far away from the earth, and hence there has been studied such a high-reliability computer system that uses three or more computers on a voting basis. However, this voting system though having the aforementioned merits, has been disadvantageous in such applications as requires a very high reliability as mentioned above, because the system also has demerits which follow. 1. Failure of a voter leads to failure of the overall computer system. 2. When a voter with redundancy arrangement is used, it becomes necessary to switch over the faulty portion in case of a failure, which requires the retry of software or the like, usually causing the processing to become discontinuous. IBM Technical Disclosure Bulletin, Vol. 14, No. 5, October 1971, pages 1632-1633 discloses a computer system providing error-correcting codes. This computer system comprises a processor, a plurality of error correcting code encoders, a voter, and an error correcting code decoder. An object of the present invention is to provide a high-reliability computer system which can eliminate disadvantages in the prior art to realize a very high reliability. This object is achieved by the computer system according to the claims. In the present invention, signals applied to a voter are preliminarily subjected to error correcting code encoding at error correcting code encoding/decoding devices so that, even if an error resulting from failure of the voter occurs, an error correcting code decoding/encoding device can provide a correct result based on the error correcting codes. As a result, a failure in the computers and error correcting code encoding/decoding devices can be avoided by a voter, a failure in the voter can be avoided by the error correcting code decoding/encoding devices, and a failure in the error correcting code decoding/encoding devices can be avoided by a parallel redundancy arrangement. That is, means for avoiding failures in the constituent elements of the system are provided all as constituent elements. In this way, such a very high reliability computer can be obtained that eliminates defects in the prior art voting system. In the foregoing explanation, the computers constituting the system include any such devices having a computer function as a microcomputer, a microprocessor or the like. Further, the number of such computers may be two or more and preferably three or more, as necessary, in the computer system. The voter may be of a known type but must be able to process bits in the number necessary for the voting operation. The arrangement of the voter itself is proposed as an example in Magazine "Nikkei Computer", an article entitled 'Fault Tolerant Computing' by Hideo Aiiso, pages 190-205, published on October 5, 1981. Further, the error correcting code encoding/decoding devices and decoding/encoding devices may be of a known type and may use the following codes in the error correcting code system. The codes exemplified above are called as the random error correcting codes and other codes such as burst error correcting codes, adjacent error correcting codes and so on may be arbitrarily used as necessary. The present invention will be described in further detail by referring to attached drawings, in which: FIG. 1 is a block diagram showing an arrangement for explaining the principle underlying the present invention; FIG. 2 is a block diagram showing another arrangement for explaining the principle underlying the present invention; FIG. 3 is a block diagram showing an arrangement of a prior art system; FIGS. 4 to 7 are block diagrams showing arrangements similar to the arrangement of FIG. 2, which include memory(ies) and an input device located at different positions, respectively; FIG. 8 is a block diagram showing an embodiment of the present invention; FIG. 9 shows a detailed block diagram of FIG. 8; FIGS. 10 and 11 show detailed circuit diagrams of a 26-bit ECC ENC circuit in FIG. 9 and a 16-bit ECC ENC/DEC circuit, respectively; FIGS. 12 and 13 are circuit diagrams showing interior arrangements of 26-bit ECC ENC circuit and 26-bit ECC DEC circuit in FIG. 10 respectively; FIG. 14 shows a logic matrix of a decoder in FIG. 13; FIG. 15 is a flow chart showing the byte write processing by the 16-bit ECC ENC/DEC circuit of FIG. 11; FIG. 16 is a circuit diagram showing an interior arrangement of a voter in FIG. 9; and FIG. 17 is a circuit diagram showing an interior arrangement in one of the channels of the voter in FIG. 16. FIG. 3 is a block diagram showing an arrangement of an example of prior art high-reliability computer systems, in which outputs of three computers 1A, 1B and 1C are applied to a voter 3 to take a vote thereon to prevent the failure of the system even when one of the three computers becomes faulty. On the other hand, there is shown in FIG. 1 a block diagram of a basic arrangement showing the principle of a high-reliability computer system according to the present invention, which comprises three computers 1A, 1B and 1C, a voter 3 connected to outputs of the three computers to take a vote thereon, three error correcting code encoders 2A, 2B and 2C connecting outputs of the computers 1A, 1B, 1C and inputs of the voter 3 for adding error correcting codes to the outputs of the computers 1A, 1B, 1C respectively, and an error correcting code decoder 4 connected at its input to an output of the voter 3 for correcting the voter output error based on the above-mentioned error correcting codes. Shown in FIG. 2 is a block diagram of a similar arrangement which is different from the first arrangement of FIG. 1 in that a voter 3 has two outputs connected respectively to two error correcting code decoders 4A and 4B. The outputs of the decoders 4A and 4B are connected to two actuators 5A and 5B, respectively. For simplification, hereinafter in this specification, computers 1A, 1B ..., encoders 2A, 2B ..., decoders 4A, 4a ..., etc. may be referred to respectively as computers 1, encoders 2, decoders 4, etc. A feature of the present invention is that there are provided the error correcting code encoders 2 and the error correcting code decoder(s) 4 in FIGS. 1 and 2. Next, the operation of these arrangements will mainly be described in reference to the second arrangement of Fig. 2. To each of the outputs of the computers 1 (each output consisting of a total 24 bits of 4 bits for control signal, 12 bits for I/O address and 8 bits for data) are added 6 bits (in the case of one error correcting and two error detecting codes) as an error correcting code by means of the corresponding one of the error correcting code encoders 2, and then the 30 bits in total are applied to the voter 3. The voter 3 takes a vote on the 30-bit output of each of the computers 1 on a bit-by-bit basis, and sends the identical voting result to the two error correcting code decoders 4A and 4B. As a result, even when one of the computers 1 becomes faulty, that one can be eliminated on a voting basis, while the overall computer system can be kept normally operative. More specifically, the error correcting code decoders 4 correct an error resulting from the failure of the voter 3, etc. based on the error correcting code bits and send the corrected outputs to the actuators 5 which form input/output (I/O) devices of the computers 1. When both systems of the error correcting code decoders 4 and actuators 5 are arranged to be of a parallel redundancy type, the arrangement allows the overall computer system to normally operate even in case of the stoppage of operation of either one decoder system, so that the overall computer system cannot be affected by a failure in that part and can operate normally. Failure Type Site of Failure Failure Avoiding Means 1 Computer Voter 2 Error Correcting Code Encoder Voter 3 Voter Error Correcting Code Decoder 4 Error Correcting Code Decoder Parallel Redundancy of the other System 5 Actuator Parallel Redundancy of the other System The above Table shows, in a summary, sites of failure and the corresponding failure avoiding means in the foregoing arrangements. In this way a very high reliability computer system can be obtained. The arrangement of memories in the respective computer (CPU) units and an input device can be properly determined according to the intended characteristics of the computer system. Examples of the arrangements are illustrated in FIGS. 4 to 7. In FIG. 4, CPU units 1 are connected to an input device 6, each of which units has one of microprocessors 11 and one of memories 12. The CPU units 1 send their outputs through associated error correcting code encoders 2 to a voter 3 to take a vote on the outputs of the CPU units. The outputs of the voter 3 is applied to error correcting code decoders 4 to correct any error in the voter 3 and the outputs of the decoders 4 then are applied to associated output devices 5. This arrangement is effective for a system with a small scale of the memories 12, input device 6 and so on since it requires only the CPU units 1 as a two-way circuit section of the signal wire. The arrangement of FIG. 5 is larger in scale of an input device and more complicated in control therein than the arrangement of FIG. 4, but it is an effective constitution when it requires only a small capacity of memory. In FIG. 5, input device 6 for the respective CPU units 1 is provided on the output side of a voter 3. Inputs from the input devices are responsive to the command signals from each microprocessor 11 and sent directly to the respective microprocessors 11 through the voter 3 without being subjected to any processing therein. FIGS. 6 and 7 show systems to be applied when they are required to have a large capacity of memory compared with the case of FIGS. 4 and 5 and they have a difficulty in providing CPU units with the respective memories. In FIGS. 6 and 7, only a single memory 12 is required by providing it outside of computer units 1, i.e., at the output of a voter 3. Therefore, the arrangement of FIG. 6 is suitable in case where a small scale of input devices 6 and a large scale of memories 12 are necessary, whereas the arrangement of FIG. 7 is suitable in cases where the input device 6 and memory 12 must be both large in scale. An embodiment of the present invention is shown in FIG. 8 in detail. In FIG. 8, in addition to the arrangement of FIG. 7, an interrupt signal from a circuit 61, a pair of memories 12A and 12B and a pair of input/output devices 51A and 51B are newly provided. The reason why such pairs of memories 12A, 12B and I/O devices 51A and 51B are provided is to enable such redundancy arrangement that, even in case of a failure, the overall computer system can normally be operated and repair or the like on the failure part can be conducted during operation of the system without stopping the system. The interrupt signal is applied to respective microprocessors (MPU's) 11 in parallel thereto and in accordance with the interrupt signal the input from the I/O devices 51A and 51B is outputted from MPU's 11 to error correcting code encoders and decoders 2. FIG. 9 is a detailed constitution of the arrangement of the control system of the embodiment shown in FIG. 8. The operation of respective constituent parts of the embodiment shown in FIG. 9 will be explained according to flow of a signal. (1) Clock and Reset Circuit 9 Identical clock and reset signals are applied to the respective microprocessor systems 11A, 11B and 11C to operate the three systems in complete synchronism with one another according to the clock signal. (2) Interrupt control circuit 62 Interrupt control circuits 62 are provided for the associated microprocessors 11 to provide independent control over the microprocessor systems. In the illustrated embodiment, the interrupt input signal from 61 is not passed through any voter, taking into consideration the failure of the interrupt control circuits 62 and for the purpose of circuit simplification as well. (3) Control Lines (Microprocessor Outputs) 21 Many control signals are actually outputted from the microprocessors, but for the sake of simplicity only three signal lines, i.e., read/write, data-strobe and bus-lock signal lines are illustrated as connected to a voter 31. Since the control lines 21 of the microprocessors are driven in asynchronism with one another, outputs of the microprocessors are sent directly to the voter 31 without addition of associated error correcting codes. The voter 31 takes a vote on each of the control signals, but the failure of the voter 31 can be avoided because of its redundancy arrangement. In FIG. 9, further, the control signal voter 31 is integrally illustrated but has such a redundancy arrangement as mentioned above and its faulty part can be separated therefrom. (4) Address Signal lines (Microprocessor outputs) 22 Each of the address signal output lines 22 connected to the microprocessors contains 26 signal wires, and the signals carried on which are subjected to an error correcting code encoding in associated one of error correcting code encoders (ECC-ENC's) 24. These control signals with addition of the error correcting codes are voted at a voter 32 on a bit-by-bit basis to eliminate the failure of the microprocessors 11 and ECC-ENC's 24, and then sent to memories 12 and system buses 43. The memories 12 and I/O devices 51 connected through associated ECC DEC/ENC's 41 to associated system bus interfaces 42 can obtain right address values, since the ECC DEC's 41 eliminate the errors of the voter 32 and system buses 43. (5) Data Signal Lines 23 Since the data signal lines 23 are of a two-way type, there are two cases where data are sent from the microprocessors 11 onto the data signal lines and conversely data are sent from the data signal lines to the microprocessors 11. When data are outputted from the microprocessors 11 to be written in the memories 12 and I/O devices 51, right data are transferred to the memories 12 and I/O devices 51 respectively through ECC ENC/DEC's 25, a voter 33 and write control's 82 and through ECC ENC/DEC's 25, a voter 33 and ECC DEC/ENC's 41. Conversely, when data is to be inputted into the microprocessors 11 for reading, the input data are subjected to an error correcting code encoding at the I/O devices 51, memories 12, ECC DEC/ENC's 41 or write control's 82 and then applied to the voter 33. In this case, the voter 33 does not perform any voting operation and has only a function of distributing the data to the respective microprocessors 11. Output data of the voter 33 are subjected at ECC ENC/DEC's 25 to correction of errors generated on the way and then applied to the microprocessors 11 so that the microprocessors 11 can accept right data. FIG. 10 shows details of the 26-bit ECC ENC circuit 24 and the 26-bit ECC DEC circuit 81 for address signal shown in FIG. 9. The circuit of FIG. 10 includes both the encoder 24 and decoder 81 which can be selectively used as an encoder or a decoder according to the setting of a terminal ENC. When it is used as an encoder, address signals are applied from the microprocessors 11 to terminals A00 to A25 to be encoded by the 26-bit ECC ENC, thus obtaining the address signals subjected to error correcting code encoding at terminals B00 and B25 and BPO to BP5. FIG. 12 shows an example of the arrangement of the 26-bit ECC ENC circuit in which single error correcting and double error detecting codes (SEC-DED codes) are used. On the other hand, when it is used as a decoder, address signals subjected to error correcting code encoding are applied to the terminals B00 and B25 and BP0 to BP5 to be decoded by the 26-bit ECC DEC circuit, whereby right address signals may be obtained at the terminals A00 to A25. If there is an error in the input signals and the error is a single error (the result is corrected), a signal appears at a terminal ERRA ; while if there are multiple errors (the result is not right, either), a signal appears at a terminal DERA . And when all the input signals are right, no signal appeares at the terminal ERRA and at the terminal DERA . As a result, the state of the error can be known. FIG. 13 shows an example of the arrangement of the 26-bit ECC DEC circuit which uses the SEC-DED codes, while FIG. 14 shows a syndrome matrix logic table on the codes. Fig. 11 shows details of the 16-bit ECC ENC/DEC circuits 25 and write controls 82 for data signal shown in FIG. 9. The circuit of FIG. 11 has a byte processing function in addition to the 16-bit ECC encoding and decoding function. When the ECC ENC/DEC circuits 25 are used as connected to the microprocessors 11, terminals C00 to C15 are connected to the microporcessors 11 while terminals D00 to D15 and DP0 to DP5 are connected to the voter 33. Assume now that SH₂=SL₂=1 and SL₁=SL₃=SH₁=SH₃=0 , THRU=0. When the microprocessors 11 issue data, such data are supplied to the terminals C00 to C15. Since SH₂ and SL₂ are both 1, switches S1 and S2 select terminals C00 to C15 as their outputs which are subjected at a 16-bit ECC ENC 251 to error correcting code encoding and then sent onto the terminals D00 to D15 and DP0 to DP5. When the microprocessors 11 are used to read data, the data subjected to error correcting code encoding are conversely applied to the terminals D00 and D15 and DP0 to DP5, subjected to error correction at a 16 bit ECC DEC 252, sent onto the terminals C00 to C15, and then read by the microprocessors 11. At the time of error generation, the error state can be known from the absence or presence of signals at terminals ERRB and DERB , as in the 26-bit ECC ENC/DEC's 24 and 81 shown in FIG. 10. When the ECC ENC/DEC circuits 41 are used as connected to such input/output circuits as input/output devices 51 or the like, this is equivalent to the case where the microprocessors 11 are replaced by the input/output devices 51. When the write control circuits 82 are used as connected to the memories 12, the terminals C00 to C15 and CP0 to CP5 are connected to the voter 33 while the terminals D00 to D15 and DP0 to DP5 are connected to the memories 12. In the usual 16-bit write mode, ECC-added data applied to the terminals C00 to C15 and CP0 to CP5 are once subjected at a 16 bit ECC DEC circuit 253 to error correction, again subjected at the 16-bit ENC circuit 251 to error correcting code encoding, sent to the terminals D00 to D15 and DP0 to DP5, and written in the memories 12 ( SH₁=SL₁=1 , SH 2∼3 = SL 2∼3 =0 , THRU=0). When SH₂=SL₂=1 , SH 1∼3 =SL 1∼3 =0 and THRU=1, input data subjected to no error correction can be written in the memories. In the 16-bit read mode, when data read out of the memories 12 are applied to the terminals D00 to D15 and DP0 to DP5, the data are once subjected at the 16 bit ECC DEC circuit 252 to error correction, sent to the terminals C00 to C15 and CP0 to CP5 and then to the voter 33. In the one byte or 8-bit read mode, as in the 16-bit read mode, 16 bit data are read out from the memories 12, and sent through the voter 33 to the ECC ENC/DEC's 25 provided on the input side of the microprocessors 11 to be processed on a 16 bit basis up to the ECC ENC/DEC's, and then necessary high or low byte of the 16-bit data is read by the microprocessors 11. In the one byte or 8-bit write mode, 8-bit data issued from the microprocessors 11 are sent to the ECC ENC circuit 251 so that the switches S1 and S2 set bits other than the 8 bits of the output data of the microprocessors 11 at "0" to generate a 16-bit data to which an error correcting code (ECC) is added. The ECC-added 16-bit data are voted by the voter 33 and then sent to the memory write control circuits 82 in which the 16 bit ECC decoder 253 in FIG. 11 performs error correction over the received data and sends the data to the switches S1 and S2. In the byte write operation to the memories, those output data which are not to be written by the microprocessor 11 must be read out from the memories 12. Accordingly, all the data are once read out and sent to the terminals D00 to D15 and DP0 to DP5, subjected at the 16-bit ECC DEC 252 to error correction, and then sent to the switches S1 and S2. The switches S1 and S2 combine the byte data sent from the microprocessors 11 and the byte data read out from the memories 12 to prepare new 16-bit data to be written in the memories 12. The new data are subjected at the 16-bit ECC ENC 251 to ECC addition, sent to the terminals D00 to D15 and DP0 to DP5, and then written in the memories 12. The data flow in this byte writing system is shown in FIG. 15. In this byte writing system, data are first read out from the memories on a word-by-word basis, and write information sent from the microprocessors 11 is added thereto to prepare memory writing data, and then the memory writing data are again subjected to ECC addition and written in the memories 12. Therefore, one writing operation requires two memory cycles but it requires the ECC to be made up of only 6 bits. Employment of a system of adding the ECC to every byte requires the ECC to be made up of 10 (5 bits x 2) and thus the system shown in FIG. 15 is advantageous because it requires a lesser number of memory elements. The 16 bit ECC ENC circuit 251 and 16 bit ECC DEC circuits 252 and 253 correspond to parts of the 26 bit ECC ENC circuits 24 and 26 bit ECC DEC circuits 81, that is, the formers use only 16 bits out of 26 bits with the remaining 10 bits being set to be all "0". Details of the voter circuits 31, 32 and 33 shown in FIG. 9 are shown in FIG. 16. The voter circuits shown in Fig. 16 comprise 25 voting channels 30 to take a vote on three data systems A to C. As a result of taking a vote on the data systems A to C, when any one of the systems A to C is wrong, the voter circuit of FIG. 16 can show the wrong system with use of the flags of ERA to ERC. When two of the voting input systems A to C are completely faulty, the voter circuit of FIG. 16 cannot perform its voting function. Therefore, the voter circuit is arranged to be able to also use only one of the systems A to C, taking into consideration such situations as the above two-faulty-system case or easiness in a test. The voting channel circuit 30 of FIG. 16 has a total of 25 channels consisting of 17 one-way channels and 8 two-way channels and can play roles of the three voters 31, 32 and 33 in FIG. 9. The 17 one way channels consist of 6 control channels (3 control line channels x 2) and 11 address channels, while the 8 two-way channels are used as data lines. FIG. 17 shows details of one of the 25 channels of the voting channel circuit 30 in FIG. 16. In FIG. 17, symbols A, B and C represent data inputs respectively, 0 1 the output of the voting result, 0 2, 0 3 and 0 4 flag outputs indicative of errors with respect to the data inputs A to C respectively. Symbol SV indicates a selective mode control signal for stopping the voting operation in coorperation with signals S A , S B and S C and selecting one of the systems A to C, in which selected mode the signal S A , S B or Sc indicates selected one of the systems A to C, whereby the selected channel produces an output of 0 1. As has been described in the foregoing, according to the present invention, there is provided a high-reliability computer system comprising error correcting code encoders for adding error correcting codes to outputs of computers and an error correcting code decoder for correcting an error in a voter based on said error correcting codes, whereby means for avoiding failures in constituent elements of the computer system are provided all as constituent elements of the system. As a result, the present invention can eliminate the need for such operation as change-over operation of a circuit in case of a failure and can advantageously remove automatically the influence of a failure occurred in one of the constituent elements of the computer system. In this way, in accordance with the present invention, such a very high reliability computer system can be obtained that can eliminate disadvantages involved in the prior art voter, and its effect is great.

Claims: A high-reliability computer system having input/output devices (51) and providing a bidirectional input/output arrangement, said system comprising a plurality of computers (11) and a bidirectional voter (3) connected via bidirectional lines to said plurality of computers for taking a vote on the outputs thereof and distributing the inputs thereto to the respective computers; a plurality of two-way error correcting code encoding/decoding devices (2) connected via bidirectional lines between the computers (11) and the input of said voter (3) for adding, to the outputs of the computers, error correcting codes; and a plurality of two-way error correcting code decoding/encoding devices (41) together having a redundancy arrangement when functioning as a decoding device and being connected between the output of the voter (3) and the input/output devices (51) to correct an error in said output of the voter based on said error correcting codes. A system according to Claim 1, wherein each of said computers (11) has a memory disposed therein. A system according to Claim 1, wherein a memory (12) is provided between the output of said voter (3) and said error correcting code decoding/encoding devices (41). A system according to Claim 3, wherein an additional error correcting code decoder (8;81) is provided immediately upstream of said memory (12). A system according to Claim 4, wherein said memory (12) having an additional error correcting code decoder has a redundancy arrangement. A system according to Claims 1 to 5, wherein corrections of control and address signals are made in one way corresponding to an output direction from said computers (11) and correction of data signals is made in two ways corresponding to data flow directions necessary in read and write modes.

Inventors: KIKUCHI TOSHIO C O NEC CORPORA, KIKUCHI, TOSHIO C/O NEC CORPORATION
Applicants: NIPPON ELECTRIC CO, NEC CORPORATION
Application year: 1986
Main classification: G06F11
IPC codes: G06F11