Memory Sub-System CRC Generation for Data Modification Error Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional memory sub-systems cannot effectively detect errors introduced during data modification processes like encryption, compression, or metadata appending, as they lack the necessary error-checking data to validate the integrity of modified data.
Innovation Solution
The memory sub-system generates error-checking data at each modification step (e.g., encryption, compression, decryption) and uses incremental error-checking data to ensure data integrity by comparing original and modified CRC codes, allowing for error detection and corrective actions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the memory sub-system stores only the original CRC code received from the host, then the host can validate retrieved data, but the memory sub-system cannot detect errors introduced during data modification processes
Solution Approach 1:
The patent segments the CRC validation process into two distinct parts: (1) storing the original CRC code received from the host for host-side validation of retrieved data, and (2) generating a new CRC code from the modified data for memory sub-system error detection. This segmentation allows both validation purposes to be fulfilled simultaneously without conflict.
Solution Approach 2:
The patent changes the parameter being validated by generating a new CRC code from the modified data rather than using the original CRC code. This parameter change enables the memory sub-system to detect errors in the modified data while the host retains the original CRC code for its validation purposes.
2Loss of information
If the memory sub-system generates a new CRC code from modified data, then error detection during modification is enabled, but the host cannot validate whether the retrieved data matches the original data
Solution Approach 1:
The patent segments the CRC codes into two distinct functions: the original CRC code is preserved for host-side data validation, while a new CRC code is generated for memory sub-system error detection during modification. This segmentation resolves the conflict between these two opposing needs.
Solution Approach 2:
The patent introduces a new CRC code as an intermediary element that enables error detection during modification without interfering with the host's ability to use the original CRC code for validation. The new CRC code acts as a mediator that provides error detection capability while preserving the original validation mechanism.
3Reliability
If the memory sub-system stores both original and new CRC codes, then both error detection and data validation are enabled, but storage space and processing complexity increase
Solution Approach 1:
The patent extracts the error detection function from the original CRC code by generating a separate new CRC code. This extraction allows the original CRC code to remain unchanged for validation purposes while the new CRC code handles error detection, simplifying the overall management compared to trying to make the original CRC code serve dual purposes.
Solution Approach 2:
The patent creates a copy of the CRC validation mechanism by generating a new CRC code from the modified data. This copy enables error detection during modification while the original CRC code continues to serve validation purposes, avoiding the need to modify the original validation process.
Data Source
AI summary
A request to store a first data is received. The first data and a first error-checking data are received. The first error-checking data can be based on a cyclic redundancy check (CRC) operation of the first data. A second data is generated by modifying the first data. A second error-checking data of the second data is generated by using the first error-checking data and a difference between the first data and the second data.


