SSD Read Queue Scheduling Across Dies for Ordered Throughput
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
There is a need to improve the throughput of read processes in memory systems with nonvolatile memory, particularly in solid state drives (SSDs), and to efficiently transfer read target data to hosts in the order of leading to last data specified by read requests.
Innovation Solution
A memory system with a nonvolatile memory that includes a controller managing multiple dies, first and second queues, and a command buffer, which efficiently schedules and transfers read commands to ensure data is read and transferred in the correct order by utilizing logical-to-physical address translation and parallel processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If parallel reading is implemented across multiple dies, then read throughput is improved, but data transfer ordering becomes complex
Solution Approach 1:
The patent divides the read command queue into multiple segments (first queue for leading read commands, second queue for subsequent read commands) corresponding to different dies. This segmentation allows parallel processing of read commands across multiple dies while maintaining independent management of data transfer ordering for each die, thereby improving throughput without overwhelming complexity.
Solution Approach 2:
The patent introduces an intermediary buffer that temporarily stores read data from multiple dies before final transfer to the host. This buffer acts as a mediator that decouples the parallel read operations from the sequential data transfer requirement, allowing data to be read in parallel while being transferred to the host in the correct order through coordinated management of the intermediary storage.
2Speed
If data is read from multiple dies in parallel, then read speed is improved, but control complexity increases
Solution Approach 1:
The control structure is segmented into die-specific queue pairs (first and second queues for each die), allowing independent control of read operations for each die. This segmentation distributes control complexity across multiple simple, identical control units rather than requiring one complex centralized controller, enabling parallel operation while keeping individual control logic manageable.
Solution Approach 2:
The patent implements dynamic queue management where the controller can selectively issue read commands to different dies based on data availability and host requirements. The system dynamically adapts the parallel read operation intensity and composition, adjusting which dies are actively reading at any given moment, thereby optimizing read speed while managing control complexity through flexible, adaptive control rather than rigid fixed patterns.
3Productivity
If read commands are issued to multiple dies simultaneously, then throughput is improved, but command scheduling complexity increases
Solution Approach 1:
The command scheduling function is segmented and distributed to individual die controllers, each managing its own first and second queues independently. Rather than one complex centralized scheduler managing all dies, each die has its own simplified scheduling logic that operates autonomously based on local queue states and data availability, reducing overall scheduling complexity while maintaining high throughput through coordinated parallel operation.
Solution Approach 2:
The patent implements preliminary action by pre-organizing read commands into the first queue (for leading data) and second queue (for subsequent data) before execution. This preliminary organization of commands by type and target die allows the system to proceed with parallel execution without requiring complex real-time scheduling decisions during the actual read operation, as the execution order and target allocation are predetermined.
Data Source
AI summary
According to one embodiment, a memory system includes a nonvolatile memory including dies, a controller, and a first queue, a second queue, and a command buffer provided for each die. In response to a read command to be executed being stored in the command buffer corresponding to a first die, the controller determines whether or not a next read command needs to be issued. In response to determining that the next read command needs to be issued, the controller identifies a second die in which second data subsequent to first data corresponding to the read command to be executed is stored, and stores a read command to read the second data in the second queue corresponding to the second die.


