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

Main memory system and checkpointing protocol for fault-tolerant computer system

Assignee: Radisys Corp
•
Filing: 1995-11-29
•
Granted: 1999-01-26
•
Expires: 2015-11-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A mechanism for maintaining a consistent, periodically updated state in main memory without constraining normal computer operation is provided, thereby enabling a computer system to recover from faults without loss of data or processing continuity. In a typical computer system, a processor and input/output elements are connected to a main memory subsystem. A checkpoint memory element, which may include one or more buffer memories and a shadow memory, is also appended to this main memory subsystem. During normal processing, an image of data written to primary memory is captured by the checkpoint memory element. When a new checkpoint is desired, thereby establishing a consistent state in main memory to which all executing applications can safely return following a fault, the data previously captured is used to establish that checkpoint. This structure and protocol can guarantee a consistent state in main memory, thus enabling fault-tolerant operation.

Inventors

  • 👤 Jack J. Stiffler

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 23:58
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1402; G06F11/1415; G06F11/1438; G06F11/1479; G06F11/1482; G06F11/16; G06F11/1666

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 197 words
A computer system which periodically establishes a consistent checkpoint of a current state of the computer system for supporting fault-tolerant operation, the computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor and connected to a main memory system, wherein the processor has means for queuing input/output events between checkpoints; wherein the main memory system includes: i) a primary memory element; ii) a buffer memory element connected to the primary memory element such that data and addresses of write accesses to the primary memory element are captured in the buffer memory element simultaneously with the write access to the primary memory element; iii) a shadow storage element connected to the buffer memory; iv) means for copying data from the buffer memory element to the shadow storage element in response to an instruction to perform such copying from the processor; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the means for copying after flushing of the cache, internal registers and queued input/output events has completed.
Claim 2
Dependent Claim 197 words
A computer system which periodically establishes a consistent checkpoint of a current state of the computer system for supporting fault-tolerant operation, the computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor and connected to a main memory system, wherein the processor has means for queuing input/output events between checkpoints; wherein the main memory system includes: i) a primary memory element; ii) a buffer memory element connected to the primary memory element such that data and addresses of write accesses to the primary memory element are captured in the buffer memory element simultaneously with the write access to the primary memory element; iii) a shadow storage element connected to the buffer memory; iv) means for copying data from the buffer memory element to the shadow storage element in response to an instruction to perform such copying from the processor; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the means for copying after flushing of the cache, internal registers and queued input/output events has completed.
Claim 3
Dependent Claim 169 words
A memory system for use with at least two processors, each connected to the memory system and having a cache of arbitrary size, internal registers and a queue of input/output events, wherein the cache, internal registers and queue of each processor are periodically flushed by the processors in synchronization, comprising: a primary memory element; a buffer memory physically disjoint from and connected to the primary memory such that data and addresses of write accesses to the primary memory element are captured in the buffer memory element simultaneously with the write access to the primary memory element; a shadow storage element connected to the buffer memory and physically disjoint from the primary memory and the buffer memory; means for copying data in the buffer memory to appropriate locations in the shadow storage element when the processors complete flushing of their caches, internal registers and queues, thereby establishing a consistent checkpoint in the memory system from which processing can resume without loss of data integrity or program continuity following a fault.
Claim 4
Dependent Claim 169 words
A memory system for use with at least two processors, each connected to the memory system and having a cache of arbitrary size, internal registers and a queue of input/output events, wherein the cache, internal registers and queue of each processor are periodically flushed by the processors in synchronization, comprising: a primary memory element; a buffer memory physically disjoint from and connected to the primary memory such that data and addresses of write accesses to the primary memory element are captured in the buffer memory element simultaneously with the write access to the primary memory element; a shadow storage element connected to the buffer memory and physically disjoint from the primary memory and the buffer memory; means for copying data in the buffer memory to appropriate locations in the shadow storage element when the processors complete flushing of their caches, internal registers and queues, thereby establishing a consistent checkpoint in the memory system from which processing can resume without loss of data integrity or program continuity following a fault.
Claim 5
Dependent Claim 209 words
A computer system which periodically establishes a consistent checkpoint of a current state of the computer system for supporting fault-tolerant operation, the computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor, wherein the processor has means for queuing input/output events between checkpoints; a main memory having a primary memory element connected to the processor; a buffer memory connected to the primary memory element such that the buffer memory captures data and addresses of write accesses to the primary memory element simultaneously with the write access to the primary memory element; a shadow storage element connected to the buffer memory; and a memory control logic circuit, connected to the shadow storage element and the buffer memory and having outputs to control the shadow storage element and the buffer memory to copy data from the buffer memory to the shadow storage element in response to instructions from the processor; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the memory control logic to copy data after flushing of the cache, internal registers and queued input/output events has completed.
Claim 6
Dependent Claim 209 words
A computer system which periodically establishes a consistent checkpoint of a current state of the computer system for supporting fault-tolerant operation, the computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor, wherein the processor has means for queuing input/output events between checkpoints; a main memory having a primary memory element connected to the processor; a buffer memory connected to the primary memory element such that the buffer memory captures data and addresses of write accesses to the primary memory element simultaneously with the write access to the primary memory element; a shadow storage element connected to the buffer memory; and a memory control logic circuit, connected to the shadow storage element and the buffer memory and having outputs to control the shadow storage element and the buffer memory to copy data from the buffer memory to the shadow storage element in response to instructions from the processor; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the memory control logic to copy data after flushing of the cache, internal registers and queued input/output events has completed.
Claim 7
Dependent Claim 261 words
In a computer system having first processor with a first cache, first internal registers and a first queue of input/output events and a second processor with a second cache, second internal registers and a second queue of input/output events, each cache being connected to a main memory and for caching data from the main memory, the main memory comprising a primary memory, a buffer memory connected to the primary memory such that data and addresses of write accesses to the primary memory are captured in the buffer memory simultaneously with the write access to the primary memory, and a shadow storage element connected to the buffer memory, a method for synchronizing flushing of caches, internal registers and queues to maintain a consistent state of the computer system in the main memory, the method comprising the steps, performed by the first processor, of: setting a lock and suspending normal operations; flushing the first cache, the first internal registers and the first queue to the primary memory such that the buffer memory captures data flushed from the first cache, first internal registers and first queue; waiting until the second processor commences flushing of the second cache, second internal registers and a second queue such that the buffer memory captures data flushed from the second cache and second internal registers; identifying which processor has written the data in the buffer memory; instructing the buffer memory to copy data flushed from each processor having completed flushing and captured in the buffer memory to the shadow storage element; and releasing the lock and resuming normal operations.
Claim 8
Dependent Claim 261 words
In a computer system having first processor with a first cache, first internal registers and a first queue of input/output events and a second processor with a second cache, second internal registers and a second queue of input/output events, each cache being connected to a main memory and for caching data from the main memory, the main memory comprising a primary memory, a buffer memory connected to the primary memory such that data and addresses of write accesses to the primary memory are captured in the buffer memory simultaneously with the write access to the primary memory, and a shadow storage element connected to the buffer memory, a method for synchronizing flushing of caches, internal registers and queues to maintain a consistent state of the computer system in the main memory, the method comprising the steps, performed by the first processor, of: setting a lock and suspending normal operations; flushing the first cache, the first internal registers and the first queue to the primary memory such that the buffer memory captures data flushed from the first cache, first internal registers and first queue; waiting until the second processor commences flushing of the second cache, second internal registers and a second queue such that the buffer memory captures data flushed from the second cache and second internal registers; identifying which processor has written the data in the buffer memory; instructing the buffer memory to copy data flushed from each processor having completed flushing and captured in the buffer memory to the shadow storage element; and releasing the lock and resuming normal operations.
Claim 9
Independent Claim 168 words
A method for maintaining a consistent state of a computer system in main memory to support fault tolerance in the computer system, wherein the computer system includes a first computer having a first cache, internal registers and queue of input/output events, a second computer having a second cache, internal registers and queue of input/output events, wherein the first and second caches hold data accessed from a primary memory by the first and second computers, and wherein the first and second computers may modify said data in the primary memory, the method including the steps of: monitoring the primary memory to detect a write of data to the primary memory; copying the data written to the primary memory into a buffer memory simultaneously with the data written to the primary memory; periodically flushing data from the first cache, internal registers and queue and the second cache, internal registers and queue into the primary memory in synchronization; after flushing, copying data from the buffer memory into a shadow storage element.
Claim 10
Independent Claim 168 words
A method for maintaining a consistent state of a computer system in main memory to support fault tolerance in the computer system, wherein the computer system includes a first computer having a first cache, internal registers and queue of input/output events, a second computer having a second cache, internal registers and queue of input/output events, wherein the first and second caches hold data accessed from a primary memory by the first and second computers, and wherein the first and second computers may modify said data in the primary memory, the method including the steps of: monitoring the primary memory to detect a write of data to the primary memory; copying the data written to the primary memory into a buffer memory simultaneously with the data written to the primary memory; periodically flushing data from the first cache, internal registers and queue and the second cache, internal registers and queue into the primary memory in synchronization; after flushing, copying data from the buffer memory into a shadow storage element.
Claim 11
Dependent Claim 211 words
A computer system which periodically establishes a consistent checkpoint of a current state of the computer system for supporting fault-tolerant operation, the computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor, wherein the processor has means for queuing input/output events between checkpoints: a main memory system connected to the processor, wherein the processor utilizes data from the main memory system and temporarily stores utilized data in the cache, the main memory system comprising: a primary memory element having an input through which data in the primary memory element is accessed; a second memory element connected to the primary memory element so as to enable the second memory element to capture data and addresses of accesses to the primary memory element simultaneously with the write access; and means for ensuring the existence of a consistent checkpoint state in the primary and second memory elements using the data stored in the second memory element; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the means for ensuring after flushing of the cache, internal registers and queued input/output events has completed.
Claim 12
Dependent Claim 211 words
A computer system which periodically establishes a consistent checkpoint of a current state of the computer system for supporting fault-tolerant operation, the computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor, wherein the processor has means for queuing input/output events between checkpoints: a main memory system connected to the processor, wherein the processor utilizes data from the main memory system and temporarily stores utilized data in the cache, the main memory system comprising: a primary memory element having an input through which data in the primary memory element is accessed; a second memory element connected to the primary memory element so as to enable the second memory element to capture data and addresses of accesses to the primary memory element simultaneously with the write access; and means for ensuring the existence of a consistent checkpoint state in the primary and second memory elements using the data stored in the second memory element; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the means for ensuring after flushing of the cache, internal registers and queued input/output events has completed.
Claim 13
Dependent Claim 159 words
A computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor, wherein the processor has means for queuing input/output events between checkpoints; a main memory subsystem, coupled to the processor, including: a primary memory element accessible by the processor a buffer that monitors write accesses to the primary memory element and stores data related to the write accesses simultaneously with the write access; and means, using the data from the buffer, for ensuring the existence of a consistent checkpoint state in the main memory subsystem to which processing can resume without loss of data integrity and program continuity following a fault; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the means for ensuring after flushing of the cache, internal registers and queued input/output events has completed.
Claim 14
Dependent Claim 159 words
A computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor, wherein the processor has means for queuing input/output events between checkpoints; a main memory subsystem, coupled to the processor, including: a primary memory element accessible by the processor a buffer that monitors write accesses to the primary memory element and stores data related to the write accesses simultaneously with the write access; and means, using the data from the buffer, for ensuring the existence of a consistent checkpoint state in the main memory subsystem to which processing can resume without loss of data integrity and program continuity following a fault; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the means for ensuring after flushing of the cache, internal registers and queued input/output events has completed.
Claim 15
Dependent Claim 206 words
In a computer system having first processor with a first cache and first queue of input/output events and a second processor with a second cache and second queue of input/output events, each cache being connected to a main memory and for caching data from the main memory and having means for maintaining cache coherency between the first and second caches, wherein the main memory comprises a primary memory, a buffer memory connected to the primary memory, and a shadow storage element connected to the buffer memory, a method for synchronizing flushing of the first and second caches to maintain a consistent state in the main memory, the method comprising the steps, performed by the first processor, of: setting a lock and suspending normal operations; flushing the first cache and first queue to the main memory such that the buffer memory and the primary memory capture data flushed from the first cache; synchronizing with the second processor to flush the second cache and second queue to the main memory such that the buffer memory and the primary memory capture data flushed from the second cache; instructing the buffer memory to copy data captured therein to the shadow storage element; and releasing the lock and resuming normal operations.
Claim 16
Dependent Claim 206 words
In a computer system having first processor with a first cache and first queue of input/output events and a second processor with a second cache and second queue of input/output events, each cache being connected to a main memory and for caching data from the main memory and having means for maintaining cache coherency between the first and second caches, wherein the main memory comprises a primary memory, a buffer memory connected to the primary memory, and a shadow storage element connected to the buffer memory, a method for synchronizing flushing of the first and second caches to maintain a consistent state in the main memory, the method comprising the steps, performed by the first processor, of: setting a lock and suspending normal operations; flushing the first cache and first queue to the main memory such that the buffer memory and the primary memory capture data flushed from the first cache; synchronizing with the second processor to flush the second cache and second queue to the main memory such that the buffer memory and the primary memory capture data flushed from the second cache; instructing the buffer memory to copy data captured therein to the shadow storage element; and releasing the lock and resuming normal operations.
Claim 17
Dependent Claim 51 words
The method of claim 8, wherein the step of synchronizing comprises the step of waiting until the second processor completes flushing of the second cache and second queue to the main memory such that the buffer memory and the primary memory capture data flushed from the second cache and second queue.
Claim 18
Dependent Claim 113 words
The method of claim 8, wherein each cache is connected to a main memory such that the main memory can identify the processor which accesses the main memory, and wherein the step of synchronizing includes the step of waiting until the second processor commences flushing of the second cache and second queue to the main memory such that the buffer memory and the primary memory capture data flushed from the second cache and second queue and wherein the buffer memory identifies which processor has written the data in the buffer memory, and copies only data flushed from each processor having completed flushing and captured in the buffer memory to the shadow storage element.
Claim 19
Dependent Claim 63 words
The method of claim 8, wherein the first and second processors each have first and second sets of internal registers, respectively, and wherein the first processor flushes the first set of internal registers when the first cache and first queue are flushed and wherein the second processor flushes the second set of internal registers when the second cache and second queue are flushed.
Claim 20
Dependent Claim 25 words
The method of claim 8, wherein the first and second processors each have a flush counter which is incremented when a flush operation is completed.
Claim 21
Dependent Claim 215 words
A computer system comprising: a first processor with a first cache and first queue of input/output events, and a second processor with a second cache and second queue of input/output events and having means for maintaining cache coherency between the first and second caches; a main memory connected to the first and second processors and caches and first and second queues and comprising a primary memory, a buffer memory connected to the primary memory, and a shadow storage element connected to the buffer memory; and means for synchronizing flushing of the first and second caches and first and second queues to maintain a consistent state in the main memory, including: means for setting a lock and suspending normal operations; means for flushing the first cache and first queue to the main memory such that the buffer memory and the primary memory capture data flushed from the first cache and first queue; means for synchronizing with the second processor to flush the second cache and second queue to the main memory such that the buffer memory and the primary memory capture data flushed from the second cache and second queue; means for instructing the buffer memory to copy data captured therein to the shadow storage element; and means for releasing the lock and resuming normal operations.
Claim 22
Dependent Claim 215 words
A computer system comprising: a first processor with a first cache and first queue of input/output events, and a second processor with a second cache and second queue of input/output events and having means for maintaining cache coherency between the first and second caches; a main memory connected to the first and second processors and caches and first and second queues and comprising a primary memory, a buffer memory connected to the primary memory, and a shadow storage element connected to the buffer memory; and means for synchronizing flushing of the first and second caches and first and second queues to maintain a consistent state in the main memory, including: means for setting a lock and suspending normal operations; means for flushing the first cache and first queue to the main memory such that the buffer memory and the primary memory capture data flushed from the first cache and first queue; means for synchronizing with the second processor to flush the second cache and second queue to the main memory such that the buffer memory and the primary memory capture data flushed from the second cache and second queue; means for instructing the buffer memory to copy data captured therein to the shadow storage element; and means for releasing the lock and resuming normal operations.
Claim 23
Dependent Claim 51 words
The computer system of claim 13, wherein the means for synchronizing comprises means for waiting until the second processor completes flushing of the second cache and second queue to the main memory such that the buffer memory and the primary memory capture data flushed from the second cache and second queue.
Claim 24
Dependent Claim 113 words
The computer system of claim 13, wherein each cache is connected to a main memory such that the main memory can identify the processor which accesses the main memory, and wherein the means for synchronizing includes means for waiting until the second processor commences flushing of the second cache and second queue to the main memory such that the buffer memory and the primary memory capture data flushed from the second cache and second queue and wherein the buffer memory identifies which processor has written the data in the buffer memory, and copies only data flushed from each processor having completed flushing and captured in the buffer memory to the shadow storage element.
Claim 25
Dependent Claim 64 words
The computer system of claim 13, wherein the first and second processors each have first and second sets of internal registers, respectively, and wherein the first processor flushes the first set of internal registers when the first cache and first queue are flushed and wherein the second processor flushes the second set of internal registers when the second cache and second queue are flushed.
Claim 26
Dependent Claim 26 words
The computer system of claim 13, wherein the first and second processors each have a flush counter which is incremented when a flush operation is completed.
Claim 27
Dependent Claim 226 words
A computer system which periodically establishes a consistent checkpoint of a current state of the computer system for supporting fault-tolerant operation, the computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor, wherein the processor has means for queuing input/output events between checkpoints; a main memory connected to the processor and comprising: a primary memory element having an input through which data in the primary memory element is accessed; a second memory element connected to the primary memory element so as to enable the second memory element to capture data and addresses of write accesses to the primary memory element simultaneous with the write access to the primary memory element; and a memory control logic circuit, connected to the second memory element for controlling the primary and second memory elements to maintain the existence of a consistent checkpoint state in the primary and second memory elements using the data stored in the second memory element in a manner transparent to the processor; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the memory control logic to establish a consistent checkpoint state after flushing of the cache, internal registers and queued input/output events has completed.
Claim 28
Dependent Claim 226 words
A computer system which periodically establishes a consistent checkpoint of a current state of the computer system for supporting fault-tolerant operation, the computer system comprising: a processor having a cache, internal registers and an input/output subsystem which provides input/output events for the processor, wherein the processor has means for queuing input/output events between checkpoints; a main memory connected to the processor and comprising: a primary memory element having an input through which data in the primary memory element is accessed; a second memory element connected to the primary memory element so as to enable the second memory element to capture data and addresses of write accesses to the primary memory element simultaneous with the write access to the primary memory element; and a memory control logic circuit, connected to the second memory element for controlling the primary and second memory elements to maintain the existence of a consistent checkpoint state in the primary and second memory elements using the data stored in the second memory element in a manner transparent to the processor; and wherein the processor includes means for suspending operations, means for flushing the cache, internal registers and the queued input/output events to the main memory system and means for instructing the memory control logic to establish a consistent checkpoint state after flushing of the cache, internal registers and queued input/output events has completed.
Claim 29
Dependent Claim 65 words
The main memory of claim 18, wherein the second memory element includes a buffer memory connected to capture data and addresses of write accesses to the primary memory element and a shadow storage element connected to the buffer memory and wherein the memory control logic circuit copies data from the buffer memory to the shadow storage element in response to an instruction from the processor.
Claim 30
Dependent Claim 37 words
The main memory of claim 18, wherein the processor includes a cache, internal registers and a queue of input/output events and means for periodically flushing the cache, the internal registers and the queue to the main memory.

References Cited (Backward Citations)

US3588829A Cited
FR2028517A1 Cited
US4413327A Cited
US3864670A Cited
US3761881A Cited
US3736566A Cited
US3803560A Cited
US3889237A Cited
US3979726A Cited
US4164017A Cited
US4020466A Cited
US4044337A Cited
US4228496A Cited
US4817091A Cited
US4373179A Cited
JPS5541528A Cited
JPS55115121A Cited
US4393500A Cited
US4403284A Cited
US4435762A Cited
US4426682A Cited
JPS5831651A Cited
US4566106A Cited
US4459658A Cited
US4503534A Cited
US4484273A Cited
US4590554A Cited
EP0143125A2 Cited
US4819154A Cited
US4654819A Cited
WO1984002409A1 Cited
US4734855A Cited
US4905196A Cited
US4959774A Cited
US4751639A Cited
US4703481A Cited
US4819232A Cited
US4740969A Cited
EP0260625A1 Cited
US4941087A Cited
EP0288511A1 Cited
FR2606184A1 Cited
US4823261A Cited
US5123099A Cited
US4958273A Cited
US4965719A Cited
US5276848A Cited
US4924466A Cited
US5418916A Cited
US4912707A Cited
US4964126A Cited
US4996687A Cited
US5301309A Cited
US5325517A Cited
US5239637A Cited
US5247618A Cited
EP0441087A1 Cited
US5235700A Cited
US5420996A Cited
US5271013A Cited
US5327532A Cited
EP0457308A2 Cited
US5263144A Cited
US5157663A Cited
US5530801A Cited
DE4136729A1 Cited
US5381544A Cited
US5214652A Cited
US5369757A Cited
US5408636A Cited
US5293613A Cited
US5269017A Cited
US5495590A Cited
US5495587A Cited
US5313647A Cited
US5325519A Cited
US5488716A Cited
US5488719A Cited
US5363503A Cited
US5394542A Cited
US5398331A Cited
US5485585A Cited
US5574874A Cited
US5408649A Cited
US5463733A Cited
US5418940A Cited
US5568380A Cited
US5504861A Cited
US5566297A Cited
US5583987A Cited
US5557735A Cited
US5649152A Cited
US5530946A Cited
US5644742A Cited
US5649136A Cited
US5630047A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-01-25 2002-07-27 2003-01-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-01-25 2006-07-27 2007-01-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-01-25 2010-07-27 2011-01-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag