← Back to Patent Explorer
US5692121A Expired / Lapsed US ⏱️ 0.0 years remaining

Recovery unit for mirrored processors

Assignee: International Business Machines Corp
•
Filing: 1996-04-30
•
Granted: 1997-11-25
•
Expires: 2016-04-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for making a processor system immune to circuit failure caused by external noise using mirrored processors, and a recovery unit integral with the method, are disclosed. Identical addresses and data information is generated in each of two processors. The data is then partitioned into registers and Error Correction Codes (ECC's) are generated for the data. The address, data, and ECC information for each processor is then interlaced in a data structure. The interlaced structures of each processor are then compared. If the comparison yields no errors, the data is checkpointed in the recovery unit; if an error is detected, a recovery sequence can be initiated after the check-stop operation, whereby the system is restored to the last error-free checkpointing operation.

Inventors

  • 👤 Ferenc Miklos Bozso
  • 👤 Yiu-Hing Chan
  • 👤 Philip George Emma
  • 👤 Algirdas Joseph Gruodis
  • 👤 David Patrick Hillerud
  • 👤 Scott Barnett Swaney

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 11:04
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/16; G06F11/1629; G06F11/1641; G06F11/08; G06F11/10; G06F11/1008

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 338 words
A method for making a processor system immune to failure caused by external noise, said processor system having first and second identical processors running identical code in lock-step mode, including a recovery unit containing one or more checkpoint registers, each of said checkpoint registers having first and second partitions, the method comprising the steps of: generating address data in each of said first and second processors; generating identical operand data in each of said first and second processors; initiating a fail-safe, no-fault error detection and recovery procedure comprising the steps of partitioning the operand data generated by each of said first and second processors into respective first and second pluralities of data subsets, generating error correction codes (ECCs) for each data subset of said first and second pluralities of data subsets, bit interlacing the data subsets and corresponding ECCs to form an interlaced entity for each of said first and second processors, and dividing each interlaced entity and loading the divide interlaced entities into first and second partitions of corresponding first and second current state registers; and concluding said fail-safe, no-fault error detection and recovery procedure by the further steps of comparing corresponding portions of the divided interlaced entities of each of said first and second processors and said address data, if all comparisons are equal, then checkpointing said first partition of an interlaced entity from said first processor stored in a first partition of said first set of current state registers into a corresponding first partition of a checkpoint register specified by said address data from said first processor, and checkpointing said second partition of the interlaced entity from the second processor stored in a second partition of said second set of current state registers into said second partition of the checkpoint register specified by said address data from said second processor, wherein said address data from said first and second processors is known to have been equal at the time of the comparison step, and if not all comparisons are equal, then implementing a recovery sequence.
Claim 2
Independent Claim 338 words
A method for making a processor system immune to failure caused by external noise, said processor system having first and second identical processors running identical code in lock-step mode, including a recovery unit containing one or more checkpoint registers, each of said checkpoint registers having first and second partitions, the method comprising the steps of: generating address data in each of said first and second processors; generating identical operand data in each of said first and second processors; initiating a fail-safe, no-fault error detection and recovery procedure comprising the steps of partitioning the operand data generated by each of said first and second processors into respective first and second pluralities of data subsets, generating error correction codes (ECCs) for each data subset of said first and second pluralities of data subsets, bit interlacing the data subsets and corresponding ECCs to form an interlaced entity for each of said first and second processors, and dividing each interlaced entity and loading the divide interlaced entities into first and second partitions of corresponding first and second current state registers; and concluding said fail-safe, no-fault error detection and recovery procedure by the further steps of comparing corresponding portions of the divided interlaced entities of each of said first and second processors and said address data, if all comparisons are equal, then checkpointing said first partition of an interlaced entity from said first processor stored in a first partition of said first set of current state registers into a corresponding first partition of a checkpoint register specified by said address data from said first processor, and checkpointing said second partition of the interlaced entity from the second processor stored in a second partition of said second set of current state registers into said second partition of the checkpoint register specified by said address data from said second processor, wherein said address data from said first and second processors is known to have been equal at the time of the comparison step, and if not all comparisons are equal, then implementing a recovery sequence.
Claim 3
Dependent Claim 80 words
A method as recited in claim 1, wherein said recovery sequence includes the steps of reading data subsets from the last checkpointing step; regenerating ECCs for the data subsets; correcting any errors detected by said ECC regeneration step; updating working registers of each processor with the corrected data subsets; rewriting the corrected data subsets back into checkpoint arrays rereading the rewritten data; rechecking, by ECC circuitry, said rewritten data; and effecting a check-stop operation if a previously corrected error persists.
Claim 4
Dependent Claim 49 words
A method as recited in claim 1, wherein each of said current state registers having a plurality of rows and latches, further comprising the step of selectively disabling of clocks of the current state latches to save power by using a decoded address input to the current state registers.
Claim 5
Dependent Claim 26 words
A method as recited in claim 3, further including the step of selectively disabling the decoders as determined by valid bits associated with the address information.
Claim 6
Dependent Claim 39 words
A method as recited in claim 1, wherein the checkpointing step further includes the step of selectively disabling of clocks of the checkpoint state latches to save power by using a decoded address input to the checkpoint state registers.
Claim 7
Dependent Claim 26 words
A method as recited in claim 5, further including the step of selectively disabling the decoders as determined by valid bits associated with the address information.
Claim 8
Dependent Claim 70 words
A method as recited in claim 1, wherein each said checkpoint state register portion in each partition is augmented by a single bit register associated with said checkpoint state register portion, said register having its inverted output connected to its input, said register initially containing a value of zero and thereafter providing a modulo-2 count of the number of times that said checkpoint state register portion has been stored to.
Claim 9
Dependent Claim 39 words
A method as recited in claim 7, further including the step of comparing the counter outputs from both partitions for each checkpoint state register in the checkpoint state array to determine whether both partitions have performed identical checkpointing operations.
Claim 10
Dependent Claim 27 words
A method as recited in claim 8, further including the step of checkstopping the processor if the checkpointing operations in both partitions are determined to be different.
Claim 11
Dependent Claim 343 words
A recovery unit for a processor system including first and second identical processors running identical code in lock-step mode, comprising: one or more of checkpoint registers, each of said checkpoint registers having first and second partitions; means for separately storing identical operand data received from each of two processors; means for initiating a fail-safe, no-fault error detection and recovery procedure, said creating means further comprising means for partitioning the operand data received from each of said first and second processors into respective first and second pluralities of data subsets, means for generating error correction codes (ECCs) for each data subset of said first and second pluralities of data subsets, and means for bit interlacing the data subsets and corresponding ECCs to form an interlaced entity for each of said first and second processors, and means for dividing each interlaced entity into first and second partitions and loading the divided interlaced entities into corresponding partitions of first and second sets of current state registers; and means for concluding said fail-safe, no-fault error detection and recovery procedure, said concluding means further comprising means for comparing corresponding portions of the divided interlaced entities of each of said first and second processors, means for checkpointing, if no errors are detected by said means for comparing, said first partition of an interlaced entity from said first processor stored in a first partition of said first set of current state registers into a corresponding first partition of a checkpoint register sniffed by address data from said first processor, and checkpoint said second partition of the interlaced entity from the second processor stored in a second partition of said second set of current state registers into said second partition of the checkpoint register specified by said address data from said second processor, wherein said address data from said first and second processors is known to have been equal at the time of the comparison is made by said means for comparing, and means for recovery initiated by said means for comparing if errors are detected by said means for comparing.
Claim 12
Dependent Claim 343 words
A recovery unit for a processor system including first and second identical processors running identical code in lock-step mode, comprising: one or more of checkpoint registers, each of said checkpoint registers having first and second partitions; means for separately storing identical operand data received from each of two processors; means for initiating a fail-safe, no-fault error detection and recovery procedure, said creating means further comprising means for partitioning the operand data received from each of said first and second processors into respective first and second pluralities of data subsets, means for generating error correction codes (ECCs) for each data subset of said first and second pluralities of data subsets, and means for bit interlacing the data subsets and corresponding ECCs to form an interlaced entity for each of said first and second processors, and means for dividing each interlaced entity into first and second partitions and loading the divided interlaced entities into corresponding partitions of first and second sets of current state registers; and means for concluding said fail-safe, no-fault error detection and recovery procedure, said concluding means further comprising means for comparing corresponding portions of the divided interlaced entities of each of said first and second processors, means for checkpointing, if no errors are detected by said means for comparing, said first partition of an interlaced entity from said first processor stored in a first partition of said first set of current state registers into a corresponding first partition of a checkpoint register sniffed by address data from said first processor, and checkpoint said second partition of the interlaced entity from the second processor stored in a second partition of said second set of current state registers into said second partition of the checkpoint register specified by said address data from said second processor, wherein said address data from said first and second processors is known to have been equal at the time of the comparison is made by said means for comparing, and means for recovery initiated by said means for comparing if errors are detected by said means for comparing.
Claim 13
Dependent Claim 29 words
A recovery unit as recited in claim 10, wherein said recovery means includes an instruction unit state machine and an execution unit state machine cooperating with the recovery unit.
Claim 14
Dependent Claim 42 words
A recovery unit as recited in claim 10, wherein said means for checkpointing includes means for latching each of said current state registers with a corresponding plurality of checkpoint registers, and wherein said current state registers and checkpoint registers are doubleword registers.
Claim 15
Dependent Claim 25 words
A recovery unit as recited in claim 12, further including means for comparing information in said current state registers and checkpoint registers of each processor.
Claim 16
Dependent Claim 25 words
A recovery unit as recited in claim 10, further including means for gating clocks of each row of current state register latches of each processor.
Claim 17
Dependent Claim 34 words
A recovery unit as recited in claim 14, further including counting means coupled to each said register wherein said counting means is incremented whenever the register to which it is coupled is stored into.
Claim 18
Dependent Claim 25 words
A recovery unit as recited in claim 15, further including means for comparing counter outputs generated by the gated clocks for each row of registers.
Claim 19
Dependent Claim 23 words
A recovery unit as recited in claim 13, further including means for gating clocks of checkpoint state latches in the checkpoint state registers.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-11-24 2001-05-26 2001-11-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-11-24 2005-05-26 2005-11-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-11-24 2009-05-26 2009-11-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag