DRAM-Less Garbage Collection Using Segmented Volatile Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing storage systems face challenges in efficiently performing garbage collection without Dynamic Random Access Memory (DRAM), leading to potential data modification issues during the process due to large memory block sizes exceeding volatile memory capacity.
Innovation Solution
The system partitions source data into multiple portions and temporarily stores them in volatile memory to perform garbage collection, pausing data change operations while allowing passive operations like read and error handling to continue, ensuring data integrity during the process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If memory block size is increased to improve storage capacity, then storage density is improved, but garbage collection becomes problematic when block size exceeds volatile memory capacity
Solution Approach 1:
The source data is divided into multiple portions (first portion and second portion) that are separately loaded into volatile memory. This segmentation allows the system to process large memory blocks even when they exceed the capacity of volatile memory, enabling garbage collection to proceed efficiently without requiring the entire block to fit in volatile memory simultaneously.
Solution Approach 2:
The system loads valid source data portions into volatile memory before performing the garbage collection operation. This preliminary action prepares the data in advance, allowing the garbage collection to proceed smoothly by having the source data readily available in volatile memory for copying to the destination block.
2Device complexity
If garbage collection is performed on large memory blocks without DRAM, then storage system cost is reduced, but data integrity may be compromised during the collection process
Solution Approach 1:
By dividing the source data into multiple portions and processing them separately, the system maintains data integrity even when the total block size exceeds volatile memory capacity. Each portion is loaded, processed, and copied completely before moving to the next portion, ensuring that no data is lost or corrupted during the garbage collection operation.
Solution Approach 2:
Volatile memory serves as an intermediary between the source and destination memory blocks. The source data portions are loaded into volatile memory, which acts as a temporary holding area, and then copied to the destination block. This intermediary approach ensures data integrity by providing a controlled transfer mechanism that prevents data corruption.
3Productivity
If volatile memory is used to temporarily store source data portions, then processing bandwidth is improved, but volatile memory capacity must be sufficient to hold at least two portions of source data
Solution Approach 1:
The system loads only the necessary portions of source data (specifically, at least two portions) into volatile memory at any given time, rather than loading the entire source block. This partial action approach optimizes the use of volatile memory capacity while still enabling efficient garbage collection processing, as the system only needs enough volatile memory to hold the portions being processed simultaneously.
Data Source
AI summary
A system and related method, including system memory with a source memory block and a destination memory block each of a memory block size, a first volatile memory and a second volatile memory, each of a volatile memory size. The system includes processing circuitry to receive a garbage collection request associated with the destination memory block. The processing circuitry then determines whether the memory block size is greater than the volatile memory size and pauses data change operations but allows for passive operations to continue. While data change operations are paused the processing circuitry loads a first portion of data of the source memory block to the first volatile memory and a second portion of the data to the second volatile memory. The processing circuitry writes each portion of data from the volatile memory to the destination memory block to complete garbage collection and unpauses the data change operations.


