# US 8,788,871 B2 · Unified, workload-optimized, adaptive RAS for hybrid systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,871 B2
- Document ID: US8788871B2
- Status: Granted
- Kind: B2
- Application number: 13/170,453
- Filed: 2011-06-28
- Published: 2013-01-03
- Granted: 2014-07-22
- Earliest claimed: 2011-06-28
- Assignees: International Business Machines Corporation
- Applicants: Rajaram B. Krishnamurthy; Carl J. Parris; Donald W. Schmidt; Benjamin P. Segal
- Inventors: Rajaram B. Krishnamurthy; Carl J. Parris; Donald W. Schmidt; Benjamin P. Segal
- Web page: https://patentgrep.com/patent/US8788871B2

## CPC

- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 11/008: {Reliability or availability analysis}
- G06F 11/1645: {and the comparison itself uses redundant hardware}
- G06F 11/188: {where exact match is not required}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, system, and computer program product for maintaining reliability in a computer system. In an example embodiment, the method includes performing a first data computation by a first set of processors, the first set of processors having a first computer processor architecture. The method continues by performing a second data computation by a second processor coupled to the first set of processors, the second processor having a second computer processor architecture, the first computer processor architecture being different than the second computer processor architecture. Finally, the method includes dynamically allocating computational resources of the first set of processors and the second processor based on at least one metric while the first set of processors and the second processor are in operation such that the accuracy and processing speed of the first data computation and the second data computation are optimized.

## Claims

### Claim 1

A system for maintaining reliability, the system comprising:
a first processor;
a first memory coupled to the first processor;
a network link coupled to the first processor;
a second processor coupled to the first processor through the network link, the second processor having at different processor architecture than the first processor;
a second memory coupled to the second processor, the second memory having computer readable program code embodied therewith, the computer readable program code configured to:
set a flag for a computation for redundancy checking in the first memory, the redundancy checking comparing a redundant computation by the first processor and the second processor; and
query an agent process executing on the first processor to turn on redundancy checking when running the computation on the first processor.

### Claim 2 (depends on 1)

The system of claim 1, wherein the flag is set dynamically based on policy information.

### Claim 3 (depends on 1)

The system of claim 1, wherein the computer readable program code are further configured to:
receive two floating point values by the second processor from the first processor; and
compare the difference between the two floating point values with a workload dependent tolerance, wherein the workload dependent tolerance is an upper bound of a relative error in a calculation.

### Claim 4 (depends on 3)

The system of claim 3, wherein the computer readable program code are further configured to flag the floating point value as one of equal and not equal.

### Claim 5

A computer program product for maintaining reliability in a computer system configuration, the computer program product comprising:
a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to:
obtain a piece of data in a stream of data from at least two processors, the processors having different processor architectures;
compare the piece of data in the stream of data from each of the at least two processors;
flag the piece of data in the stream of data where the piece of data is not substantially equal from each of the at least two processors; and
dynamically allocate computational resources of the at least two processors based on at least one metric while the at least two processors are in operation such that the accuracy and processing speed of data computations are optimized.

### Claim 6 (depends on 5)

The computer program product of claim 5, wherein the metric is a computational speed of the data computations.

### Claim 7 (depends on 5)

The computer program product of claim 5, wherein the metric is the availability of processor cycles to perform redundant calculations in a given time period.

### Claim 8 (depends on 5)

The computer program product of claim 5, wherein the metric is the type of data being processed.

### Claim 9 (depends on 5)

The computer program product of claim 5, further comprising computer readable program code configured to adjust an amount of computational redundancy for a first data computation of the data computations by a first processor of the at least two processors.

### Claim 10 (depends on 5)

The computer program product of claim 5, further comprising computer readable program code configured to change computation from concurrent computation of the data by the first processor to serial computation of the data by the first processor based on performance and availability of processor cycles to perform redundant calculations in a given time period.

### Claim 11 (depends on 5)

The computer program product of claim 5, further comprising computer readable program code configured to balance computation and bandwidth dynamically based on performance and availability of processor cycles to perform redundant calculations in a given time period.

### Claim 12 (depends on 5)

The computer program product of claim 5, further comprising computer readable program code configured to:
receive two floating point values by a first processor of the at least two processors; and
compare the difference between the two floating point values with a workload dependent tolerance, wherein the workload dependent tolerance is an upper bound of a relative error in a calculation.

### Claim 13 (depends on 12)

The computer program product of claim 12, further comprising computer readable program code configured to flag the floating point value as one of equal and not equal.
