Memory ECC Code Structure for Protected Single-Bit Correction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing error correction code (ECC) schemes, such as Hamming codes, have limited error correction capabilities, particularly when single or two-bit errors occur in unprotected locations, leading to erroneous correction operations and potential data loss in memory devices.

Innovation Solution

The implementation of a modified Hamming code (266, 10, 4) that adds an extra parity bit to protect both ECC bits and user data, allowing for the detection and correction of single-bit errors and the detection of three-bit errors, ensuring accurate error correction operations without introducing additional errors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional Hamming code (265, 9, 3) is used, then the device complexity is lower, but the reliability is insufficient because it cannot correctly handle single or two-bit errors in unprotected locations

Engineering Contradiction:
Improveerror correction capabilityVSAvoidECC code structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The code structure is segmented into two distinct parts: 256 data bits and 10 ECC bits (9 traditional Hamming bits plus 1 additional parity bit). This segmentation allows the additional bit to specifically handle protection of unprotected locations without affecting the core Hamming code functionality, thereby improving reliability while maintaining manageable complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extends the traditional Hamming code by adding another dimension - an additional parity bit that operates alongside the existing 9 ECC bits. This dimensional extension transforms the code from (265, 9, 3) to (266, 10, 4), enabling detection and correction of error patterns that were previously unhandleable, thus resolving the reliability issue.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If traditional Hamming code is used, then the manufacturing precision requirements are lower, but erroneous correction operations occur when single or two-bit errors happen in unprotected locations

Engineering Contradiction:
Improveaccuracy of error correctionVSAvoidECC implementation precision
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The additional parity bit is pre-calculated and stored alongside the traditional 9 ECC bits during the encoding phase. This preliminary action ensures that when decoding occurs, the system already has the necessary information to distinguish between correctable errors and uncorrectable error patterns, preventing erroneous corrections before they can occur.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The extended ECC structure provides enhanced feedback capability through the 10th parity bit. When errors occur, the combination of the original 9 syndrome bits and the additional parity bit creates a more comprehensive error signature, enabling the decoder to accurately determine whether an error pattern is correctable or should be flagged as uncorrectable, thus improving correction accuracy.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11442807B2Error correction code (ECC) operations in memory
Publication Date: 2022.09.13 MICRON TECHNOLOGY INC
  • US11442807B2 patent drawing
  • US11442807B2 patent drawing
  • US11442807B2 patent drawing

AI summary

The present disclosure includes apparatuses and methods for ECC operation associated with memory. One example apparatus comprises a controller configured to perform an error correction code (ECC) operation on a codeword stored in the memory, wherein the codeword includes a first number of ECC bits and the first number of ECC bits are generated based on an encoding matrix, wherein each row of the encoding matrix has an odd number of bits having a binary value of 1.