Dynamic Error Correction Code Rate Management for Nonvolatile Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Nonvolatile memory devices face challenges in error correction code rate management, particularly in iterative decoding, where different code rates result in varying decoding times and on-the-fly decoding failures, affecting throughput performance and longevity.

Innovation Solution

An apparatus with a circuit configured to read codewords from a nonvolatile memory block based on program/erase count, count iterations, and adjust the error correction code rate when iterations exceed a threshold, implementing a suite of error correction code rate management policies to meet throughput and over provisioning targets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a lower code rate is used to provide stronger error protection, then reliability is improved, but throughput performance deteriorates due to increased parity overhead and longer decoding times

Engineering Contradiction:
Improveerror protectionVSAvoidthroughput performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic code rate adjustment by monitoring decoding iteration counts and adapting the code rate based on observed decoding performance. The system transitions from static code rate selection to dynamic adaptation, adjusting the code rate in real-time based on actual decoding requirements and performance metrics.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system uses feedback from decoding iteration counts to adjust code rate selection. By monitoring the number of iterations required to decode codewords successfully, the system feeds this information back into the code rate management policy, enabling data-driven decisions about optimal code rate selection for different memory blocks and conditions.

Inventive Principle:
Principle #23Feedback

2Productivity

If a higher code rate is used to increase throughput, then productivity is improved, but reliability deteriorates due to weaker error protection

Engineering Contradiction:
Improvethroughput performanceVSAvoiderror protection
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically adjusts code rates based on actual decoding needs rather than using a fixed high code rate. By monitoring decoding success and iteration counts, the system can selectively use higher code rates when they are sufficient, thereby maintaining throughput while ensuring adequate error protection only when necessary.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the code rate parameter adaptively based on observed decoding performance. Instead of maintaining a fixed code rate, the system modifies the code rate parameter in response to measured decoding iteration counts and success rates, optimizing the balance between throughput and reliability for each specific condition.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If iterative decoding is used to improve error correction capability, then reliability is improved, but decoding time increases causing productivity to deteriorate

Engineering Contradiction:
Improveerror correction capabilityVSAvoiddecoding time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system applies partial iterative decoding by limiting the number of decoding attempts and using code rate adjustment to reduce the need for extensive iterative decoding. By selecting appropriate code rates based on pre-programming error rates, the system achieves sufficient error correction with fewer decoding iterations, thereby reducing time loss while maintaining reliability.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system performs preliminary code rate selection based on expected error rates before decoding occurs. By analyzing program/erase counts and estimating error rates in advance, the system pre-determines the optimal code rate, preventing the need for time-consuming trial-and-error iterative decoding and reducing overall decoding time while maintaining error correction capability.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If code rate adjustment policy is implemented to optimize performance, then adaptability is improved, but device complexity increases due to multiple code rates and decoding management

Engineering Contradiction:
Improvecode rate adjustmentVSAvoiddecoding management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system uses simple feedback mechanisms based on decoding iteration counts to drive code rate adjustments. Rather than implementing complex adaptive algorithms, the system monitors a straightforward metric (number of iterations) and uses this feedback to select from predefined code rate options, managing complexity while maintaining adaptability.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent manages complexity by changing discrete code rate parameters based on observed performance rather than continuously adjusting multiple parameters. The system selects from aĉœ‰é™ set of predefined code rates based on decoding iteration metrics, simplifying the adaptation process while maintaining versatility in responding to different error conditions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8996961B2Error correction code rate management for nonvolatile memory
Publication Date: 2015.03.31 SEAGATE TECH LLC
  • US8996961B2 patent drawing
  • US8996961B2 patent drawing
  • US8996961B2 patent drawing

AI summary

An apparatus having an interface and a circuit is shown. The interface is coupled to a memory that is nonvolatile. The circuit is configured to (i) read a plurality of codewords from a block in the memory based on a program/erase count associated with the block, (ii) count a number of iterations used to decode the codewords and (iii) decrease a code rate of an error correction coding used to program the block in response to the number of iterations exceeding a threshold.