SLC-MLC Hybrid Memory Garbage Collection via Data Relocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Nonvolatile memory devices, such as flash memory, face inefficiencies in data management due to the inability to overwrite data in place, leading to increased computational costs and performance issues from invalid data, which necessitates effective garbage collection techniques.
Innovation Solution
A method is implemented in nonvolatile memory devices with both single-level cells (SLCs) and multi-level cells (MLCs) to determine if a free memory block can be created by copying data between SLC memory blocks, and if not, data is allocated from SLCs to MLCs to generate a free block, thereby optimizing memory performance by reducing access to slower MLC blocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If garbage collection is performed to erase invalid data, then memory locations are freed for new data, but computational cost and time increase due to the erase operation
Solution Approach 1:
The patent applies the copying principle by creating a copy of valid data from SLC memory blocks and transferring it to MLC memory blocks. This allows the SLC blocks to be erased and reused without actually erasing the original data, thereby avoiding the time-consuming erase operation while still freeing up memory locations for new data writes.
Solution Approach 2:
The patent implements preliminary action by proactively copying valid data from SLC blocks to MLC blocks before the SLC blocks need to be erased. This preparation step ensures that when garbage collection is needed, the data is already relocated, reducing the overall time required for memory management operations.
2Speed
If data is copied between SLC memory blocks to create free blocks, then memory performance improves, but data transfer operations increase
Solution Approach 1:
The patent applies local quality by treating SLC and MLC memory blocks differently based on their performance characteristics. SLC blocks are used for high-speed data storage and rapid writes, while MLC blocks serve as a backup for data relocation. This differentiation allows the system to optimize for speed when possible while accepting lower performance when data transfer operations are necessary.
Solution Approach 2:
The patent uses MLC memory blocks as an intermediary between the host system and SLC memory blocks. When data needs to be relocated during garbage collection, MLC blocks serve as the intermediate destination, allowing the system to maintain fast access to SLC blocks while still being able to free them up when needed.
3Ease of operation
If invalid data is erased to free memory locations, then new data can be written, but the inability to overwrite in place increases management complexity
Solution Approach 1:
The patent applies copying by creating a copy of valid data from SLC blocks and placing it in MLC blocks. This copy operation allows the original SLC blocks to be erased and reused without actually erasing the data, thereby simplifying the data management process while maintaining the ability to overwrite data in place.
Solution Approach 2:
The patent extracts valid data from SLC memory blocks and relocates it to MLC memory blocks. This extraction operation separates the valid data from the invalid data, allowing the SLC blocks to be cleared and reused without the complexity of managing invalid data entries, thereby simplifying data management.
Data Source
AI summary
A nonvolatile memory device includes a first area of single-level cells (SLCs) and a second area of multi-level cells (MLCs). The device determines whether a free block can be created by copying data between memory blocks of the first area. Upon determining that the free memory block can be created by copying data between the memory blocks of the first area, the device copies the data between the memory blocks of the first area to create the free memory block. Otherwise, the device selects at least one memory block from the first area and allocates the selected memory block as free memory block by copying the data stored in the selected memory block of the first area to the second area.


