Flash Memory Garbage Collection Management via Dynamic Spare Area
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory systems face instability and performance deterioration due to frequent garbage collection (GC) operations, which disrupt the response time to host commands and write performance, as they frequently start and end GC operations based on a fixed target spare block number.
Innovation Solution
The solution involves determining a start timing for GC operations based on a GC starting threshold higher than the target spare block number and adjusting the GC-to-host write ratio dynamically based on the current number of spare blocks and valid page percentages, using a controller to calculate an overall spare area and determine an adjustment factor to perform GC operations more subtly.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If GC operation is started frequently to maintain spare block number, then storage availability is improved, but response time stability deteriorates
Solution Approach 1:
The patent implements dynamic adjustment of GC operations by introducing a GC-to-host write ratio that varies based on current spare block count. When spare blocks are abundant, GC ratio is reduced; when spare blocks are low, GC ratio is increased. This dynamic approach prevents frequent GC start/stop cycles while maintaining adequate spare blocks, thereby stabilizing response time.
Solution Approach 2:
The patent changes the control parameter from a fixed threshold-based GC trigger to a continuous GC-to-host write ratio parameter. This parameter is adjusted based on the current spare block count, allowing smooth transitions in GC activity level rather than abrupt start/stop decisions, which stabilizes system performance.
2Quantity of substance
If GC operation is performed to free storage space, then storage capacity is improved, but write performance deteriorates
Solution Approach 1:
The patent applies partial GC action by controlling the GC-to-host write ratio to be less than 100% when spare blocks are sufficient. This means GC operations are performed partially rather than fully, allowing host writes to proceed concurrently without complete GC interruption, thus maintaining write performance while still freeing storage space.
Solution Approach 2:
The GC intensity is dynamically adjusted based on current spare block count. When spare blocks are abundant, GC ratio is reduced to minimize impact on write performance. When spare blocks become scarce, GC ratio is increased to ensure storage capacity is maintained. This dynamic balancing resolves the contradiction between storage capacity and write performance.
3Productivity
If GC-to-host write ratio is adjusted based on single source block valid page percentage, then GC efficiency is improved, but response time stability deteriorates
Solution Approach 1:
The patent merges multiple source blocks into a single aggregated valid page percentage metric. Instead of reacting to valid page percentages of individual source blocks, the system calculates the combined valid page percentage across multiple source blocks. This smoothing effect prevents rapid fluctuations in GC-to-host write ratio adjustments, thereby stabilizing response time while maintaining GC efficiency.
Solution Approach 2:
The patent uses multiple source blocks as a cushion against rapid changes in valid page percentage. By aggregating data from multiple blocks before making GC ratio adjustments, the system prevents over-reaction to temporary fluctuations in any single block, providing a buffer that stabilizes response time.
Data Source
AI summary
A method of managing a garbage collection (GC) operation on a flash memory includes: calculating an overall spare area in a flash memory, which includes a spare area in a plurality of spare blocks in the flash memory and at least two of a spare area in one or more target blocks corresponding to writing of user data based on host write commands, a spare area in one or more destination blocks corresponding to writing of valid data based on the GC operation and a spare area in a source block corresponding to reading of valid data based on the GC operation; determining an adjustment factor according to the overall spare area; and performing the GC operation on the source block according to a GC-to-host base ratio and the adjustment factor.


