×

Fault tolerant computer system

  • US 5,903,717 A
  • Filed: 04/02/1997
  • Issued: 05/11/1999
  • Est. Priority Date: 04/02/1997
  • Status: Expired due to Term
First Claim
Patent Images

1. A fault tolerant computer system (10) comprising:

  • a plurality of central processing units (CPUs) (22) operating synchronously, each operating step of each of said plurality of CPUs (22) being accomplished in parallel and substantially simultaneously with each of the other of said plurality of CPUs (22) each clock cycle of said CPUs (22);

    each of said plurality of CPUs (22) having a plurality of CPU inputs (14) and a plurality of CPU outputs (15);

    a voter (16) coupled to each said plurality of CPU inputs (14) and each said plurality of CPU outputs (15);

    said voter (16) using redundant voting of said plurality of CPU outputs (15) to detect errors and failures in any one of said plurality of CPUs (22) whose plurality of CPU outputs (15) disagrees with said plurality of CPU outputs (15) of a majority of said plurality of CPUs (22);

    each said plurality of CPU outputs (15) being compared one with another by said voter (16) each said clock cycle;

    a system bus (12);

    a first computer (11a);

    said first computer (11a) including said plurality of CPUs (22) and said voter (16) and coupled to said system bus (12);

    said first computer (11a) further includinga system memory (20);

    a memory controller (18);

    said memory controller (18) coupled to said voter (16), said memory (20) and said system bus (12);

    said system memory (20) providing memory output signals (19a) to said memory controller (18);

    said memory output signals (19a) being distributed equally as said plurality of CPU inputs (14) to each of said CPUs (22) through said memory controller (18) and said voter (16);

    agreement in said voter (16) of a majority of said plurality of CPU outputs (15) resulting in a voted output signal (17a);

    said voted output signal (17a) having a value of said majority of said plurality of CPU outputs (15);

    disagreement of any one of said plurality of CPU outputs (15) with a majority of said plurality of CPU outputs (15) being detected by said voter (16), an error signal produced by said disagreement causing resynchronizing of said plurality of CPUs (22) in said first computer (11a);

    a gate array(50);

    said gate array(50) includinga first AND gate array (53);

    each gate (58) of said first AND gate array (53) having as a first input (52a-d), CPU signals (52) derived from said plurality of CPU outputs (15), and having as a second input (54a-d), enable signals (54) derived from a vote status and control signal (39a);

    each said gate (58) having an output (60);

    a second AND gate array (57);

    each gate (59) of said second AND gate array (53) having as a first input, an output (60) from one gate (58) of said first AND gate array (53) and having as a second input, an output (60) from another gate (58) of said first AND gate array (53);

    each said gate (59) having an output (61);

    a first OR gate (63) having as input said output (61) of each said gate (59) of said second AND gate array (57), and having an output (66);

    an array of exclusive OR gates (65) coupled to an output (66) of said first OR gate (63) and coupled respectively to each of said CPU signals (52);

    each gate (64) of said array of exclusive OR gates (65) having an output (68);

    each of said CPU signals (52) input to said first AND gate array (53) being output by application of each of said enable signals (54) to a corresponding gate of said first AND gate array (53);

    said output (60) of said first AND gate array (53) being compared, one to another in said second AND gate array (57);

    each of said outputs (61) from said second AND gate array (57) having a value of the majority of said CPU signals (52) which are in agreement;

    said signals (52) which emerge as outputs (61) from said second AND gate array (57) being output (66) from said first OR gate (63);

    said first OR gate output (66) having a value of said CPU signals (52) which agree;

    said output (66) from said first OR gate (63) being applied as a first input to each gate (64) of said exclusive OR gate array (65) and said CPU signals (52) being applied, respectively as a second input to each gate (64) of said exclusive OR gate array (65); and

    an error signal (68) being output from each gate (64) of said exclusive OR gate array (65) where said applied CPU signals (52) and said applied output (66) from said first OR gate (63) do not agree.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×