Persistent Memory Encoding to Mitigate Read Disturb
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The frequent read operations in non-volatile memory lead to 'read disturb,' causing data loss due to coupling effects, which existing strong error-correction codes exacerbate by increasing read amplification and latency, thereby decreasing storage system efficiency and performance.
Innovation Solution
A system that employs three levels of encoding: short error-correcting code (ECC) for data chunks, erasure code (EC) for groups of chunks, and strong ECC for EC parity bits, to mitigate read disturb by providing reliable and stable data protection without directly protecting the entire codeword, thus reducing the need for complex decoding and minimizing data loss.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If strong error-correction code (ECC) is used to protect against read disturb, then data reliability is improved, but read amplification increases and decoding complexity increases
Solution Approach 1:
The patent segments the error protection into two distinct layers: (1) a first ECC applied to individual data chunks before EC encoding, and (2) a second ECC applied only to the EC parity bits. This segmentation allows each ECC to be optimized for its specific function, reducing overall read amplification compared to using a single strong ECC on the entire codeword.
Solution Approach 2:
The patent extracts the critical protection target from the entire codeword and focuses the second ECC solely on the EC parity bits. By taking out only the essential parity information for secondary protection, the system reduces the amount of data requiring strong error correction, thereby reducing read amplification and decoding complexity.
2Reliability
If strong error-correction code (ECC) is used to protect against read disturb, then data reliability is improved, but decoding complexity increases
Solution Approach 1:
The patent divides the decoding process into two independent stages: first ECC decoding of individual chunks, then EC decoding of the grouped chunks with EC parity. This segmentation reduces decoding complexity by breaking down a single complex strong ECC decoding operation into multiple simpler decoding steps that can be performed more efficiently.
Solution Approach 2:
The patent extracts the EC parity bits as a separate component and applies a second ECC only to these extracted parity bits rather than to the entire codeword. This extraction reduces decoding complexity by limiting the scope of the second ECC operation to only the essential parity information.
3Reliability
If erasure code (EC) encoding is applied to groups of ECC-encoded chunks, then read disturb impact is reduced, but write amplification increases
Solution Approach 1:
The patent applies different error correction qualities to different parts of the data structure: a first ECC for individual chunks and a second ECC specifically for EC parity bits. This local differentiation optimizes the balance between read disturb mitigation and write amplification by providing targeted protection where most needed while minimizing redundant encoding.
Data Source
AI summary
One embodiment facilitates data placement in a storage device. During operation, the system receives chunks of data to be written to a non-volatile memory. The system encodes a first chunk based on a first error-correcting code (ECC) to obtain a first ECC-encoded codeword. The system encodes a first group of ECC-encoded codewords which include the first ECC-encoded codeword, based on an erasure code (EC) to obtain a first EC-encoded group, wherein a respective EC-encoded group includes EC parity bits. The system encodes the EC parity bits of the obtained first EC-encoded group based on a second error-correcting code (ECC) to obtain ECC-encoded EC parity bits. The system writes the first EC-encoded group and the ECC-encoded EC parity bits to the non-volatile memory.


