Set Partitioning and Multilevel Coding for HIHO Error Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hard-in, hard-out (HIHO) systems, such as Flash storage, face high error rates due to noise, which existing technologies have not effectively addressed without increasing system complexity or overhead.

Innovation Solution

The implementation of set partitioning and multilevel coding techniques, where data is encoded and decoded based on signal margin-enhancing subsets, allowing for differential error correction coding based on subset assignment, thereby reducing error rates with minimal complexity increase.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional error correction coding is used in HIHO systems, then error correction capability is provided, but system complexity and overhead information increase

Engineering Contradiction:
Improveerror correction capabilityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The invention divides the set of signal levels into multiple subsets, where each subset is assigned to a different code. For example, in a 4-PAM system with signal levels {-3, -1, 1, 3}, the levels are partitioned into two subsets: S0 = {-3, 3} and S1 = {-1, 1}. Each subset is protected by a separate error correction code, allowing differential protection strategies that reduce overall system complexity while maintaining error correction capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different error correction codes with varying strengths are applied to different subsets based on their specific error susceptibility. Subsets with higher error rates receive stronger protection, while subsets with lower error rates receive weaker protection. This localized approach optimizes the balance between error correction capability and system complexity by avoiding uniform over-protection across all signal levels.

Inventive Principle:
Principle #3Local quality

2Reliability

If redundant information is increased to reduce error rates, then reliability improves, but overhead information increases

Engineering Contradiction:
Improveerror correction capabilityVSAvoidoverhead information
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The invention segments the data into multiple subsets, each protected by appropriate error correction coding. This segmentation allows the system to apply redundancy only where necessary, rather than uniformly across all data. For instance, subsets with larger signal margins require less redundancy, while subsets with smaller margins receive enhanced protection, optimizing the redundancy-to-error-rate ratio.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention changes the parameter of code strength applied to different subsets. By varying the code rate and redundancy level according to the specific subset characteristics (such as signal margin), the system achieves effective error correction with minimized total overhead. Stronger codes are applied only to subsets that benefit most from them.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8239728B1Set partitioning and multilevel coding
Publication Date: 2012.08.07 SK HYNIX MEMORY SOLUTIONS AMERICA INC
  • US8239728B1 patent drawing
  • US8239728B1 patent drawing
  • US8239728B1 patent drawing

AI summary

A signal is encoded by receiving input data. A first portion of the input data is encoded to obtain a first set of encoded data. At least some part of the input data is processed to determine which one of a plurality of subsets the input data corresponds to. In the event the input data corresponds to a first subset having a greater signal margin (SM) than a second subset, the first set of encoded data and a second portion of the input data are output. In the event the input data corresponds to the second subset, the second portion of the input data is encoded to obtain a second set of encoded data and the first set of encoded data and the second set of encoded data are output.