Register File Error Correction Using Cached Value Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Integrated circuits are increasingly prone to soft errors due to radiation particle strikes or voltage pulses, which can cause bit value changes and propagate errors, especially in safety-critical systems, while also desiring smaller geometries and lower voltages for increased density and power efficiency.

Innovation Solution

A data processing system with a register file and cache that compares register data values with cached values using a comparator and value selector to detect and correct errors, providing enhanced soft error protection by storing index values and using cyclic redundancy checking codes, and reducing overhead by focusing on frequently accessed registers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If integrated circuits use smaller geometries and lower voltages to increase density and power efficiency, then circuit density and power consumption improve, but susceptibility to soft errors increases

Engineering Contradiction:
Improvecircuit densityVSAvoidsoft error susceptibility
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent creates a copy of register data values in a separate cache structure. This copy is used for comparison with the original register data to detect errors. By maintaining a redundant copy rather than protecting each bit individually, the system achieves error detection capability while minimizing the overhead associated with protection mechanisms, thus preserving circuit density benefits.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a comparator as an intermediary component that mediates between the register file and the cache. The comparator compares register data values with cached copies and generates error signals when discrepancies are detected. This intermediary approach enables error detection without requiring complex protection circuitry integrated directly into the register file, maintaining power efficiency while improving reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If error correcting codes are applied to protect register file data, then reliability improves, but device complexity and overhead increase

Engineering Contradiction:
Improveerror protection capabilityVSAvoidprotection mechanism overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instead of implementing complex error correcting codes within the register file structure, the patent uses a simpler approach by maintaining a separate cache copy of register data values. This copy-based method provides error detection capability with minimal overhead, avoiding the complexity of traditional ECC implementations while still protecting against soft errors in safety-critical applications.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent separates the error protection function from the main register file by creating a distinct cache structure and comparator circuit. This segmentation allows the register file to operate at full speed without the overhead of integrated protection logic, while the separate cache and comparator provide error detection capability. The protection mechanism is divided into independent components that can be selectively enabled based on application requirements.

Inventive Principle:
Principle #1Segmentation

3Reliability

If a full cache is provided for each register to maximize error protection, then reliability improves, but device complexity and resource overhead increase

Engineering Contradiction:
Improveerror detection capabilityVSAvoidcache overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements partial error protection by providing cache storage for only a subset of register data values rather than all registers. This selective approach focuses protection on the most critical or frequently accessed registers, achieving acceptable error detection capability while significantly reducing the overhead associated with a full cache implementation. The system accepts that not all registers will be protected, but prioritizes those where error detection provides the greatest benefit.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent applies error protection selectively to specific registers or register groups based on their importance or access patterns. Rather than uniformly protecting all registers, the system provides cache-based error detection only where needed, optimizing the balance between reliability improvement and resource overhead. This local quality approach allows critical safety-critical registers to be protected while less important registers operate without the overhead of cache protection.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20090292977A1Error Detecting and Correcting Mechanism for a Register File
Publication Date: 2009.11.26 ARM LTD
  • US20090292977A1 patent drawing
  • US20090292977A1 patent drawing
  • US20090292977A1 patent drawing

AI summary

A data processing system includes a register file (2) having a plurality of registers storing respective register data values and an associated register value cache (12) having a plurality of storage locations (14) storing corresponding cache data values. There are fewer cache data values than registers. When a register is to be read, both the register data value and, if present, a cache data value from a corresponding storage location (14) within the register value cache (12) are read and compared by a comparator (18). This generates a match signal which indicates if the data values do not match that one of the data values is in error. The match signal stalls the processing and a CRC code initially stored with the cache data value and recalculated based upon the read cache data value are compared to determine whether or not the cache data value has changed since it was stored. If the cache data value has not changed, then it is correct and is output instead of the register data value. Alternatively, if the cache data value has changed, then the register data value is output.