Flash Memory Wear Leveling via Erase Count Sorting
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional flash memory data writing methods using a first-in first-out approach can lead to over-wearing of spare blocks due to the selection of blocks with high erase counts, increasing the risk of wear-out and reducing the lifespan of memory devices.
Innovation Solution
A data writing method that sorts spare blocks by erase counts and selects the one with the least erase count for new data storage, thereby avoiding high-erase-count blocks and implementing a wear-leveling process to balance block usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a first-in first-out method is used to select spare blocks, then the selection process is simple, but blocks with high erase counts are selected leading to over-wearing and reduced lifespan
Solution Approach 1:
The patent changes the selection criterion from FIFO (first-in first-out) to sorting by erase count. Instead of selecting blocks based on their arrival order, the system now selects spare blocks based on their erase count parameter, specifically choosing blocks with the least erase counts to minimize wear and extend overall system lifespan.
Solution Approach 2:
The patent implements a wear-leveling strategy where blocks with lower erase counts are preferentially selected for data storage. This approach treats blocks with higher erase counts as 'short-living' objects that should be avoided, effectively managing the disposable nature of flash memory blocks by rotating usage to preserve overall system reliability.
2Productivity
If blocks with high erase counts are selected for data storage, then data writing is efficient, but the risk of wear-out increases
Solution Approach 1:
The patent changes the selection parameter from arbitrary or FIFO-based block selection to erase-count-based selection. By sorting spare blocks according to their erase counts and selecting those with the least erase counts, the system maintains data writing efficiency while simultaneously reducing wear-out risk through intelligent parameter-based block selection.
Solution Approach 2:
The patent implements a feedback mechanism where the erase count of each block is monitored and used as the basis for selection decisions. The controller continuously tracks erase counts and uses this feedback information to dynamically select the most appropriate spare blocks, adjusting block selection based on the actual wear state of the memory system.
3Device complexity
If spare blocks are not sorted by erase count, then the management process is simpler, but wear distribution becomes unbalanced
Solution Approach 1:
The patent introduces sorting by erase count as a new management parameter for spare blocks. This transformation changes the block management approach from simple FIFO ordering to a more sophisticated erase-count-based ordering system, which better balances wear distribution across all blocks while maintaining acceptable management complexity.
Solution Approach 2:
The patent implements wear-leveling by treating all blocks as equipotential in terms of their usage value. By sorting and selecting blocks based on erase counts, the system creates a more equitable distribution of wear across all blocks, preventing any single block from being overused while others remain relatively fresh, thus extending the overall system lifespan.
Data Source
AI summary
The invention provides a data writing method for a memory. In one embodiment, the memory comprises a data area and a spare area, the data area comprises a plurality of data blocks storing data, and the spare area comprises a plurality of spare blocks having no data stored therein. First, a write command for writing a write data to a first data block of the memory is received from a host. The spare blocks of the spare area are then sorted according to the erase counts of the spare blocks. A first spare block with the least erase counts is then selected from the spare blocks of the spare area. The write data is then written to the first spare block. Data is then erased from the first data block to convert the first data block to a spare block.


