LDPC Memory Controller With Block-Shifted Partial Parallel Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing LDPC decoding methods for long codes require many operation circuits for full parallel processing, making them impractical due to the high circuit scale needed.

Innovation Solution

A memory controller employing partial parallel processing using a check matrix composed of unit matrices, where each row of the unit matrix is sequentially shifted, allowing for efficient decoding with reduced circuit scale by performing operations in block units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If full parallel processing is used for LDPC coded data, then decoding speed is improved, but circuit scale increases significantly making it impractical

Engineering Contradiction:
Improvedecoding speedVSAvoidcircuit scale
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the check matrix into multiple blocks, where each block corresponds to a sub-matrix. This segmentation allows the decoding process to be divided into multiple stages, with each stage processing one block at a time. The check matrix H is partitioned into blocks H1, H2, ..., Hm, and decoding proceeds by processing these blocks sequentially rather than all simultaneously, thus reducing the parallel circuit scale while maintaining reasonable decoding speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs a dynamic decoding approach where the processing block is shifted across the check matrix in multiple stages. Instead of static full parallel processing, the system dynamically moves through different blocks in sequence, with each stage processing a specific block while others remain inactive or in different processing states. This dynamic staging reduces the number of circuits needed at any given moment.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If partial parallel processing in block units is used, then circuit scale is reduced, but decoding efficiency may be compromised

Engineering Contradiction:
Improvecircuit scaleVSAvoiddecoding efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent ensures continuous useful action by overlapping the processing of different blocks across multiple stages. While one block is being processed in the current stage, other blocks are prepared for subsequent stages or have completed previous stages. This continuous pipeline approach ensures that the decoding process maintains high efficiency despite the reduced parallel circuit scale, as circuits are continuously utilized across different blocks rather than remaining idle.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent performs preliminary actions by pre-organizing the check matrix into blocks and pre-planning the multi-stage processing sequence. Before actual decoding begins, the system prepares the block structure and staging plan, allowing for efficient execution during the decoding process. This preliminary organization enables the reduced circuit scale to operate at high efficiency without ad-hoc reconfiguration during processing.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8782496B2Memory controller, semiconductor memory apparatus and decoding method
Publication Date: 2014.07.15 KIOXIA CORP
  • US8782496B2 patent drawing
  • US8782496B2 patent drawing
  • US8782496B2 patent drawing

AI summary

A memory controller including a buffer configured to perform decoding frame-unit data decoded by an LDPC decoder through partial parallel processing based on a check matrix made up of a block of a unit matrix and a plurality of blocks in which each row of the unit matrix is sequentially shifted and store threshold decision information of the data read from a memory section, an LLR conversion section configured to convert the threshold decision information to an LLR, an LMEM configured to store probability information β calculated during iteration processing that repeatedly performs column processing and row processing based on the LLR in an iteration unit equal to or smaller than a size of the block, and a CPU core configured to transfer the probability information β stored in the LMEM to the buffer every time the iteration processing in the iteration unit is completed.