Flash Memory Scheduling via Priority-Based Housekeeping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Non-volatile memory systems face inefficiencies in managing memory operations due to timing limitations and power loss, leading to deferred or ignored operations, which can result in access errors and reduced reliability.
Innovation Solution
A priority scheme and adaptive scheduling system that integrates host commands and internal operations, allowing for background execution of housekeeping tasks during idle times and delaying host commands when necessary, while ensuring efficient resource allocation based on memory utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If memory operations are temporarily stored in RAM for deferred execution, then host command processing speed is improved, but reliability deteriorates due to power loss causing data loss
Solution Approach 1:
The patent creates a duplicate copy of the deferred operation queue in non-volatile memory (NVM). While RAM stores the primary queue for fast access, NVM maintains an identical copy that persists across power cycles. This copying mechanism allows the system to recover the deferred operations after power loss without data loss, resolving the reliability issue while maintaining the speed benefits of deferred processing.
Solution Approach 2:
The patent performs preliminary actions by proactively copying operation queues to NVM before potential power loss events. The system continuously synchronizes the RAM-based deferred operation queue with its NVM counterpart, ensuring that critical data is secured in advance. This preliminary copying action prevents data loss during unexpected power failures while maintaining efficient host command processing.
2Reliability
If multiple garbage collection operations are needed for block refresh, then memory reliability is improved, but RAM storage capacity is exceeded
Solution Approach 1:
The patent transitions from a single-dimension storage approach (RAM only) to a two-dimension storage architecture by adding NVM as a secondary storage layer. This dimensional expansion provides virtually unlimited storage capacity for deferred operations, allowing multiple garbage collection operations to be queued without being constrained by RAM size limitations. The system can now maintain comprehensive operation histories while ensuring memory reliability.
Solution Approach 2:
The patent segments the operation queue storage function between two distinct memory types: RAM for active, frequently accessed operations and NVM for persistent, long-term operation storage. This segmentation allows the system to handle multiple garbage collection operations by distributing them across both storage layers, with NVM providing the additional capacity needed when RAM becomes full.
3Speed
If host commands are prioritized over internal operations, then host responsiveness is improved, but internal memory maintenance deteriorates
Solution Approach 1:
The patent performs preliminary maintenance actions by executing critical memory operations (such as garbage collection and block refresh) before the memory reaches critical states. The deferred operation queue mechanism allows the system to proactively schedule and execute maintenance tasks during idle periods or in conjunction with host commands, ensuring that internal memory health is maintained without compromising host responsiveness. Critical maintenance operations are initiated in advance to prevent memory degradation.
Data Source
AI summary
An embodiment of a non-volatile memory storage system comprises a memory controller, and a flash memory module. The memory controller manages the storage operations of the flash memory module. The memory controller is configured to assign a priority level to one or more types of house keeping operations that may be higher than a priority level of one or more types of commands received by a host coupled to the storage system, and to service all operations required of the flash memory module according to priority.


