Nonvolatile Memory ECC Decoding with Hard-Soft Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory systems face challenges in effectively decoding error correction codes, particularly in scenarios where hard decision decoding fails, as they lack a robust mechanism to transition seamlessly from hard decision to soft decision decoding and back, leading to incomplete error correction.
Innovation Solution
A memory system architecture that incorporates a nonvolatile memory and a memory controller with an encoding/decoding unit capable of executing hard decision decoding of a first component code, followed by soft decision decoding of a second component code, using index information and log likelihood ratios (LLRs) to improve decoding accuracy and error correction capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If hard decision decoding is used for error correction, then decoding speed is improved, but decoding accuracy deteriorates when errors are severe
Solution Approach 1:
The system dynamically switches between hard decision decoding and soft decision decoding based on the decoding result. When hard decision decoding succeeds, the system uses the faster hard decision method. When it fails, the system transitions to soft decision decoding for improved accuracy, creating a dynamic adaptive decoding process that optimizes both speed and reliability.
Solution Approach 2:
The system implements a feedback mechanism where the result of hard decision decoding is evaluated, and based on this feedback, the system determines whether to proceed with soft decision decoding. This feedback loop ensures that soft decision decoding is only invoked when necessary, maintaining speed while improving accuracy when errors are detected.
2Reliability
If soft decision decoding is always used, then decoding accuracy is improved, but decoding speed deteriorates
Solution Approach 1:
Instead of always applying soft decision decoding, the system applies it partially - only when hard decision decoding fails. This partial action approach maintains high decoding accuracy for difficult cases while avoiding the speed penalty of soft decision decoding for all cases, achieving an optimal balance between accuracy and speed.
Solution Approach 2:
The decoding process is segmented into two stages: first hard decision decoding is attempted, and only if it fails does the system proceed to soft decision decoding. This segmentation allows the system to use the faster method for most cases while reserving the slower but more accurate method for difficult cases.
3Reliability
If multi-dimensional error correction code is used, then error correction capability is improved, but device complexity increases
Solution Approach 1:
The multi-dimensional error correction code is decoded by segmenting the process into component codes (first component code and second component code). Each component code is decoded separately using appropriate methods, which simplifies the overall decoding complexity while maintaining the error correction capability of the multi-dimensional code structure.
Solution Approach 2:
The system changes the decoding parameter dynamically by selecting different decoding methods (hard decision vs. soft decision) based on the decoding result. This parameter change allows the system to handle multi-dimensional error correction codes effectively without requiring complex fixed decoding mechanisms for all cases.
Data Source
AI summary
A memory system in an embodiment includes a nonvolatile memory and a memory controller. The memory stores a multi-dimensional error correction code including at least one symbol that is capable of being protected by at least a first and a second component code. The controller reads the error correction code from the memory, executes hard decision decoding of the first component code with respect to the read error correction code and outputs a first decoding result and index information for calculating likelihood of the first decoding result, executes, when the hard decision decoding fails, soft decision decoding of the second component code by using the first decoding result and the index information and outputs a decoding result as a hard bit, and, executes, when the soft decision decoding fails, the hard decision decoding with respect to the result of the soft decision decoding output.


