Memory Controller with Shared BCH Parity Circuits for Fast Error Correction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing semiconductor memory devices face challenges in efficiently correcting errors, particularly random, burst, and mixed errors, as increasing error correction code bits enlarges circuit size and reduces processing speed, and conventional error correction codes require iterative decoding processes that are complex and time-consuming.

Innovation Solution

A memory controller employing a two-dimensional product-code system using BCH codes, where data is encoded in both row and column directions with shared parity generation circuits, enabling fast encoding and decoding by alternating iterative processes between row and column directions, reducing circuit size and processing time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the number of bits of the error correction code is increased to improve correction ability, then the correction ability is improved, but the circuit size increases and processing speed decreases

Engineering Contradiction:
Improveerror correction abilityVSAvoidcircuit size
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the error correction code into two separate codes (C1 and C2) with different correction capabilities. Code C1 is optimized for random errors while code C2 handles burst errors. This segmentation allows each code to be designed with appropriate bit lengths for its specific error type, avoiding the need for a single overly complex code that would correct all error types equally, thus reducing overall circuit size while maintaining comprehensive error correction ability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a two-dimensional product code structure where data is arranged in a matrix and encoded in both row and column directions. This dimensional approach allows errors to be corrected by utilizing redundancy from both dimensions. The row codes (C1) and column codes (C2) work together to correct errors that a single-dimensional code could not handle, improving correction ability without requiring excessive bits in a single code dimension.

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

2Reliability

If the number of bits of the error correction code is increased to improve correction ability, then the correction ability is improved, but the processing speed decreases

Engineering Contradiction:
Improveerror correction abilityVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

By segmenting the error correction into two separate coding passes (row direction with code C1, then column direction with code C2), the patent enables parallel processing of different data segments. Each code can be processed independently in its respective dimension, improving processing throughput compared to a single monolithic code that would require sequential processing of all bits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The two-dimensional product code structure enables simultaneous encoding and decoding operations in both row and column dimensions. This dimensional parallelism allows the system to process multiple data blocks concurrently, significantly improving processing speed while maintaining strong error correction capabilities through the combined redundancy of both dimensions.

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

3Reliability

If conventional error correction codes are used to handle various error types, then comprehensive error correction is achieved, but the decoding process becomes complex and time-consuming

Engineering Contradiction:
Improveerror correction capabilityVSAvoiddecoding process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the decoding process into two distinct stages: first decoding row codes (C1) to correct random errors, then decoding column codes (C2) to correct burst errors. This segmentation simplifies each individual decoding step compared to a single complex universal decoder, as each code can be optimized for its specific error type. The modular structure reduces decoding complexity while maintaining the ability to handle mixed error types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

By introducing the column dimension as a second coding layer, the patent creates a product code structure where row and column decoders work independently in their respective dimensions. This dimensional separation allows each decoder to be simpler and more specialized, rather than requiring a single complex decoder to handle all error patterns. The intersection of row and column codes provides redundant information that simplifies the error detection and correction logic in each dimension.

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

Data Source

PatentUS9960788B2Memory controller, semiconductor memory device, and control method for semiconductor memory device
Publication Date: 2018.05.01 KIOXIA CORP
  • US9960788B2 patent drawing
  • US9960788B2 patent drawing
  • US9960788B2 patent drawing

AI summary

A memory controller is a memory controller including an encoder that product-codes, with a linear code, data to be recorded in a memory section and a decoder that decodes product-coded data read out from the memory section. The encoder and the decoder share a parity generation circuit including a plurality of remainder calculating and retaining sections, each including a remainder calculation circuit by a generator polynomial and a retaining circuit that retains an output of the remainder calculation circuit.