Host-Initiated Garbage Collection in Non-Volatile Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Host-initiated garbage collection in storage systems often conflicts with ongoing access operations, leading to increased latency as the process can only be performed when the host is idle, and may not complete within short idle periods, affecting storage device efficiency.
Innovation Solution
Implementing a storage device controller that manages host-initiated garbage collection by copying data from active blocks to an input block during idle periods, allowing for partial data transfer and remapping within a specified time frame, enabling garbage collection to occur even in short idle times without interrupting access operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If garbage collection is carried out in the storage device when the host transmits access commands, then the garbage collection process can be performed, but the access command cannot be carried out immediately and latency increases
Solution Approach 1:
The system dynamically adjusts garbage collection operation based on host activity state. When the host is idle, garbage collection is executed; when the host is busy transmitting access commands, garbage collection is suspended. This dynamic adaptation resolves the contradiction by making garbage collection throughput dependent on host availability while preventing access latency increases during busy periods.
2Reliability
If garbage collection is performed in unit of block, then all valid data in target blocks are collected, but it takes several hundred milliseconds to fill the entire block and no access from the host can be performed during this period
Solution Approach 1:
The garbage collection process is segmented into multiple smaller operations rather than treating each block as a single unit. The controller identifies and collects valid data from target blocks in smaller chunks, allowing the garbage collection process to be interrupted and resumed. This segmentation enables garbage collection to complete within shorter host idle periods while still achieving complete data collection across all target blocks.
Solution Approach 2:
Instead of requiring complete block filling before resuming host access, the system performs partial garbage collection actions during each idle period. The controller collects valid data and updates mapping information for the portion of data that can be migrated within the available idle time, then resumes host access. This partial action approach allows garbage collection to make progress during short idle periods without requiring the host to wait for complete block migration.
3Ease of operation
If the host initiates garbage collection during idle state, then conflict between garbage collection and access operation is avoided, but if the idle period is less than several hundred milliseconds, the garbage collection may not be performed at all
Solution Approach 1:
The system dynamically responds to varying lengths of host idle periods by adjusting the amount of garbage collection work performed. During longer idle periods, more extensive garbage collection is executed; during shorter idle periods, smaller amounts of data are collected. This dynamic adjustment ensures that garbage collection is performed during any idle period regardless of length, while still avoiding conflicts with host access operations.
Solution Approach 2:
The system performs partial garbage collection during short idle periods rather than waiting for longer idle periods. The controller identifies a subset of valid data that can be collected within the available idle time, performs the collection for that subset, updates the mapping information, and then resumes host access. This partial action ensures that garbage collection productivity is maintained even during short idle periods.
Data Source
AI summary
A storage device includes a non-volatile semiconductor storage device including a plurality of physical blocks, and a controller. The controller maintains a mapping of logical addresses to locations within the physical blocks, receives, from a host, a command to start host initiated garbage collection where the controller copies data from an active block into an input block having free pages that is not written after erase operation, receives, from the host, a command to receive data to be written from the host, writes the received data to the same input block, and receives, from a host, another command to start host initiated garbage collection where the controller copies data from an active block into the same input block.


