ECC Codeword Layout for On-the-Fly Flash Decoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Error Correction Code (ECC) decoding processes in flash devices require waiting for all data to be received before decoding can begin, leading to increased data access time and buffer requirements.

Innovation Solution

A data format with a first parity part located at the beginning and a second parity part at the end of the codeword, allowing on-the-fly decoding to start as soon as the first parity part is received, and alternative formats with interleaved message and parity parts, or a parity segment between message segments, to reduce waiting time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If conventional ECC decoding waits for all data to be received before decoding, then decoding accuracy is maintained, but data access time increases and buffer requirements increase

Engineering Contradiction:
Improvedata access timeVSAvoiddecoding accuracy
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The parity check matrix is divided into multiple layers, with the first layer containing parity bits that can be decoded independently. This segmentation allows the decoder to process available data immediately without waiting for the complete codeword, thus reducing data access time while maintaining decoding accuracy through systematic layered processing

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first layer of the parity check matrix is prepared in advance to contain only the necessary parity bits for initial decoding. This preliminary arrangement enables the decoder to start processing as soon as the first portion of data is received, eliminating the need to wait for complete data reception while ensuring reliable decoding through pre-structured matrix layers

Inventive Principle:
Principle #10Preliminary action

2Productivity

If all parity bits are appended at the end of messages, then encoding is simplified, but decoding cannot start until all data is received and buffer size must be enlarged

Engineering Contradiction:
Improvedecoding speedVSAvoidbuffer size
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The parity check matrix is segmented into multiple layers where the first layer contains parity bits positioned to enable early decoding. This segmentation allows the buffer to process data in smaller chunks rather than requiring storage of the entire codeword, thus increasing decoding speed while reducing buffer size requirements

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first layer of the parity check matrix is pre-structured to contain parity bits that enable immediate decoding of the first message portion. This preliminary arrangement eliminates the need for large buffers to store complete codewords before decoding, allowing progressive processing and improving productivity while reducing device complexity

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9350388B2Data format with ECC information for on-the-fly decoding during data transfer and method for forming the data format
Publication Date: 2016.05.24 STORART TECHSHENZHEN CO LTD
  • US9350388B2 patent drawing
  • US9350388B2 patent drawing
  • US9350388B2 patent drawing

AI summary

A data format with ECC information for on-the-fly decoding during data transfer and method for forming the data format are disclosed. The method includes the steps of: dividing a parity check matrix having a message segment and a parity segment into a plurality of layers; choosing parity bit nodes in the parity segment of a first layer connected to check nodes; assembling the chosen parity bit nodes as a first parity segment and the rest parity bit nodes as a second parity segment; reallocating the parity check matrix so that the first parity segment is on the head of the message segment and the second parity segment is on the end of the message segment; forming a generating matrix according to the reallocated parity check matrix; and operating a message with the generating matrix to obtain the codeword.