NAND Flash Memory Controller Parity for Garbage Collection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In NAND flash memory systems, garbage collection requires a storage area as large as the target blocks for effective data copying, which can lead to insufficient free space for user data, as existing error correction methods do not efficiently manage memory allocation during this process.
Innovation Solution
The implementation of a memory system with a controller that generates both a first parity for error correction across super blocks and a second parity for error correction within media blocks, allowing for efficient data erasure and movement during garbage collection without requiring a large contiguous free area, thereby optimizing memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If garbage collection copies valid data from multiple blocks to free blocks, then data consolidation is achieved, but a large contiguous free area is required which reduces available storage for user data
Solution Approach 1:
The patent divides the garbage collection process into multiple stages: first identifying valid data in target blocks, then copying data in units of pages or erasure units rather than requiring the entire free area to be available at once. This segmentation allows garbage collection to proceed with smaller incremental allocations from the free area, resolving the contradiction between consolidation efficiency and available storage.
Solution Approach 2:
The patent performs preliminary identification of valid data and source block selection before actual data copying begins. By pre-planning the garbage collection operations and allocating only the necessary free blocks in advance rather than requiring a large contiguous free area, the system enables efficient garbage collection while preserving maximum user storage capacity.
2Ease of operation
If a large free storage area is allocated for garbage collection, then data copying can be performed, but the storage area becomes unavailable for user data
Solution Approach 1:
The patent implements partial action by performing garbage collection on a per-block or per-page basis rather than requiring the entire free storage area to be allocated at once. This allows the system to use only the portion of free space needed for current garbage collection operations, keeping the remainder available for user data and resolving the contradiction between operational ease and storage capacity.
3Reliability
If error correction parity is generated across super blocks, then error correction capability is improved, but memory allocation complexity increases during garbage collection
Solution Approach 1:
The patent segments the error correction structure into two levels: first generating parity within each block (first parity), then generating additional parity across super blocks (second parity). This hierarchical segmentation allows error correction to function at multiple granularities independently, improving reliability without requiring complex unified allocation management across the entire super block structure.
Solution Approach 2:
The patent performs preliminary parity generation and validation before garbage collection operations begin. By pre-calculating and storing the first and second parity information, the system simplifies the actual garbage collection process, as the parity structures are already in place and do not require complex real-time allocation management during data copying operations.
Data Source
AI summary
A memory system has a non-volatile memory having a plurality of memory cells, and a controller configured to control writing, reading, and erasing of data into and from the non-volatile memory. The non-volatile memory includes a page for which the data is written and read to and from at least a part of the plurality of memory cells, and a block having a plurality of the pages. The controller manages a first block group including a plurality of the blocks and a second block group including a plurality of the first block groups, and generates a first parity for correcting an error occurring in the second block group by data in each of the plurality of first block groups in the second block group, and a second parity for correcting an error occurring in the first block group by data in the first block group.


