Flash Memory Error Correction for Atomicity and Bit Inversion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory systems face challenges in ensuring reliable long-term data storage and atomicity of transactions due to limitations in error correction mechanisms, particularly in handling bit inversions and managing metadata, which existing hardware solutions are not adaptable to changing requirements and do not effectively correct errors across all memory words.
Innovation Solution
Implementing a software-based error correction method using a Hamming code that divides each memory word into a logical word and an error-correcting code, with a parity bit, allowing for efficient detection of bit inversions and atomicity management, thereby ensuring reliable storage and correction of errors in flash memory systems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If error correction mechanisms are implemented in flash memory, then reliability of data storage is improved, but device complexity increases
Solution Approach 1:
The patent divides each physical word into a logical word (data or metadata) and a separate error-correcting code portion. This segmentation allows the error correction functionality to be integrated without requiring complete redesign of the memory structure, thereby improving reliability while controlling complexity growth.
Solution Approach 2:
The error correction mechanism is designed to handle both data words and metadata words uniformly using the same Hamming code structure. This universal approach covers all memory content (data and atomicity metadata) with a single error correction system, improving overall reliability without proportionally increasing complexity for each separate function.
2Measurement precision
If Hamming code is used for error correction in each physical word, then detection and correction of bit inversions is improved, but manufacturing precision requirements increase
Solution Approach 1:
The Hamming code implementation uses self-service encoding and decoding tables stored in the memory system itself. The encoding table converts logical words to physical words with embedded error correction bits, and the decoding table automatically detects and corrects bit inversions during read operations. This self-contained approach improves detection precision while avoiding external complex correction hardware.
3Reliability
If error correction codes are generated for each logical word, then reliability of metadata and data is improved, but productivity decreases due to additional processing
Solution Approach 1:
The error correction encoding is performed in advance during the write operation, converting each logical word into a physical word with embedded Hamming code bits before storage. This preliminary encoding ensures that when data is read, the error correction decoding can be performed quickly using pre-stored decoding tables, thereby improving reliability while minimizing the impact on read productivity.
4Adaptability or versatility
If atomicity metadata is included in error correction coverage, then atomicity management is improved, but device complexity increases
Solution Approach 1:
The error correction mechanism is designed to handle both data words and metadata words uniformly using the same Hamming code structure. This universal approach covers all memory content (data and atomicity metadata) with a single error correction system, improving atomicity management capability without requiring separate complex correction mechanisms for different data types.
Data Source
AI summary
A method includes storing data and metadata related to the data in logical words in a non-volatile memory. For each logical word stored in the non-volatile memory, a corresponding error-correction code is generated. Each physical word stored contains a logical word and the corresponding error-correction code. The metadata may contain atomicity information. The non-volatile memory may be a flash memory. Each physical word may contain a parity bit based on the logical word and the corresponding error-correction code stored in the physical word. The logical words may be encoded into physical words including the corresponding error correction code using an encoding table. The data and the metadata may be split into logical words.

