Memory Controller Parity Segmentation for NAND Flash Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory systems face inefficiencies when writing data of less than a fixed ECC unit size to NAND flash memory, as they often require padding with zeros to reach the ECC unit size, leading to unnecessary writing and reduced storage efficiency.
Innovation Solution
A memory controller that generates parity for each partial data block of less than the fixed ECC unit size and stores it subsequent to the corresponding data, allowing for efficient data protection and reduced unnecessary writing by treating the last generated parity as redundant for the entire data set.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is padded with zeros to reach the fixed ECC unit size, then data protection through parity generation is ensured, but storage efficiency deteriorates due to unnecessary writing
Solution Approach 1:
The patent segments the fixed ECC unit data into multiple variable-length partial data blocks. Instead of treating the entire fixed-size block as a single unit requiring padding, the data is divided into smaller segments (e.g., first partial data, second partial data) that can be independently processed. This allows parity to be generated only for the actual data portions without requiring zero-padding to reach the fixed ECC unit size, thereby eliminating unnecessary storage operations while maintaining data protection.
2Device complexity
If parity is generated only for complete ECC unit data, then hardware and process complexity is reduced, but data protection capability deteriorates for partial data blocks
Solution Approach 1:
The patent divides the fixed ECC unit data into multiple variable-length partial data blocks and generates separate parity for each segment. This segmentation approach maintains relatively simple hardware by processing smaller, manageable units rather than requiring complex dynamic allocation for variable-sized data, while simultaneously improving data protection capability by ensuring that each partial data block has its own dedicated parity for error correction.
Solution Approach 2:
The patent applies local quality by generating parity specifically tailored to each partial data block's actual size and characteristics rather than applying a uniform parity generation approach to the entire fixed ECC unit. This allows the system to adapt the error protection to the specific needs of each data segment, improving overall data protection capability while maintaining hardware simplicity through localized processing.
3Productivity
If the ECC unit data size is kept constant, then processing efficiency is improved, but adaptability deteriorates when handling variable-sized data blocks
Solution Approach 1:
The patent maintains the constant ECC unit data size for processing efficiency while internally segmenting it into multiple variable-length partial data blocks. This allows the system to process data in efficient fixed-size units (maintaining productivity) while simultaneously adapting to variable-sized actual data through the segmentation mechanism (improving adaptability). The fixed ECC unit structure provides processing efficiency, while the variable partial data blocks provide adaptability to different data sizes.
Data Source
AI summary
According to one embodiment, a memory controller that controls non-volatile memory including a data area and a parity area in which parity for data of a fixed length to be stored in the data area is stored, the memory controller including a coding unit configured to generate parity for each of two or more partial data, each of which has a length less than the fixed length, and the memory controller writing one of the parity generated by the coding unit onto the parity area as first parity, writing the partial data and second parity that is the parity, other than the first parity, generated by the coding unit, onto the data area as the data of the fixed length, and writing the second parity onto a position subsequent to the partial data corresponding to the second parity.


