NAND Flash Storage Controller Block Segmentation for GC Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
NAND flash memory systems face performance deterioration and reduced capacity efficiency due to the need for garbage collection (GC) when handling diverse workloads, as they can only perform sequential writes, leading to the creation of 'missing blocks' and reduced physical capacity utilization.
Innovation Solution
A storage system that allocates exclusive physical blocks to each logical volume based on workload characteristics, using a namespace identification number to manage data storage, thereby reducing GC frequency and improving I/O access performance and endurance by preventing mixed workloads within the same block.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If garbage collection is performed concurrently with normal I/O access to improve capacity efficiency, then data capacity efficiency is improved, but I/O performance deteriorates
Solution Approach 1:
The storage system segments physical blocks into multiple types (first type for new data, second type for updates, third type for GC) and assigns different workloads to different block types. This segmentation allows GC operations to be isolated from normal I/O access paths, preventing GC from deteriorating I/O performance while maintaining capacity efficiency through dedicated update blocks.
2Quantity of substance
If sequential write is used in NAND flash to achieve high degree of integration and large capacity, then storage capacity is improved, but random write capability is lost
Solution Approach 1:
The system segments physical blocks into first type blocks for new data (enabling sequential write for high capacity) and second type blocks for update data (enabling random write through update operations). This segmentation allows the system to maintain large storage capacity through sequential write optimization while providing random write capability through dedicated update blocks.
Solution Approach 2:
The system introduces second type blocks as intermediary storage for update data. When update writes occur, data is written to second type blocks rather than overwriting first type blocks directly. This intermediary mechanism enables random write operations while preserving the sequential write optimization for capacity efficiency in first type blocks.
3Quantity of substance
If multiple workloads are stored in the same block to improve capacity utilization, then physical capacity utilization is improved, but garbage collection frequency increases
Solution Approach 1:
The system segments blocks into different types with different purposes: first type blocks for new data, second type blocks for updates, and third type blocks for GC. This segmentation allows the system to maintain high capacity utilization by using all block types while reducing GC frequency through the isolation of update operations in second type blocks, preventing mixed workloads from triggering frequent GC.
Data Source
AI summary
A storage system includes a controller and a nonvolatile memory drive, in which the controller transmits a write request that designates a volume identifier of a volume to be provided to a host, to the nonvolatile memory drive; the nonvolatile memory drive exclusively allocates a free block selected from a plurality of blocks to the volume identifier; write data of the write request is written to the free block; when the write data is update write data, an area that stores data to be updated is changed to an invalid data area; and after valid data of a block including the invalid data area is migrated to another block, all data of the block including the invalid data area is erased.


