Dynamic ECC Selection for Compressed Data in Memory Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing error correction coding schemes in non-volatile memory devices are channel-dependent, requiring reallocation of redundancy based on changing communication channel conditions, which can be inefficient and inflexible.
Innovation Solution
A method of encoding and decoding data using a selected error correction code (ECC) from a plurality of ECCs, where the ECC is chosen based on the size of the input data, allowing for dynamic adaptation independent of channel conditions, and utilizing a base code and sub-codes to provide varying error correction strengths while optimizing memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a fixed error correction code is used in memory devices, then the device structure is simple and easy to implement, but the device cannot adapt to changing channel conditions and reliability requirements over time
Solution Approach 1:
The patent implements dynamic ECC selection by allowing the system to change the error correction code based on current channel conditions and reliability requirements. The memory device transitions from a static fixed-ECC architecture to a dynamic multi-ECC architecture where different ECC schemes can be selected and applied according to real-time needs, enabling adaptation to aging effects and varying operational conditions.
Solution Approach 2:
The system changes the parameters of the error correction code (such as code rate, redundancy level, and correction strength) based on monitored channel conditions and reliability metrics. By adjusting these parameters dynamically, the system optimizes the balance between error correction capability and storage efficiency without requiring a complete redesign of the memory architecture.
2Reliability
If stronger error correction codes are used to improve data reliability, then error detection and correction capability increases, but memory space requirements and overhead increase
Solution Approach 1:
The patent applies different error correction strengths to different data regions or different operational conditions. Instead of uniformly applying strong ECC across all data and all conditions, the system selectively applies appropriate ECC strength based on local requirements such as data importance, channel conditions, and reliability needs, thereby optimizing the trade-off between reliability and storage capacity.
Solution Approach 2:
The system applies error correction at appropriate levels rather than always using maximum strength. By monitoring channel conditions and applying only the necessary level of correction (partial action), the system avoids the excessive redundancy overhead that would result from always using the strongest possible ECC, thus maintaining efficiency while ensuring adequate reliability.
3Reliability
If redundancy allocation is dynamically adjusted based on channel conditions, then error correction effectiveness improves, but the complexity of monitoring and reallocation increases
Solution Approach 1:
The patent implements a feedback mechanism where the system continuously monitors channel conditions, error rates, and reliability metrics, then uses this information to dynamically adjust the error correction code selection and redundancy allocation. This closed-loop control enables the system to automatically adapt to changing conditions without requiring complex manual intervention or overly sophisticated reallocation algorithms.
Data Source
AI summary
Embodiments provide methods, apparatuses, and articles of manufacture that encode and decode data based on various error correction codes. In one embodiment, a method may include receiving input data, encoding the input data with an error correction code that is selected from a plurality of error correction codes based on the size of the input data, and writing the encoded input data to a memory device. The encoded data can be subsequently, retrieved and decoded when needed.


