Flash Memory Controller Pre-Allocation Table for Mapping Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Flash memory devices face performance degradation due to repetitive flushing of the mapping table from volatile memory to non-volatile memory, which is necessary to recover the mapping table after power failures but increases system overhead and reduces efficiency.
Innovation Solution
A method for allocating write memory blocks in a flash memory device that minimizes the need for frequent flushing by using pre-allocation and tail-trail tables to manage memory block allocation and mapping data, allowing recovery of the mapping table without continuous flushing, especially when all pre-allocated blocks are used.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the mapping table is flushed from volatile memory to non-volatile memory whenever updated, then the mapping table can be recovered after power failure, but the system overhead increases and performance degrades
Solution Approach 1:
The patent pre-allocates memory blocks and stores their addresses in the pre-allocation table before they are actually needed. This preliminary action allows the system to quickly assign memory blocks during write operations without performing full mapping table flushing, thus improving performance while maintaining recovery capability through the stored pre-allocation information.
Solution Approach 2:
The patent extracts the pre-allocation table containing memory block addresses from the complete mapping table. By separating this critical subset of mapping information into a dedicated pre-allocation table stored in volatile memory, the system can recover essential mapping data after power failure without needing to flush the entire mapping table, thereby reducing system overhead and improving performance.
2Speed
If the mapping table is stored in volatile memory for fast access, then system speed improves, but the mapping table is lost when power fails or is suddenly removed
Solution Approach 1:
The patent creates a copy of the essential mapping information (pre-allocation table with memory block addresses) and stores it in volatile memory for fast access. This copy contains the critical data needed for recovery, allowing the system to maintain high-speed access while ensuring that essential mapping information can be recovered after power failure without storing the entire mapping table in volatile memory.
3Productivity
If pre-allocation table is used to store memory block addresses in volatile memory, then flushing frequency is reduced, but the table must be regenerated from flash memory periodically
Solution Approach 1:
The patent implements periodic regeneration of the pre-allocation table by reading it from the main pre-allocation table stored in flash memory at intervals. This periodic action ensures that the volatile memory pre-allocation table is refreshed with up-to-date information without requiring continuous flushing, balancing performance optimization with data accuracy while managing complexity through structured periodic updates.
Data Source
AI summary
Storage devices including a flash memory and a memory controller, and write memory block allocating methods of the storage devices are provided. A write memory block allocating method may include storing a pre-allocation table in a Random Access Memory (RAM) of a memory controller. The pre-allocation table may include allocation order information of a pre-allocated memory block included in a flash memory. The method may also include receiving a write request from a host, determining whether a write memory block for the write request can be allocated according to the pre-allocation table and allocating the pre-allocated memory block as the write memory block according to the pre-allocation table when the write memory block can be allocated according to the pre-allocation table.


