GPC Decoder Architecture for Shared-Block Data Dependency Mitigation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Generalized Product Codes (GPCs) face data dependency issues when multiple decoders operate in parallel, leading to unpredictable behavior and reduced throughput due to clashes in updating error information among constituent codewords.

Innovation Solution

A decoder architecture that performs coarse decoding in parallel for multiple codewords to determine error information and correct errors, while preventing updates in shared common blocks, followed by fine decoding of individual codewords to ensure accurate error correction, thereby mitigating data dependency and maintaining high throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple decoders operate in parallel to decode constituent codewords, then decoding throughput is improved, but data dependency clashes occur in shared common blocks leading to unpredictable behavior

Engineering Contradiction:
Improvedecoding throughputVSAvoiddecoding correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary identification of shared common blocks between constituent codewords before parallel decoding begins. Error information from parallel decoders is collected and processed to determine which codewords share common blocks, preventing update clashes before they occur during the error correction phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A control mechanism acts as an intermediary between parallel decoders and the error correction process. This intermediary coordinates the error correction updates by identifying shared common blocks and managing which decoders can update which blocks, preventing unpredictable behavior while maintaining parallel processing benefits.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If parallel decoding is performed without coordination, then decoding speed is improved, but data dependency issues cause unpredictable behavior in hardware implementation

Engineering Contradiction:
Improvedecoding speedVSAvoidhardware predictability
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The system implements feedback mechanisms where error information from parallel decoders is continuously monitored and analyzed. The control logic uses this feedback to identify shared common blocks and adjust the error correction process accordingly, ensuring predictable hardware behavior while maintaining high decoding speed through coordinated parallel operation.

Inventive Principle:
Principle #23Feedback

3Productivity

If the number of component decoders running in parallel is increased, then throughput is improved, but data dependency problems become more severe

Engineering Contradiction:
Improvedecoding throughputVSAvoiddata dependency management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the error correction process by identifying and separating shared common blocks from unique blocks. This segmentation allows the control logic to manage updates efficiently even with many parallel decoders, as each decoder's updates are routed appropriately based on block ownership, reducing the severity of data dependency problems despite increased parallelism.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10439649B2Data dependency mitigation in decoder architecture for generalized product codes for flash storage
Publication Date: 2019.10.08 SK HYNIX INC
  • US10439649B2 patent drawing
  • US10439649B2 patent drawing
  • US10439649B2 patent drawing

AI summary

A memory device includes a memory array, a processor coupled to the memory array, and a decoding apparatus. The decoding apparatus is configured to perform coarse decoding and fine decoding. In coarse decoding, the decoder decodes in parallel two or more codewords, which share a common block of bits, to determine error information. Next, the decoder corrects errors in a first codeword based on the error information. Then, it is determined if the shared common block of data bits is corrected. If the shared common data block is updated, then error correction based on the error information is prohibited in codewords sharing the common block of data bits with the first codeword. In fine decoding, a single codeword is decoded at a time for error correction.