Flash Garbage Collection via Sub-Mapping Tables
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data storage devices with insufficient DRAM struggle to manage and access data efficiently due to the large size of the host-to-flash physical address mapping table, which exceeds the capacity of the available memory.
Innovation Solution
A garbage collection method that involves entering a background mode, selecting source data blocks, dividing the mapping table into sub-mapping tables, and sequentially updating the correspondence relationship of data from source data blocks to spare data blocks, reducing the need for frequent swapping of the mapping table.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the mapping table is stored in DRAM to improve data management efficiency, then data access efficiency is improved, but the device requires large DRAM capacity which increases cost and complexity
Solution Approach 1:
The mapping table is divided into multiple sub-mapping tables, each stored in a separate data block. This segmentation allows the system to manage large mapping tables without requiring large DRAM capacity, as only portions of the mapping table need to be loaded into DRAM at any given time.
Solution Approach 2:
The patent transitions from a single flat mapping table structure to a hierarchical structure with sub-mapping tables organized in data blocks. This dimensional change from 2D (flat table) to 3D (hierarchical blocks with sub-tables) enables efficient management of large mapping tables with limited DRAM.
2Quantity of substance
If the mapping table is divided into sub-mapping tables to reduce DRAM requirements, then DRAM capacity requirements are reduced, but the number of swapping operations increases
Solution Approach 1:
The system performs preliminary actions by pre-organizing data into data blocks with associated sub-mapping tables before they are needed. This pre-organization allows for more efficient swapping operations, as the system can directly access pre-prepared data blocks and their corresponding sub-mapping tables without requiring extensive reorganization during operation.
Solution Approach 2:
The patent introduces data blocks as intermediary structures between the mapping table and the storage medium. These data blocks serve as buffers that hold sub-mapping tables and their associated data, reducing the frequency of direct swapping operations between DRAM and the main mapping table.
3Ease of manufacture
If a small-sized DRAM is used to reduce cost, then device cost is reduced, but the ability to store the entire mapping table is compromised
Solution Approach 1:
The mapping table is segmented into multiple sub-mapping tables distributed across different data blocks. This allows a small DRAM to store only the currently needed sub-mapping table while the complete mapping table resides in non-volatile storage, thereby supporting large mapping tables with minimal DRAM capacity.
Solution Approach 2:
Data blocks serve as intermediary storage units that bridge the gap between limited DRAM capacity and the need to store large mapping tables. Each data block contains a sub-mapping table and its associated data, allowing the system to access portions of the mapping table efficiently without requiring the entire mapping table to fit in DRAM.
Data Source
AI summary
A garbage collection method for a data storage device includes steps of: entering a background mode from a foreground mode; selecting a plurality of source data blocks from a plurality of in-use data blocks; dividing a mapping table into a plurality of sub-mapping tables and selecting one of the sub-mapping tables as a target sub-mapping table, wherein the target sub-mapping table is used to manage one of the source data blocks; selecting a destination data block from a plurality of spare data blocks; and sequentially updating a correspondence relationship of data stored in the target sub-mapping table from the source data blocks to the destination data block, wherein the updating comprises copying the data stored in the source data blocks to the destination data block.


