IP Library Granted Patent US 7,467,326
Granted Patent B2
US 7,467,326 · App. 10/418,713 · Granted Dec 16, 2008

Self-correcting computer

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,467,326
App. No.
10/418,713
Granted
Dec 16, 2008
Kind
B2
Abstract

The fault-tolerant or self-correcting computer system is disclosed. The computer system that is provided with various sets of protections against failures that may be caused by space radiation, for example. Improved reliability of the system is achieved by scrubbing of the components on a regular schedule, rather than waiting for an error to be detected. Thus, errors that may go undetected for an extended period are not allowed to propagate and further damage the system. Three or more processors are provided to operate in parallel, and a controller is provided to receive signals from the processors and, using a voting logic, determines a majority signal value. In this manner, the controller can detect an error when a signal from one of the processors differs from the majority signal. The system is also provided with a scrubbing module for resynchronizing the processors after a predetermined milestone has been reached. The milestone may be a predetermined time interval or any other event that may be defined by a user.

Claims (51)

1. A self-correcting computer system comprising

three or more processors running in lock-step;

a controller adapted to receive signals from the processors and being further adapted to determine a majority value for the received signals and detect errors within the received signals; and

a scrubbing module adapted to recurrently resynchronize the processors at a predetermined milestone by reconfiguring elements of the processors to a prior state, the resynchronization being in accordance with the majority value, wherein

the controller is adapted to record an error when a signal from one or more processors disagrees with the majority value; and

the controller is adapted to change the predetermined milestone.

2. The computer system according to claim 1 , wherein the controller is adapted to change the predetermined milestone based on a frequency of recorded errors.

3. The computer system according to claim 1 , wherein the controller is adapted to change the predetermined milestone based on system requirements.

4. A self-correcting computer system comprising

three or more processors running in lock-step;

a controller adapted to receive signals from the processors and being further adapted to determine a majority value for the received signals and detect errors within the received signals;

a scrubbing module adapted to recurrently resynchronize the processors at a predetermined milestone by reconfiguring elements of the processors to a prior state, the resynchronization being in accordance with the majority value; and

a memory module adapted to store data, said memory module being in communication with said processors;

wherein the memory module further comprises

three or more mirrored memory elements; and

a memory scrub module adapted to detect an error in one or more of said memory elements when an entry at a selected address of said one or more memory elements differs from an entry at said selected address of a majority of said memory elements, and

wherein said memory scrub module is further adapted to reconfigure said one or more memory elements in which an error is detected to contain an entry at the selected address identical to said entry at the selected address of said majority of said memory elements.

5. A self-correcting computer system comprising

three or more processors running in lock-step;

a controller adapted to receive signals from the processors and being further adapted to determine a majority value for the received signals and detect errors within the received signals;

a scrubbing module adapted to recurrently resynchronize the processors at a predetermined milestone by reconfiguring elements of the processors to a prior state, the resynchronization being in accordance with the majority value; and

a memory module adapted to store data, said memory module being in communication with said processors;

wherein the memory module further comprises

three or more mirrored memory elements; and

a memory scrub module adapted to detect an error in one or more of said memory elements when an entry at a selected address of said one or more memory elements differs from an entry at said selected address of a majority of said memory elements, and

wherein said memory scrub module is adapted to test for errors at regular intervals and to reconfigure an entry at an address of one or more of said memory elements when said entry differs from an entry at said address of a majority of said memory elements.

6. A fault-tolerant computer system comprising

three or more mirrored memory elements; and

a memory scrub module adapted to detect an error in one or more of said memory elements when an entry at a selected address of said one or more memory elements differs from an entry at said selected address of a majority of said memory elements wherein said memory scrub module is adapted to test for errors at regular predetermined intervals,

wherein said memory scrub module is further adapted to reconfigure said one or more memory elements in which an error is detected to contain an entry at the selected address identical to said entry at the selected address of said majority of said memory elements.

7. A fault-tolerant computer system comprising

three or more mirrored memory elements; and

a memory scrub module adapted to detect an error in one or more of said memory elements when an entry at a selected address of said one or more memory elements differs from an entry at said selected address of a majority of said memory elements wherein said memory scrub module is adapted to test for errors at regular predetermined intervals,

wherein said memory scrub module comprises

an array of AND gates, each gate in said array having as a first input a signal from one of said memory elements, and as a second input a signal from a different one of said memory elements, each gate in said array yielding a first output; and

an OR gate having as inputs the first output from each gate in said array of AND gates, said OR gate having a second output; and

wherein said memory scrub module is adapted to detect an error based on said second output.

8. A method of self-correcting by a computer, the method comprising recurrently performing the following operations:

a) flushing selected processor state elements from three or more processors of said computer when a predetermined milestone is reached;

b) storing restoration data on a system memory, said restoration data being indicative of majority value of each of said selected processor state elements; and

c) restoring said selected processor state elements using said restoration data.

9. The method according to claim 8 , wherein the three or more processors are reset prior to step c).

10. The method according to claim 8 , wherein the predetermined milestone is a time interval.

11. The method according to claim 8 , wherein the predetermined milestone is a number of clock cycles.

12. A self-correcting computer system comprising

three or more processors running in lock-step;

a controller adapted to receive signals from the processors and being further adapted to determine a majority value for the received signals and detect errors within the received signals; and

a scrubbing module adapted to recurrently resynchronize the processors at a predetermined milestone by reconfiguring elements of the processors to a prior state, the resynchronization being in accordance with the majority value, wherein

the predetermined milestone is determined as a function of a reliability of the computer system; and

the reliability is determined as a function of a scrubbing frequency and a frequency of an anticipated error.

13. The computer system of claim 12 , wherein the anticipated error is a result of a single event effect.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded May 24, 2019
From: EAST WEST BANK
To: MAXWELL TECHNOLOGIES, INC.
Reel/Frame 051441/0005 →
SECURITY AGREEMENT Recorded Aug 2, 2016
From: DATA DEVICE CORPORATION
To: CREDIT SUISSE AG, AS ADMINISTRATIVE AGENT
Reel/Frame 039537/0075 →
RELEASE OF SECURITY INTEREST Recorded Jun 23, 2016
From: GOLUB CAPITAL MARKETS LLC, FORMERLY KNOWN AS GCI CAPITAL MARKETS LLC, AS COLLATERAL AGENT
To: DATA DEVICE CORPORATION
Reel/Frame 038997/0516 →
SECURITY INTEREST Recorded May 19, 2016
From: DATA DEVICE CORPORATION
To: GCI CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 038652/0062 →
PATENT ASSIGNMENT Recorded May 4, 2016
From: MAXWELL TECHNOLOGIES, INC.
To: DATA DEVICE CORPORATION
Reel/Frame 038608/0509 →
RELEASE OF SECURITY INTEREST Recorded Apr 14, 2016
From: EAST WEST BANK
To: MAXWELL TECHNOLOGIES, INC.
Reel/Frame 038288/0495 →
ASSIGNEE CHANGE OF ADDRESS Recorded Feb 18, 2016
From: MAXWELL TECHNOLOGIES, INC.
To: MAXWELL TECHNOLOGIES, INC.
Reel/Frame 037856/0901 →
SECURITY INTEREST Recorded Jul 6, 2015
From: MAXWELL TECHNOLOGIES, INC.
To: EAST WEST BANK
Reel/Frame 036064/0636 →