ECC Memory Encoding with Poison Markers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing error correction code (ECC) protected memories face challenges in efficiently encoding and managing erroneous data, as extra storage is required and existing methods can alter ECC states, leading to incorrect error detection and correction.

Innovation Solution

A method is introduced to use an extra symbol in ECC to mark data as error-free or erroneous, allowing for efficient encoding and decoding of data integrity, and propagating a poison marker across all ECC words to prevent corruption and ensure accurate error detection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If extra storage bits are used to save poisoned data indicators, then data integrity marking capability is improved, but storage cost and complexity increase

Engineering Contradiction:
Improvedata integrity marking capabilityVSAvoidstorage cost and complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent reuses existing ECC check symbols for dual purposes: normal error correction and poison data indication. By making check symbols configurable between data and check roles, the system achieves poison marking capability without adding extra storage bits, resolving the contradiction between reliability improvement and complexity increase

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent dynamically changes the role of ECC symbols based on configuration mode. In poison indication mode, check symbols are repurposed to indicate poisoned data. This parameter change allows the same hardware to provide both error correction and poison marking without additional storage resources

Inventive Principle:
Principle #35Parameter changes

2Reliability

If error indicators are encoded into ECC at faulty memory locations, then poison marking capability is improved, but ECC state stability deteriorates

Engineering Contradiction:
Improvepoison marking capabilityVSAvoidECC state stability
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The patent separates poison indication from normal data storage by using dedicated poison indicator bits within the ECC structure. This segmentation allows poison marking to occur without interfering with the normal ECC correction capability, maintaining ECC state stability while enabling poison detection

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces poison indicator bits as intermediary elements that mediate between data integrity status and ECC state. These indicator bits provide a safe mechanism to mark poisoned data without directly altering the ECC check symbols, thus preserving ECC state stability

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If ECC code is shortened by forcing unused symbols to zero, then storage efficiency is improved, but poison indication capability deteriorates

Engineering Contradiction:
Improvestorage efficiencyVSAvoidpoison indication capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent makes check symbols universal by allowing them to function as either data or check symbols based on configuration. This enables the shortened ECC code to still provide poison indication capability by configuring check symbols in poison indication mode, resolving the contradiction between storage efficiency and poison indication capability

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9354970B2Method and apparatus for encoding erroneous data in an error correction code protected memory
Publication Date: 2016.05.31 ADVANCED MICRO DEVICES INC
  • US9354970B2 patent drawing
  • US9354970B2 patent drawing
  • US9354970B2 patent drawing

AI summary

A method and device are described for encoding erroneous data in an error correction code (ECC) protected memory. In one embodiment, incoming data including a plurality of data symbols and a data integrity marker is received. At least one extra symbol is used to mark the incoming data as error-free data or erroneous data (i.e., poison) based on the data integrity marker. ECC may be created to protect the data symbols. The ECC may include a plurality of check symbols, a plurality of unused symbols and the at least one extra symbol. In another embodiment, an error marker may be propagated from a single ECC word to all ECC words of data block (e.g., a cache line, a page, and the like) to prevent errors due to corruption of the error marker caused by faulty memory in the erroneous ECC word.