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

Method and apparatus for recovering from hardware faults

Assignee: HP Inc
•
Filing: 1986-06-27
•
Granted: 1988-04-26
•
Expires: 2006-06-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for recovery from a fault occurring within a computing system using a hardware recovery module comprising a microprocessor dedicated for recovery control and a memory for storing system states. A recovery counter counts machine instructions executed since a previously recorded initial checkpoint. Each time the CPU transfers information directly from an I/O controller or the cache memory the recovery module stores the data being transferred. Each time an interrupt is made to the CPU, the recovery module is notified of the interrupt, and it thereupon stores the count of machine instructions executed since the previously recorded initial checkpoint and information identifying the interrupt. When a fault is detected, the system is restored to the system state existing at the beginning of the checkpoint, and the processor synthetically executes the machine instructions originally executed after the initial checkpoint in a sequence substantially similar to the original sequence. During synthetic execution, the recovery module simulates the original inputs, suppresses outputs, and records completion of pre-fault I/O requests. Synthetic execution is abandoned when the instruction point at which the fault was detected is reached, true execution resumes, and the recovery module thereafter simulates the completion of pre-fault I/O requests.

Inventors

  • 👤 Michael J. Fremont

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 19:12
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1402; G06F11/1405; G06F11/1407; G06F11/0703; G06F11/0751; G06F11/0754; G06F11/076

Claims Analysis

Total Claims: 38
Claim 1
Independent Claim 117 words
An apparatus useful in the recovery from faults within a computing system, the apparatus comprising: counting means for counting executed machine instruction; and checkpoint recording means, including means for recording a value of the counting means, for recording wherein the checkpoint comprises an initial checkpoint and information transfers occurring during a checkpoint interval, the initial checkpoint comprising data in central processor unit registers and data in cache memory at the beginning of the checkpoint interval, and the information transfers comprising, during the checkpoint interval, data transferred directly to the central processor unit from an I/O controller, data transferred to the central processor unit from the cache memory, and data from an interrupt to the central processign unit.
Claim 2
Independent Claim 117 words
An apparatus useful in the recovery from faults within a computing system, the apparatus comprising: counting means for counting executed machine instruction; and checkpoint recording means, including means for recording a value of the counting means, for recording wherein the checkpoint comprises an initial checkpoint and information transfers occurring during a checkpoint interval, the initial checkpoint comprising data in central processor unit registers and data in cache memory at the beginning of the checkpoint interval, and the information transfers comprising, during the checkpoint interval, data transferred directly to the central processor unit from an I/O controller, data transferred to the central processor unit from the cache memory, and data from an interrupt to the central processign unit.
Claim 3
Dependent Claim 17 words
An apparatus as in claim 1 further comprising means for selectively engabling and disabling the counting means.
Claim 4
Dependent Claim 18 words
An apparatus as in claim 1 further comprising means for setting the counting means to a precribed value.
Claim 5
Dependent Claim 21 words
An apparatus as in claim 1 further comprising means for generating a trap when the counting means contains a prescribed value.
Claim 6
Dependent Claim 25 words
An apparatus as in claim 1 further comprising means for restoring the computing system to a system state existing at the beginning of the checkpoint.
Claim 7
Dependent Claim 37 words
An apparatus as in claim 5 further comprising means for processing the recurrence of a request for input by the central processing unit from an input device during a synthetic execution of a series of machine instructions.
Claim 8
Dependent Claim 27 words
An apparatus as in claim 6 wherein the input request processing means includes means for simulating direct inputs from an input device to the central processor unit.
Claim 9
Dependent Claim 27 words
An apparatus as in claim 5 further comprising means for suppressing output by the central processing unit during a synthetic execution of a series of machine instructions.
Claim 10
Dependent Claim 48 words
An apparatus as in claim 5 further comprising means for processing, during a synthetic execution of a series of machine instructions, a completion of a request for I/O made by the central processing unit to an I/O device before the synthetic execution of the series of machine instructions.
Claim 11
Dependent Claim 27 words
An apparatus as in claim 9 further comprising means for simulating the completion of the I/O request after the synthetic execution of the series of machine instructions.
Claim 12
Dependent Claim 29 words
An apparatus as in claim 5 wherein the restoring means includes means for restoring, to main memory, data necessary for the synthetic execution of the series of machine instructions.
Claim 13
Dependent Claim 51 words
An apparatus as in claim 1 wherein the checkpoint recording means includes means for recording old data comprising data existing in a cache memory at the end of a checkpoint interval which has been modified by the central processor unit but which has not been recorded by the checkpoint recording means.
Claim 14
Dependent Claim 36 words
An apparatus as in claim 12 wherein the old data recording means includes means for recording, during a subsequent checkpoint interval, old data existing in a cache memory at the end of a previous checkpoint interval.
Claim 15
Dependent Claim 65 words
An apparatus as in claim 13 further comprising: means for detecting a prescribed amount of data within the checkpoint recording means; means for stopping an execution of machine instructions by the computing system unit when the prescribed amount of data is detected; and means for completing the recording of the old data existing in the cache memory at the end of the previous checkpoint interval.
Claim 16
Independent Claim 104 words
A method of preparing for recovery from a fault detected within a computing system comprising the steps of: recording an initial checkpoint, the initial checkpoint comprising data in central processor registers and data in a cache memory at the beginning of a checkpoint interval; counting machine instructions executed after recording the initial checkpoint; and recording information transfers occurring after recording the initial checkpoint, the information transfers comprising, during the checkpoint interval, data transferred directly to the central processor unit from an I/O controller, data transferred to the central processor unit from the cache memory, and data from an interrupt to the central processing unit.
Claim 17
Independent Claim 104 words
A method of preparing for recovery from a fault detected within a computing system comprising the steps of: recording an initial checkpoint, the initial checkpoint comprising data in central processor registers and data in a cache memory at the beginning of a checkpoint interval; counting machine instructions executed after recording the initial checkpoint; and recording information transfers occurring after recording the initial checkpoint, the information transfers comprising, during the checkpoint interval, data transferred directly to the central processor unit from an I/O controller, data transferred to the central processor unit from the cache memory, and data from an interrupt to the central processing unit.
Claim 18
Dependent Claim 23 words
A method as in claim 15 wherein the information transfer recording step includes the step of recording the count of machine instructions executed.
Claim 19
Dependent Claim 48 words
A method as in claim 15 wherein the initial checkpoint recording step includes the step of recording old data comprising data existing in a cache memory at the end of a checkpoint interval which has been modified by the central processor unit but which has not been recorded.
Claim 20
Dependent Claim 34 words
A method as in claim 17 wherein the old data recording step comprises recording, during a subsequent checkpoint interval, old data existing in a cache memory at the end of a previous checkpoint interval.
Claim 21
Dependent Claim 50 words
A method as in claim 17 further comprising the steps of: detecting a prescribed amount of data in a checkpoint recorder; stopping execution of machine instructions in the computing system; and completing the recording of old data existing in the cache memory at the end of the previous checkpoint interval.
Claim 22
Independent Claim 89 words
A method useful in the recovery from a fault occurrence within a computing system, the method comprising the steps of: restoring the computing system to a system state existing at the beginning of a checkpoint; executing synthetically machine instructions, originally executed in an execution sequence, in a reexecution sequence, wherein the reexecution sequence is substantially similar to the execution sequence; and repeating inputs from an I/O controller to a central processor unit, originally occurring in an order in the execution sequence, in an identical order in the reexecution sequence.
Claim 23
Independent Claim 89 words
A method useful in the recovery from a fault occurrence within a computing system, the method comprising the steps of: restoring the computing system to a system state existing at the beginning of a checkpoint; executing synthetically machine instructions, originally executed in an execution sequence, in a reexecution sequence, wherein the reexecution sequence is substantially similar to the execution sequence; and repeating inputs from an I/O controller to a central processor unit, originally occurring in an order in the execution sequence, in an identical order in the reexecution sequence.
Claim 24
Dependent Claim 18 words
A method as in claim 20 wherein the input repeating step comprises the step of simulating the input.
Claim 25
Dependent Claim 42 words
A method as in claim 20 further comprising the step of repeating outputs, originally occurring in an order in the execution sequence, in an identical order in the reexecution sequence wherein the output repeating step comprises the step of suppressing the outputs.
Claim 26
Dependent Claim 22 words
A method as in claim 20 wherein the machine instructions are synthetically executed in an order identical to the original execution sequence.
Claim 27
Dependent Claim 56 words
A method as in claim 22 further comprising the steps of: repeating each input which occurred after the beginning of the checkpoint and before the fault occurrence; and repeating each output which occurred after the beginning of the checkpoint and before the fault occurrence wherein the output repeating step comprises the step of suppressing the outputs.
Claim 28
Dependent Claim 41 words
A method as in claim 24 further comprising the step of: repeating each input and output at an instruction point in the reexecution sequence identical to an instruction point in the execution sequence at which each input and output originally occurred.
Claim 29
Dependent Claim 42 words
A method as in claim 25 wherein the step of repeating each input includes calculating the number of machine instructions executed between each interrupt to the central processing unit in the execution sequence for repeating indirect inputs to the central processing unit.
Claim 30
Dependent Claim 52 words
A method as in claim 26 wherein the step of repeating each input includes the step of generating a trap at the instruction point in the reexecution sequence identical to an instruction point in the execution sequence at which an interrupt corresponding to the completion of an indirect input request originally occurred.
Claim 31
Dependent Claim 46 words
A method as in claim 20 further comprising the step of: processing, during the synthetic execution of machine instructions, a completion of a request for I/O made by the central processing unit to an I/O device before the synthetic execution of the series of machine instructions.
Claim 32
Dependent Claim 37 words
A method as in claim 28 further comprising the step of: abandoning the synthetic execution of machine instructions if an instruction point, identical to an instruction point at which the fault occurrence took place, has been reached.
Claim 33
Dependent Claim 42 words
A method as in claim 29 further comprising the step of: simulating the completion of the I/O request made by the central processing unit before the synthetic execution of the series of machine instructions after abandoning the synthetic execution of machine instructions.
Claim 34
Dependent Claim 27 words
A method as in claim 20 wherein the restoring step includes restoring, to main memory, data necessary for the synthetic execution of the series of machine instructions.
Claim 35
Independent Claim 163 words
A method of preparing for and recovering from a fault detected a computing system comprising the steps of: recording an initial checkpoint, the initial checkpoint comprising data in central processor registers and data in a cache memory at the beginning of a checkpoint interval; counting machine instructions executed after recording the initial checkpoint; recording information transfers occurring after recording the initial checkpoint, the information transfers comprising, during the checkpoint interval, data transferred directly to the central processor unit from an I/O controller, data transferred to the central processor unit from the cache memory, and data from an interrupt to the central processing unit; restoring the computing system to a system state existing at the beginning of a checkpoint; executing synthetically machine instructions, originally executed in an execution sequence, in a reexecution sequence, wherein the reexecution sequence is substantially similar to the execution sequence; and repeating inputs, originally occurring in an order in the execution sequence, in an identical order in the reexecution sequence.
Claim 36
Independent Claim 163 words
A method of preparing for and recovering from a fault detected a computing system comprising the steps of: recording an initial checkpoint, the initial checkpoint comprising data in central processor registers and data in a cache memory at the beginning of a checkpoint interval; counting machine instructions executed after recording the initial checkpoint; recording information transfers occurring after recording the initial checkpoint, the information transfers comprising, during the checkpoint interval, data transferred directly to the central processor unit from an I/O controller, data transferred to the central processor unit from the cache memory, and data from an interrupt to the central processing unit; restoring the computing system to a system state existing at the beginning of a checkpoint; executing synthetically machine instructions, originally executed in an execution sequence, in a reexecution sequence, wherein the reexecution sequence is substantially similar to the execution sequence; and repeating inputs, originally occurring in an order in the execution sequence, in an identical order in the reexecution sequence.
Claim 37
Independent Claim 125 words
A method for diagnosing a fault detected within a computing system comprising the steps of: recording in a checkpoint recorder an initial checkpoint, the initial checkpoint comprising data in central processor registers and data in a cache memory, at the beginning of a checkpoint interval; counting machine instructions executed after recording the initial checkpoint; recording in the checkpoint recorder information transfers occurring after recording the initial checkpoint, the information transfers comprising, during the checkpoint interval, data transferred directly to the central processor unit from an I/O controller, data transferred to the central processor unit from the cache memory, and data from an interrupt to the central processing unit; and displaying, at a prescribed time, the contents of the checkpoint recorder existing during the fault occurrence.
Claim 38
Independent Claim 125 words
A method for diagnosing a fault detected within a computing system comprising the steps of: recording in a checkpoint recorder an initial checkpoint, the initial checkpoint comprising data in central processor registers and data in a cache memory, at the beginning of a checkpoint interval; counting machine instructions executed after recording the initial checkpoint; recording in the checkpoint recorder information transfers occurring after recording the initial checkpoint, the information transfers comprising, during the checkpoint interval, data transferred directly to the central processor unit from an I/O controller, data transferred to the central processor unit from the cache memory, and data from an interrupt to the central processing unit; and displaying, at a prescribed time, the contents of the checkpoint recorder existing during the fault occurrence.

References Cited (Backward Citations)

US3564506A Cited
US3654448A Cited
US3736566A Cited
US3784801A Cited
US3937938A Cited
US4044337A Cited
US4459658A Cited
US4514846A Cited
US4594710A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1991-04-26 1991-10-26 1992-04-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1995-04-26 1995-10-26 1996-04-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1999-04-26 1999-10-26 2000-04-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag