SSD Write Queue Equalization Across Superblocks and Memory Dies
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In solid-state drives (SSDs) with multiple write streams, the lack of coordination in directing commands to different superblocks leads to imbalanced die queue depths, causing die starvation and reduced overall system efficiency and throughput due to simultaneous access to the same memory dies.
Innovation Solution
A controller logically divides non-volatile memory dies into superblocks, assigns commands to these superblocks based on stream identifiers, and tracks command queues to equalize queue depths by queuing commands to the superblock with the smallest number of commands, ensuring even usage of memory dies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If commands from multiple write streams are directed to different superblocks without coordination, then write amplification is reduced and garbage collection efficiency is improved, but die queue depths become imbalanced causing die starvation
Solution Approach 1:
The controller continuously monitors the queue depth of each die and uses this feedback information to make coordinated decisions about command routing. By tracking the number of commands in each die's queue and adjusting subsequent command assignments based on this feedback, the system maintains balanced queue depths while preserving the benefits of distributing streams across different superblocks.
Solution Approach 2:
The command routing strategy is made dynamic by adjusting die assignments based on real-time queue depth conditions. Rather than using a fixed routing scheme, the system adapts its behavior by selecting which die to assign commands to based on current queue state, allowing flexible coordination between multiple write streams.
2Device complexity
If multiple write streams access the same memory dies simultaneously without coordination, then system simplicity is maintained, but queue depth imbalances occur reducing overall system efficiency
Solution Approach 1:
The system implements self-service by having the controller automatically monitor and adjust command routing based on queue depth conditions without external intervention. The controller independently tracks queue states and makes routing decisions to maintain balance, eliminating the need for complex external coordination mechanisms while improving throughput.
3Device complexity
If die assignments are made without tracking queue depths, then controller complexity is reduced, but die starvation occurs and performance deteriorates
Solution Approach 1:
The controller implements feedback by tracking the number of commands in each die's queue and using this information to guide subsequent command assignments. This feedback mechanism enables the system to prevent die starvation and maintain optimal throughput without requiring excessive complexity in the tracking and adjustment logic.
Data Source
AI summary
A method for writing data to an SSD configured to store data in a plurality of memory dies each comprising a plurality of memory blocks. The plurality of memory blocks are logically organized as a plurality of superblocks. The method is performed by a controller in communication with the plurality of memory dies. The method comprises generating, from accumulated write data, a plurality of commands. The method also comprises assigning, to each of the plurality of generated commands, an identifier corresponding to a superblock of the plurality of superblocks associated with the command. The method further comprises tracking a number of commands in each of a plurality of command queues corresponding to the dies of the superblock. The method additionally comprises queuing at least one of the plurality of generated commands to a die of the superblock having a corresponding command queue containing the smallest number of commands.


