Variable-Length ECC in Memory Controllers for Critical Data
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current error checking and correcting (ECC) mechanisms in rewritable non-volatile memory systems provide uniform protection for all data, lacking a robust mechanism for significant data that could severely impact system operation if damaged, thus not adequately reducing the risk of system failure.
Innovation Solution
A method is introduced where the ECC circuit generates ECC codes of different lengths based on the type of data being written, with longer codes generated for significant data to enhance error detection and correction capabilities.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a unified ECC protection method is used for all data types, then the device complexity is reduced and ease of operation is improved, but the reliability of critical data is insufficient
Solution Approach 1:
The patent applies local quality by differentiating ECC protection levels based on data type. Critical data (e.g., file system structures, allocation tables) receives enhanced ECC protection with longer code lengths and higher correction capabilities, while non-critical data uses standard ECC protection. This selective approach improves reliability for important data without uniformly increasing system complexity.
Solution Approach 2:
The patent changes ECC parameters dynamically based on data classification. The system adjusts ECC code length, redundancy bits, and correction capability parameters according to the criticality of the data being stored. This allows the system to optimize reliability for critical data while maintaining efficiency for non-critical data, resolving the contradiction between reliability and complexity.
2Reliability
If longer ECC codes are generated for critical data, then the number of error bits detected and corrected increases, but the storage space required and processing time increase
Solution Approach 1:
The patent applies local quality by concentrating enhanced ECC protection only on critical data portions rather than applying uniform protection to all data. This ensures that error detection and correction capabilities are maximized where needed (file system structures, metadata) while maintaining standard processing speeds for non-critical data, thus resolving the contradiction between reliability and productivity.
Solution Approach 2:
The patent implements partial action by applying enhanced ECC protection to only the necessary critical portions of data rather than all data. This selective approach provides sufficient error protection for system-critical information while avoiding the overhead of extended ECC processing for routine data operations, thereby maintaining overall processing efficiency.
3Reliability
If differentiated ECC protection is implemented for different data types, then the reliability of critical data is improved, but the device complexity and control logic increase
Solution Approach 1:
The patent applies preliminary action by classifying data into critical and non-critical categories before the ECC encoding process. The memory controller identifies critical data types (file system structures, allocation tables, boot sectors) in advance and applies appropriate ECC protection levels accordingly. This pre-classification approach simplifies control logic compared to dynamic assessment during writing, as the classification rules are predetermined and straightforward.
Data Source
AI summary
A memory storage device, a memory controller thereof, and a method for programming data thereof are provided. The memory storage device having an error checking and correcting (ECC) circuit and a rewritable non-volatile memory chip is coupled to a host system. The method includes determining whether write data to be written into the rewritable non-volatile memory chip belongs to a specific type. The method also includes generating at least one first type ECC code with a first length by the ECC circuit according to the write data if the write data belongs to the specific type. The method further includes generating at least one second type ECC code with a second length by the ECC circuit according to the write data if the write data does not belong to the specific type. In which, the first length is longer than the second length.


