SSD Die Fill Order Control for Multi-Stream Write Balance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In solid-state drives (SSDs), the lack of coordination between multiple write streams leads to imbalances in die queue depths, causing die starvation and data overflow, which reduces overall system efficiency and throughput, and increases power consumption.
Innovation Solution
A method and system where a controller dynamically modifies the order in which memory dies are selected for programming based on the stream identifier associated with the write command, using precomputed fill orders or random number generation to distribute program commands more evenly across the dies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If 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 and data overflow
Solution Approach 1:
The controller pre-computes multiple fill orders for memory dies before write operations occur. When write commands arrive, the controller selects an appropriate pre-computed fill order based on the current state, allowing it to distribute data evenly across dies from the start rather than making ad-hoc decisions that lead to imbalances.
Solution Approach 2:
The system dynamically selects different fill orders based on the stream identifier and current die queue depths. Instead of using a fixed sequential fill order, the controller adapts the fill order selection to balance the load across different dies, preventing both starvation and overflow conditions.
2Ease of manufacture
If sequential fill order is used for programming memory dies, then implementation is simple, but collisions between write streams occur leading to die starvation
Solution Approach 1:
Multiple fill orders are pre-computed and stored in the controller before operation. This preliminary preparation allows the system to switch between different fill orders dynamically without complex real-time computation, maintaining implementation simplicity while avoiding collisions.
Solution Approach 2:
The system changes the fill order parameter based on the stream identifier. Instead of always using sequential ordering, different permutations of die fill orders are applied depending on which write stream is active, distributing the load more evenly across dies.
3Speed
If data is accumulated in internal memory before programming, then write performance is improved, but data overflow from internal to external memory occurs when internal memory is insufficient
Solution Approach 1:
The controller dynamically adjusts the programming schedule based on internal memory availability and die queue depths. By using pre-computed fill orders, it can efficiently drain internal memory to external memory at optimal rates, preventing overflow while maintaining high write performance.
Solution Approach 2:
The system monitors die queue depths and internal memory status, using this feedback to select appropriate fill orders. This feedback mechanism ensures that data is programmed to dies that have capacity, efficiently utilizing internal memory without causing overflow to external memory.
Data Source
AI summary
A method performed by a controller of a solid-state drive (SSD), the controller communicatively coupled to a non-volatile semiconductor memory device comprising a plurality of memory dies for storing data. The method comprises receiving a write command containing write data from a host interface. Next, the method comprises determining that write data associated with the write command is on a plurality of data streams. Here each data stream of the plurality of data streams having a stream number. The method then comprises retrieving a fill order from a plurality of fill orders based on a stream number, the fill order specifying a sequence of memory dies of the plurality of memory dies in which to program the write data. Further, the method comprises programming the write data to the memory dies according to the retrieved fill order.


