Phased Garbage Collection with Metablock Buffer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In non-volatile memory systems, garbage collection operations often exceed the fixed time allocated for write operations, leading to timeout errors due to increasing block sizes and longer execution times, which can disrupt memory system performance and cause errors.
Innovation Solution
Implementing phased garbage collection by splitting the garbage collection operation into multiple phases that can be performed over multiple timeout periods, using a metablock with a buffer portion to store data during write operations and allowing the garbage collection to be completed across several write commands, thereby preventing timeout errors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If garbage collection operation is performed on large memory blocks, then storage capacity is reclaimed, but execution time exceeds the fixed timeout period allocated for write operations
Solution Approach 1:
The garbage collection operation is divided into multiple phases: a first phase that completes within the timeout period of a write command, and a second phase that completes the remaining garbage collection after the write command finishes. This segmentation allows the system to meet the fixed timeout requirement while still performing comprehensive garbage collection on large blocks.
Solution Approach 2:
The first phase of garbage collection is performed preliminarily during the write operation's timeout period, preparing the memory block partially before the write command completes. This preliminary action reduces the burden on subsequent operations and ensures timeout compliance.
2Quantity of substance
If memory block sizes are increased for higher capacity, then storage capacity is improved, but garbage collection execution time increases
Solution Approach 1:
Garbage collection on large-capacity blocks is segmented into multiple phases executed at different times. The first phase handles critical data movement within the write timeout, while the second phase completes the remaining consolidation after the write operation, enabling efficient handling of large blocks without exceeding time constraints.
Solution Approach 2:
The garbage collection is performed periodically across multiple write commands. Each write command triggers a phase of garbage collection, and the process continues across subsequent commands until completion, distributing the time-consuming operation over multiple periodic intervals rather than requiring one continuous operation.
3Reliability
If garbage collection is performed within a fixed timeout period, then write operation reliability is maintained, but garbage collection may be incomplete
Solution Approach 1:
The garbage collection process is segmented into a first phase that ensures write operation reliability by completing within the timeout period, and a second phase that continues the garbage collection after the write completes, ensuring full completion of the consolidation process without compromising write reliability.
Solution Approach 2:
The garbage collection action continues continuously across multiple phases and write commands. Rather than interrupting the process at the timeout boundary, the useful action of data consolidation continues in the second phase after the write command finishes, maintaining productivity while respecting timing constraints.
Data Source
AI summary
A system for phased garbage collection is described, including a memory configured to store a storage system firmware, a non-volatile memory cell array configured to maintain a metablock, the metablock comprising a logical group and a buffer portion, and a processor in communication with the memory and the non-volatile memory cell array, the processor being configured to execute the storage system firmware stored in the memory, the storage system firmware comprising program instructions for receiving a write command to write a memory write to the metablock, performing a first portion of a garbage collection operation, and storing the memory write in the buffer portion of the metablock.


