Sub-Block Flash Memory Garbage Collection by Valid Data Size
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing semiconductor memory devices face inefficiencies in managing sub-blocks, particularly in flash memory systems, leading to sub-optimal performance in data retention and management due to the lack of differentiation in sub-block characteristics.
Innovation Solution
A sub-block-based storage device and management method that includes a memory device with multiple memory blocks, each comprising sub-blocks of varying capacities, managed by a memory controller that optimizes data handling through selective garbage collection and allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If memory blocks are managed as single units without sub-block division, then management is simpler, but data management efficiency and performance are reduced
Solution Approach 1:
The patent divides memory blocks into multiple sub-blocks with different characteristics (e.g., different numbers of valid pages). This segmentation allows the memory controller to manage sub-blocks independently based on their specific states, improving data management efficiency by enabling targeted garbage collection and wear leveling operations on specific sub-blocks rather than entire memory blocks.
Solution Approach 2:
The patent implements dynamic sub-block management where sub-blocks can transition between different states (e.g., from valid to empty) and the memory controller can selectively manage sub-blocks based on their current characteristics. This dynamic approach allows flexible optimization of garbage collection and wear leveling operations, improving productivity while maintaining manageable complexity through state-based control.
2Productivity
If sub-blocks with different characteristics are not optimized, then management is easier, but the number of page copy and erase operations increases
Solution Approach 1:
The patent applies local quality by treating sub-blocks with different characteristics (e.g., different valid page counts) differently in management operations. The memory controller can identify sub-blocks that are candidates for garbage collection based on their specific characteristics and process them accordingly, reducing unnecessary page copy and erase operations on sub-blocks that don't require such operations.
Solution Approach 2:
The patent changes the management parameters from uniform block-level operations to sub-block-level operations with different characteristics. By tracking and managing sub-blocks based on their specific parameters (such as valid page count, erase count, etc.), the system can optimize garbage collection and wear leveling to minimize the number of page copy and erase operations required.
3Adaptability or versatility
If uniform sub-blocks are used throughout memory blocks, then management is simpler, but adaptability to different user patterns and performance optimization is reduced
Solution Approach 1:
The patent implements local quality by creating sub-blocks with different characteristics within memory blocks, allowing different regions to be optimized for different access patterns. This enables the memory system to adapt to varying user patterns (sequential access, random access, write-intensive, read-intensive) by managing sub-blocks according to their specific characteristics rather than applying uniform management across all blocks.
Data Source
AI summary
A sub-block-based storage device includes a memory device configured to include a plurality of memory blocks, a work memory storing instructions, and a memory controller communicatively coupled with the memory device and the work memory and configured to manage the plurality of memory blocks. Each block of the plurality of memory blocks includes a plurality of sub-blocks having different capacities. The memory controller is configured to execute the instructions to manage used sub-blocks which store valid data from among the plurality of sub-blocks, manage free sub-blocks which are empty from among the plurality of sub-blocks, select a garbage collection source block from the used sub-blocks, select candidate destination blocks by comparing a size of valid data stored in the garbage collection source block and each of sizes of the free sub-blocks, and select a garbage collection destination block from the candidate destination blocks.


