US6862693B2

Providing fault-tolerance by comparing addresses and data from redundant processors running in lock-step

Summary by NHIP

Lock-step processor fault tolerance

The method compares store operations from redundant processors running identical code in lockstep to detect errors. It combines identical operations into a single store for shared memory while routing invalidation messages to other processors but excluding the redundant group.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

One embodiment of the present invention provides a system that facilitates fault-tolerance by using redundant processors. This system operates by receiving store operations from a plurality of redundant processors running the same code in lockstep. The system compares the store operations to determine if the store operations are identical, thereby indicating that the redundant processors are operating correctly. If the store operations are identical, the system combines the store operations into a combined store operation, and forwards the combined store operation to a system memory that is shared between the redundant processors. If the store operations are not identical, the system indicates an error condition. In a variation on this embodiment, the system similarly combines store operations.

US6862693B2, drawing sheet 1
Sheet 1 of 10

Term

Term ended

Expired 21 July 2023, 3.2 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

19 claims: 3 independent, 16 dependent

  1. 1
    Broadest claimClaim Score 43, average(NHIP)A method for providing fault-tolerance by using redundant processors, comprising:receiving a plurality of store operations from a plurality of redundant processors running the same code in lockstep;comparing the plurality of store operations to determine if the plurality of store operations are identical, thereby indicating that the plurality of redundant processors are operating correctly;if the plurality of store operations are not identical, indicating an error condition;if the plurality of store operations are identical, combining the plurality of store operations into a combined store operation, and forwarding the combined store operation to a system memory that is shared between the plurality of redundant processors;receiving a plurality of invalidation messages from the plurality of redundant processors;wherein the plurality of invalidation messages indicate that a specific cache line should be invalidated in other caches in the computer system;combining the plurality of invalidation messages into a combined invalidation message;and communicating the combined invalidation message to the other processors in the computer system, but not to the plurality of redundant processors.
  2. 8
    An apparatus for providing fault-tolerance by using redundant processors, comprising:a plurality of redundant processors that are configured to run the same code in lockstep;a system memory that is shared between the plurality of redundant processors;a switch that couples the plurality of redundant processors to the system memory, wherein the switch is configured to receive a plurality of store operations from the plurality of redundant processors;a comparison mechanism within the switch that is configured to compare the plurality of store operations to determine if the plurality of store operations are identical, thereby indicating that the plurality of redundant processors are operating correctly;a forwarding mechanism coupled to the comparison mechanism, wherein if the plurality of store operations are identical, the forwarding mechanism is configured to, combine the plurality of store operations into a combined store operation, and to forward the combined store operation to the system memory;and an error handling mechanism that is configured to indicate an error condition if the plurality of store operations are not identical;wherein the switch is additionally configured to: receive a plurality of invalidation messages from the plurality of redundant processors, wherein the plurality of invalidation messages indicate that a specific cache line should be invalidated in other processors in a computer system containing the plurality of redundant processors;combine the plurality of invalidation messages into a combined invalidation message, and to communicate the combined invalidation message to the other processors in the computer system, but not to the plurality of redundant processors.
  3. 16
    An apparatus for providing fault-tolerance by using redundant processors, comprising:a plurality of redundant processors that are configured to run the same code in lockstep;a system memory that is shared between the plurality of redundant processors, wherein the system memory includes a lower-level cache memory;a switch that couples the plurality of redundant processors to the system memory, wherein the switch is configured to receive a plurality of store operations from the plurality of redundant processors;a comparison mechanism within the switch that is configured to compare the plurality of store operations to determine if the plurality of store operations are identical, thereby indicating that the plurality of redundant processors are operating correctly;a forwarding mechanism coupled to the comparison mechanism, wherein if the plurality of store operations are identical, the forwarding mechanism is configured to, combine the plurality of store operations into a combined store operation, and to forward the combined store operation to the system memory;and an error handling mechanism that is configured to indicate an error condition if the plurality of store operations are not identical;wherein the switch is additionally configured to, receive a plurality of invalidation messages from the plurality of redundant processors, wherein the plurality of invalidation messages indicate that a specific cache line should be invalidated in other processors in a computer system containing the plurality of redundant processors, combine the plurality of invalidation messages into a combined invalidation message, and to communicate the combined invalidation message to the other processors in the computer system, but not to the plurality of redundant processors.