Flash Metadata Write via Cache Link List Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional data storage systems face challenges with write amplification in flash memory and solid-state drives, where the actual amount of physical information written is a multiple of the logical amount intended, and cache allocation size matching flash page size leads to difficulties in data transfer.
Innovation Solution
A method and apparatus that utilize cache memory as a temporary location for modifying data, replicating control data from storage memory, moving clean cache link lists to dirty and then for-flush link lists, and writing updated data to free flash pages, maximizing write amplification and optimizing data transfer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If cache memory is used as temporary location for modifying data, then write amplification is maximized, but data transfer difficulty increases
Solution Approach 1:
The cache memory is segmented into multiple link lists (clean cache link list, dirty cache link list, for-flush link list) to organize and manage scattered metadata. This segmentation allows efficient tracking and transfer of modified data blocks, resolving the data transfer difficulty while maintaining write amplification benefits.
Solution Approach 2:
The patent introduces an intermediary mechanism (the for-flush link list) that bridges cache memory and flash storage. This intermediary organizes scattered metadata into structured blocks before transfer, making the data transfer process more manageable while preserving the write amplification optimization.
2Manufacturing precision
If cache allocation size is made same as flash page size, then storage alignment is improved, but data transfer becomes difficult
Solution Approach 1:
The system dynamically manages cache allocation by creating scattered blocks of various sizes rather than fixed flash-page-sized allocations. This dynamic approach allows flexible data organization in cache while maintaining proper alignment with flash page structures during write operations, resolving the transfer difficulty.
Solution Approach 2:
The patent changes the allocation parameter from fixed flash page size to variable scattered block sizes in cache memory. This parameter change allows optimal use of cache space while maintaining compatibility with flash page structure through the intermediary for-flush mechanism, eliminating data transfer difficulties.
Data Source
AI summary
In an embodiment of the invention, a method comprises: requesting an update on a control data in at least one flash block in a storage memory; replicating, from the storage memory to a cache memory, the control data to be updated; moving a clean cache link list to a dirty cache link list so that the dirty cache link list is changed to reflect the update on the control data; and moving the dirty cache link list to a for-flush link list and writing an updated control data from the for-flush link list to a free flash page in the storage memory. In another embodiment of the invention, an apparatus comprises: a control data flushing system configured to: request an update on a control data in at least one flash block in a storage memory; replicate, from the storage memory to a cache memory, the control data to be updated; move a clean cache link list to a dirty cache link list so that the dirty cache link list is changed to reflect the update on the control data; and move the dirty cache link list to a for-flush link list and write an updated control data from the for-flush link list to a free flash page in the storage memory. In yet another embodiment of the invention, an article of manufacture, comprises a non-transient computer-readable medium having stored thereon instructions operable to permit an apparatus to: request an update on a control data in at least one flash block in a storage memory; replicate, from the storage memory to a cache memory, the control data to be updated; move a clean cache link list to a dirty cache link list so that the dirty cache link list is changed to reflect the update on the control data; and move the dirty cache link list to a for-flush link list and write an updated control data from the for-flush link list to a free flash page in the storage memory.


