Flash Storage ECC Layout With Embedded LBA-Related CRC
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing data storage systems in flash memories are inefficient as they occupy significant storage space due to the inclusion of non-data portions like logical block addresses, cyclic redundancy check codes, and error checking/correcting codes, which increases the overall data storage requirements.
Innovation Solution
A data storage system and method that combines a data byte with a cyclic redundancy check code to form a data sector, which is then encoded with an error checking and correcting code to generate storage data, thereby eliminating the need to store the logical block address, reducing storage space and error rates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If non-data portions (LBA, CRC code, error checking and correcting code) are stored separately from data bytes in flash memory, then error checking and correcting capabilities are maintained, but storage space is significantly occupied by these overhead portions
Solution Approach 1:
The patent merges the LBA and CRC code into the error checking and correcting code structure. Specifically, the LBA is placed in the most significant bits of the ECC field, and the CRC code is placed in the least significant bits, allowing all three elements (data byte, LBA, CRC) to be stored together in a single 16-bit field without requiring separate storage allocations for each component.
Solution Approach 2:
The error checking and correcting code field is designed to serve multiple functions simultaneously: it provides error detection and correction for the data byte, stores the LBA for address identification, and includes the CRC code for data integrity verification. This multi-functional design eliminates the need for separate dedicated fields for each purpose.
2Ease of operation
If LBA is stored separately with each data byte in flash memory, then data addressing and retrieval are simplified, but the storage efficiency decreases due to repeated LBA overhead
Solution Approach 1:
The LBA is merged into the ECC field structure rather than being stored separately. The 8-bit LBA is placed in the most significant bits of the 16-bit ECC field, allowing address information to be carried along with the data byte without requiring additional separate address storage.
Solution Approach 2:
The LBA is pre-integrated into the storage structure at the time of data writing. By embedding the LBA within the ECC field before storage, the system eliminates the need for separate address management and retrieval operations, as the address information is already attached to the data.
3Reliability
If CRC code and error checking and correcting code are stored as separate portions, then data integrity verification is robust, but the overall data structure complexity and storage overhead increase
Solution Approach 1:
The CRC code and ECC are merged into a single integrated structure where the CRC occupies the least significant bits of the ECC field. This merging maintains the distinct functional roles of CRC (integrity verification) and ECC (error correction) while presenting a unified, simplified storage format.
Solution Approach 2:
The CRC code is nested within the ECC field structure, with the CRC occupying the lower-order bits and the ECC occupying the higher-order bits. This nested arrangement allows both codes to coexist in a hierarchical manner, maintaining their individual verification capabilities while reducing overall structural complexity.
Data Source
AI summary
A data storage system includes a processing circuit, a calculating circuit and an encoding circuit. The processing circuit receives a data byte from a host. The calculating circuit generates a cyclic redundancy check code according to an LBA, and combines the cyclic redundancy check code and the data byte into a data sector so that the data sector includes LBA-related information. The encoding circuit encodes the data sector to generate an error checking and correcting code, and combines the data sector and the error checking and correcting code into a storage data, so that the storage data includes the LBA-related information without including the LBA. Via the data sector and the storage data, the data storage system performs cyclic redundancy checking as well as error checking and correcting without storing the LBA for reducing 1-bit errors; and the LBA-related information does not include part or all of the LBA.


