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

Checkpoint retry mechanism

Assignee: Lockheed Martin Corp
•
Filing: 1988-08-23
•
Granted: 1990-03-27
•
Expires: 2008-08-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An improved checkpoint retry mechanism is disclosed which automatically updates checkpoint addresses to enable the retry of instruction sequences for shorter segments of recently executed code, in response to the detection of an error since the passage of the current checkpoint. It does this by updating three different types of checkpoint addresses, a first checkpoint address for the instruction which follows a memory write or I/O write operation, a second type checkpoint address for the first instruction in an interrupt service routine, and a third type checkpoint address for the first instruction in an interrupted routine following an interrupt event. The resulting checkpoint retry mechanism is more efficient and faster because it adaptively updates the checkpoint address to reduce the size of code segments which must be reexecuted during retry operations. The invention operates to avoid memory corruption and erroneous I/O outputs during retry operations and protects from erroneous retry sequences.

Inventors

  • 👤 Peter M. Kogge
  • 👤 Khoan T. Truong
  • 👤 Dale A. Rickard
  • 👤 Robert L. Schoenike

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 11:40
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1402; G06F11/1405; G06F11/141; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3861; G06F9/3863

Claims Analysis

Total Claims: 14
Claim 1
Independent Claim 376 words
In a data processor including an instruction memory containing a sequence of executable instructions, and an arithmetic logic unit which operates in response to said instructions to carry out arithmetic and logical operations, an improved checkpoint retry mechanism, comprising: an instruction decoder having an input coupled to an output of said instruction memory, for decoding instructions accessed therefrom, including a write decode output, an interrupt decode output, and an interrupt return decode output; said instruction memory coupled to an address register for storing the address of the next instruction to be accessed therefrom; a checkpoint address register being coupled to said write decode output of said instruction decoder for storing the address of the first instruction following a write instruction accessed from said instruction memory, as a first type checkpoint address; said checkpoint address register being coupled to said interrupt decode output of said instruction decoder, for enabling, the address of a first occurring instruction in an interrupt service routine called by an interrupt instruction to be loaded into said checkpoint address register as a second type checkpoint address in response to accessing said interrupt instruction from said instruction memory; said checkpoint address register being coupled to said instruction return decode output of said instruction decoder, for loading a first occurring instruction in an interrupted program after the occurrence of an interrupt instruction, into said checkpoint address register as a third type checkpoint address, in response to accessing an interrupt return instruction from said instruction memory; PG,17 an error checker having an input coupled to an output of said arithmetic logic unit, for detecting errors occurring in said arithmetic logic unit; transfer means coupled to an output of said checkpoint address register and coupled to an output of said error checker, for transferring the contents of said checkpoint address register to said instruction memory address register in response to said error checker detecting an error in the operation of said arithmetic logic unit, the resulting contents of said instruction memory address register becoming the checkpoint address for retrying the sequence of instructions following said checkpoint address value, in response to the detection of said error; whereby checkpoint addresses are automatically determined to enable the retry of instruction sequences in response to the detection of an error.
Claim 2
Dependent Claim 376 words
In a data processor including an instruction memory containing a sequence of executable instructions, and an arithmetic logic unit which operates in response to said instructions to carry out arithmetic and logical operations, an improved checkpoint retry mechanism, comprising: an instruction decoder having an input coupled to an output of said instruction memory, for decoding instructions accessed therefrom, including a write decode output, an interrupt decode output, and an interrupt return decode output; said instruction memory coupled to an address register for storing the address of the next instruction to be accessed therefrom; a checkpoint address register being coupled to said write decode output of said instruction decoder for storing the address of the first instruction following a write instruction accessed from said instruction memory, as a first type checkpoint address; said checkpoint address register being coupled to said interrupt decode output of said instruction decoder, for enabling, the address of a first occurring instruction in an interrupt service routine called by an interrupt instruction to be loaded into said checkpoint address register as a second type checkpoint address in response to accessing said interrupt instruction from said instruction memory; said checkpoint address register being coupled to said instruction return decode output of said instruction decoder, for loading a first occurring instruction in an interrupted program after the occurrence of an interrupt instruction, into said checkpoint address register as a third type checkpoint address, in response to accessing an interrupt return instruction from said instruction memory; PG,17 an error checker having an input coupled to an output of said arithmetic logic unit, for detecting errors occurring in said arithmetic logic unit; transfer means coupled to an output of said checkpoint address register and coupled to an output of said error checker, for transferring the contents of said checkpoint address register to said instruction memory address register in response to said error checker detecting an error in the operation of said arithmetic logic unit, the resulting contents of said instruction memory address register becoming the checkpoint address for retrying the sequence of instructions following said checkpoint address value, in response to the detection of said error; whereby checkpoint addresses are automatically determined to enable the retry of instruction sequences in response to the detection of an error.
Claim 3
Dependent Claim 106 words
The apparatus of claim 1 in which said arithmetic logic unit has an associated status register for storing the current status thereof, the improved checkpoint retry mechanism which further comprises: a shadow status register coupled to said instruction decoder for storing the contents of said status register in response to a new checkpoint address value being stored in said checkpoint address register; said shadow status register having an output thereof coupled to an input of said status register, for transferring the contents of said shadow status register to said status register when said error checker detects the occurrence of an error in said arithmetic logic unit.
Claim 4
Dependent Claim 123 words
The apparatus of claim 1 in which said arithmetic logic unit has an associated plurality of general purpose registers for storing current operand and address values, the improved checkpoint retry mechanism which further comprises: a plurality of shadow general purpose registers coupled to said instruction decoder for storing the contents of said plurality of general purpose registers in response to a new value for said checkpoint address being stored in said checkpoint address register; said shadow general purpose registers having an output coupled to an input of said general purpose registers for transferring the contents of said shadow general purpose registers to said general purpose registers in response to said error checker detecting the occurrence of an error in said arithmetic logic unit.
Claim 5
Dependent Claim 46 words
The apparatus of claim 1 which further comprises: a single step instruction address incrementer coupled to said error detector and to said instruction memory address register, for sequentially incrementing the instruction memory address register and executing the instructions in a stepwise manner for a retry operation;
Claim 6
Dependent Claim 117 words
The apparatus of claim 1 which further comprises: a second arithmetic logic unit having a control input coupled through a second instruction decoder to said instruction memory, and having its output coupled to a second error checker; said second arithmetic logic unit executing the same sequence of instructions as said first arithmetic logic unit, simultaneously; the output of said first error checker and the output of said second error checker being coupled to said transfer means, thereby enabling an error detected in either said first arithmetic logic unit or in said second arithmetic logic unit to initiate the retry of the sequence of instructions which follow the instruction in said instruction memory stored at said checkpoint address.
Claim 7
Dependent Claim 149 words
The apparatus of claim 5 wherein a second instruction memory address register is associated with said second arithmetic logic unit, for storing a second value of the instruction address associated with said second arithmetic logic unit; an address comparator having a first input coupled to said first instruction address register associated with said first arithmetic logic unit and having a second input coupled to said second instruction address register associated with said second arithmetic logic unit, for detecting when said first and said second instruction address registers fail to have identical values for their respective addresses; isolation and swapping means having a control input coupled to the output of said address comparator, for isolating said first arithmetic logic unit from said second arithmetic logic unit and performing validation tests thereon in response to said address comparator determining that said first and said second instruction address values are not identical.
Claim 8
Dependent Claim 565 words
In a data processor including an instruction memory containing a sequence of executable instructions, an arithmetic logic unit which operates in response to said instructions to carry out arithmetic and logical operations, a status register for storing the current status of the arithmetic logic unit, and a plurality of general purpose registers accessible by the arithmetic logic unit, for storing current operand and address values, an improved checkpoint retry mechanism, comprising: an instruction decoder having an input connected to an output of said instruction memory, for decoding instructions accessed therefrom, including a write decode output, an interrupt decode output, and an interrupt return decode output, and further including an output connected to a control input of said arithmetic logic unit; said instruction memory coupled to an address register for storing the address of the next instruction to be accessed therefrom; a first two input AND gate having a first input connected to an output of said instruction memory address register and a second input connected to said write decode output of said instruction decoder; a checkpoint address register having an input connected to the output of said first AND gate, for storing the address of the first instruction following a write instruction accessed from said instruction memory, as a first type checkpoint address; said instruction memory address register having an input connected to an interrupt vector address means, for storing the address of the first instruction in a service routine which is pointed to by an interrupt instruction accessed from said instruction memory; said first AND gate having said second input connected to said interrupt decode output of said instruction decoder, for enabling the address of a first instruction in said service routine which has been transferred from said interrupt vector address means to said instruction memory address register, to be loaded into said checkpoint address register as a second type checkpoint address in response to accessing an interrupt instruction from said instruction memory; an interrupt return address stack for storing the address of a first instruction in an interrupted program which occurs after an interrupt instruction therein; a second AND gate having a first input connected to an output of said address stack and a second input connected to said instruction return decode output of said instruction decoder, and an output connected to said checkpoint address register, for loading the first instruction in an interrupted program after the occurrence of an interrupt instruction, into said checkpoint address register as a third type checkpoint address, in response to accessing an interrupt return instruction from said instruction memory; an error checker having an input connected to an output of said arithmetic logic unit, for detecting errors occurring in said arithmetic logic unit; a third AND gate having a first input connected to the output of said checkpoint address register and a second input connected to an output of said error checker, for transferring the contents of said checkpoint address register to said instruction memory address register in response to said error checker detecting an error in the operation of said arithmetic logic unit, the resulting contents of said instruction memory address register being the checkpoint address for retrying the sequence of instructions following said checkpoint address value, in response to the detection of said error; whereby checkpoint addresses are automatically determined to enable the retry of instruction sequences in response to the detection of an error.
Claim 9
Dependent Claim 565 words
In a data processor including an instruction memory containing a sequence of executable instructions, an arithmetic logic unit which operates in response to said instructions to carry out arithmetic and logical operations, a status register for storing the current status of the arithmetic logic unit, and a plurality of general purpose registers accessible by the arithmetic logic unit, for storing current operand and address values, an improved checkpoint retry mechanism, comprising: an instruction decoder having an input connected to an output of said instruction memory, for decoding instructions accessed therefrom, including a write decode output, an interrupt decode output, and an interrupt return decode output, and further including an output connected to a control input of said arithmetic logic unit; said instruction memory coupled to an address register for storing the address of the next instruction to be accessed therefrom; a first two input AND gate having a first input connected to an output of said instruction memory address register and a second input connected to said write decode output of said instruction decoder; a checkpoint address register having an input connected to the output of said first AND gate, for storing the address of the first instruction following a write instruction accessed from said instruction memory, as a first type checkpoint address; said instruction memory address register having an input connected to an interrupt vector address means, for storing the address of the first instruction in a service routine which is pointed to by an interrupt instruction accessed from said instruction memory; said first AND gate having said second input connected to said interrupt decode output of said instruction decoder, for enabling the address of a first instruction in said service routine which has been transferred from said interrupt vector address means to said instruction memory address register, to be loaded into said checkpoint address register as a second type checkpoint address in response to accessing an interrupt instruction from said instruction memory; an interrupt return address stack for storing the address of a first instruction in an interrupted program which occurs after an interrupt instruction therein; a second AND gate having a first input connected to an output of said address stack and a second input connected to said instruction return decode output of said instruction decoder, and an output connected to said checkpoint address register, for loading the first instruction in an interrupted program after the occurrence of an interrupt instruction, into said checkpoint address register as a third type checkpoint address, in response to accessing an interrupt return instruction from said instruction memory; an error checker having an input connected to an output of said arithmetic logic unit, for detecting errors occurring in said arithmetic logic unit; a third AND gate having a first input connected to the output of said checkpoint address register and a second input connected to an output of said error checker, for transferring the contents of said checkpoint address register to said instruction memory address register in response to said error checker detecting an error in the operation of said arithmetic logic unit, the resulting contents of said instruction memory address register being the checkpoint address for retrying the sequence of instructions following said checkpoint address value, in response to the detection of said error; whereby checkpoint addresses are automatically determined to enable the retry of instruction sequences in response to the detection of an error.
Claim 10
Dependent Claim 139 words
The apparatus of claim 7 which further comprises: a shadow status register for storing the contents of said status register when a new checkpoint address value is stored in said checkpoint address register; a fourth AND gate having a first input connected to an output of said status register, a second input connected to said instruction decoder, and an output connected to an input of said shadow status register, for loading the contents of said status register into said shadow status register when said checkpoint address register has a new checkpoint address value stored therein; said shadow status register having an output thereof coupled to an input of said status register, for transferring the contents of said shadow status register to said status register when said error checker detects the occurrence of an error in said arithmetic logic unit.
Claim 11
Dependent Claim 90 words
The apparatus of claim 7 which further comprises: a plurality of shadow general purpose registers for storing the contents of said plurality of general purpose registers when a new value for said checkpoint address is stored in said checkpoint address register; said shadow general purpose registers having an output coupled to an input of said general purpose registers for transferring the contents of said shadow general purpose registers to said general purpose registers in response to said error checker detecting the occurrence of an error in said arithmetic logic unit.
Claim 12
Dependent Claim 44 words
The apparatus of claim 7 which further comprises: a single step instruction address incrementer having an output connected to said instruction memory address register, for sequentially incrementing the instruction memory address register and executing the instructions in a stepwise manner for a retry operation.
Claim 13
Dependent Claim 123 words
The apparatus of claim 7 which further comprises: a second arithmetic logic unit having a control input coupled through a second instruction decoder to said instruction memory, and having its output connected to a second error checker; said second arithmetic logic unit executing the same sequence of instructions as said first arithmetic logic unit, simultaneously; the output of said first error checker and the output of said second error checker being connected through an OR logic function to said third AND gate, thereby enabling an error detected in either said first arithmetic logic unit or in said second arithmetic logic unit to initiate the retry of the sequence of instructions which follow the instruction in said instruction memory stored at said checkpoint address.
Claim 14
Dependent Claim 149 words
The apparatus of claim 11 wherein a second instruction memory address register is associated with said second arithmetic logic unit, for storing a second value of the instruction address associated with said second arithmetic logic unit; an address comparator having a first input connected to said first instruction address register associated with said first arithmetic logic unit and having a second input connected to said second instruction address register associated with said second arithmetic logic unit, for detecting when said first and said second instruction address registers fail to have identical values for their respective addresses; isolation and swapping means having a control input connected to the output of said address comparator, for isolating said first arithmetic logic unit from said second arithmetic logic unit and performing validation tests thereon in response to said address comparator determining that said first and said second instruction address values are not identical.

References Cited (Backward Citations)

US3533082A Cited
US3539996A Cited
US3736566A Cited
US3786430A Cited
US4044337A Cited
US4697266A Cited
US4703481A Cited
US4755997A Cited
US4819232A Cited
US4852092A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1993-03-26 1993-09-25 1994-03-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1997-03-26 1997-09-25 1998-03-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2001-03-26 2001-09-25 2002-03-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag