Memory Controller Dynamic Suspend-Limit Adjustment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional flash storage devices face challenges in maintaining consistent quality of service (QoS) due to varying host command processing latencies, as setting an allowed number of erase/program suspend operations too low decreases read QoS while setting it too high degrades write QoS, leading to performance issues like late buffer flush and exhaustion of free blocks.
Innovation Solution
A memory controller that dynamically changes the erase/program suspend-limit based on the size of the allocable buffer space, using a reference table to optimize suspend-limits for different buffer sizes, allowing the memory channel controllers to suspend or resume operations accordingly to maintain consistent write and read QoS.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the allowed number of erase/program suspend operations is set to be large, then read QoS is improved, but write QoS is degraded due to lowered erase or program throughput
Solution Approach 1:
The patent implements dynamic adjustment of the suspend-limit parameter based on real-time buffer space conditions. The suspend-limit is increased when buffer space is abundant to improve read QoS, and decreased when buffer space is limited to maintain write QoS. This dynamic adaptation resolves the contradiction by making the system flexible rather than fixed.
Solution Approach 2:
The patent changes the suspend-limit parameter according to buffer space size. By monitoring buffer occupancy and adjusting the suspend-limit accordingly, the system optimizes the balance between read and write QoS. This parameter change strategy allows the system to adapt to different workload conditions and resolve the performance trade-off.
2Reliability
If the allowed number of erase/program suspend operations is set to be too large, then read QoS is improved, but buffer flush performance is degraded causing full buffer
Solution Approach 1:
The patent implements a feedback mechanism where the suspend-limit is adjusted based on buffer space monitoring. When the buffer approaches full capacity, the suspend-limit is reduced to prioritize buffer flush operations. This feedback loop prevents buffer overflow while maintaining read QoS under normal conditions.
Solution Approach 2:
The system dynamically adjusts the suspend-limit based on real-time buffer conditions. When buffer space is充足的, the suspend-limit is high to allow read optimizations. When buffer space becomes limited, the suspend-limit is lowered to ensure timely buffer flush, preventing full buffer conditions.
3Reliability
If the allowed number of erase/program suspend operations is set to be too large, then read QoS is improved, but garbage collection performance is degraded leading to exhaustion of free blocks
Solution Approach 1:
The patent adjusts the suspend-limit parameter based on buffer space and garbage collection needs. When free blocks are becoming scarce, the suspend-limit is reduced to prioritize garbage collection operations, ensuring sufficient free blocks are maintained while still allowing read QoS optimization when conditions permit.
Solution Approach 2:
The system monitors buffer space and garbage collection status, and adjusts the suspend-limit accordingly. This feedback mechanism ensures that when free blocks are exhausted or GC is needed, the suspend-limit is lowered to maintain GC performance, preventing the contradiction from causing system degradation.
Data Source
AI summary
A memory controller and a storage device including the same are provided. The memory controller includes memory channel controllers configured to perform erase, program, read, erase suspend and program suspend operations for flash memories, a flash translation layer configured to control the memory channel controllers to process write/read commands, allocate a buffer space in a buffer memory in response to a write command in the write/read commands, temporarily store data in the allocated buffer space, and deallocate the buffer spaceaafter the data is programmed to the flash memory, a host interface configured to receive the write/read commands from a host and transmit the received write/read commands to the flash translation layer, and a suspend-limit changer configured to dynamically change an erase/program suspend-limit based on the size of the allocable buffer space, the erase/program suspend-limit being a maximum allowed number of erase/program suspend operations.


