Hybrid Storage System Memory Pool Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory devices face limitations in endurance due to finite program-erase cycles and require separate management of high performance and high capacity memory sections, leading to increased wear and management overhead.
Innovation Solution
A hybrid storage system that combines data migration and garbage collection using a single pool of free memory blocks, allowing data to be written in high performance or high capacity modes and migrating data between modes while managing memory blocks based on age and activity levels to optimize endurance and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If flash memory uses multi-level cell (MLC) or triple-level cell (TLC) devices to store more than one bit per cell, then storage capacity is improved, but program-erase cycle endurance deteriorates
Solution Approach 1:
The memory device is segmented into multiple pools of memory blocks (first pool, second pool, third pool) with different characteristics. The first pool contains blocks suitable for high-endurance operations, while the second and third pools contain blocks optimized for higher capacity. This segmentation allows the system to distribute data across pools based on endurance requirements, thereby maintaining overall system endurance while providing high capacity storage.
2Ease of manufacture
If flash memory is erased one block at a time, then manufacturing simplicity is maintained, but write performance deteriorates
Solution Approach 1:
The memory is divided into multiple pools of blocks that can be independently managed. This segmentation enables parallel erasure operations across different pools, allowing the system to maintain the simple block-erasure model while achieving better overall write performance through concurrent operations on multiple blocks across different pools.
Solution Approach 2:
The system performs preliminary actions by pre-erasing blocks in the first pool and maintaining ready-to-use blocks in the free blocks pool before they are needed for data writing. This preliminary preparation reduces the impact of block erasure on write performance, as blocks are ready for immediate use when needed.
3Reliability
If wear leveling and data coding techniques are used to increase flash device endurance, then program-erase cycle endurance is improved, but other memory metrics such as capacity, read performance, write performance, and power usage deteriorate
Solution Approach 1:
By segmenting the memory into pools with different endurance characteristics, the system can apply wear leveling selectively to the first pool while using the second and third pools for capacity-oriented storage. This selective approach maintains endurance for critical data without unnecessarily applying overhead to all data, thereby preserving read and write performance.
Solution Approach 2:
Different pools are assigned different qualities based on their intended use: the first pool is optimized for high endurance with stricter wear management, while the second and third pools are optimized for capacity with more relaxed endurance requirements. This local quality differentiation allows the system to achieve overall endurance improvement without uniformly impacting all memory operations.
4Productivity
If separate management of high performance and high capacity memory sections is implemented, then performance optimization is achieved, but management overhead increases
Solution Approach 1:
The patent merges the management of multiple memory pools into a unified structure with a single pool of free blocks that serves all sections. This unified management approach reduces the complexity of tracking and managing separate free block pools for each memory section, while still maintaining the performance optimizations of separate high-performance and high-capacity sections. The single free blocks pool can be dynamically allocated to any section as needed.
Data Source
AI summary
A method includes comparing a number of memory blocks in a first pool of free memory blocks in a memory to a threshold. The memory includes memory blocks that are logically divided into the first pool, a second pool, and a third pool of memory blocks. The first pool of free memory blocks is expanded based on determining that the number of memory blocks in the first pool of free memory blocks is less than the threshold. The expanding includes: selecting a first memory block from the second pool of memory blocks, the first memory block comprising active and non-active content; selecting a second memory block from the third pool of memory blocks; copying the active content of the first memory block to the second memory block; erasing the first memory block; and adding the first memory block to the first pool of free memory blocks.


