Priority Command Queues for Low Latency SSDs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The disparity in command latency between solid state drives (SSD) and hard disk drives (HDD) in storage systems leads to throughput disparities, causing SSD commands to wait longer and resulting in underutilization of SSD storage devices and diminished system performance.
Innovation Solution
Implementing priority command queues with a command sorter that determines target storage devices for SSD and HDD commands, using hash tables or data mapping tables to place commands in respective ready queues, and a scheduler that allocates resources based on availability levels to service SSD commands faster than HDD commands.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If SSD and HDD commands are placed in a single command queue, then the storage system can service both types of commands, but SSD commands experience increased latency and the SSD storage device becomes underutilized due to the slower response time of HDD commands
Solution Approach 1:
The patent divides the single command queue into separate priority queues: a high-priority SSD command queue and a low-priority HDD command queue. The command sorter segments incoming commands based on their target storage device type, placing SSD commands in the high-priority queue and HDD commands in the low-priority queue. This segmentation allows SSD commands to be serviced independently without being blocked by slower HDD commands, thereby reducing SSD command latency while maintaining the ability to service both types of commands.
2Productivity
If SSD commands are prioritized over HDD commands, then SSD command latency is reduced and SSD utilization is improved, but the system complexity increases due to multiple queues and scheduling mechanisms
Solution Approach 1:
The patent implements a segmented queue structure with separate high-priority and low-priority queues for SSD and HDD commands. This segmentation enables differentiated service levels while maintaining manageable complexity through clear separation of command types and their corresponding processing paths.
Solution Approach 2:
The command sorter acts as an intermediary component that receives incoming commands, determines their priority based on the target storage device type, and directs them to the appropriate queue. This intermediary layer simplifies the overall system architecture by centralizing the priority determination logic and preventing the need for complex real-time priority arbitration within a single queue.
3Device complexity
If a single command queue is used for both SSD and HDD commands, then the queue management is simpler, but throughput disparity occurs where SSD commands wait unnecessarily for HDD commands to be serviced
Solution Approach 1:
The patent segments the command queue into separate high-priority and low-priority queues, allowing SSD commands to be processed independently of HDD commands. This segmentation eliminates throughput disparity by preventing fast SSD commands from being blocked by slow HDD commands, thereby maximizing overall system throughput despite the increased queue structure.
Solution Approach 2:
The patent implements dynamic priority scheduling where the command processor can adaptively select commands from different priority queues based on current system state and queue availability. This dynamic approach allows the system to optimize throughput by servicing high-priority SSD commands when available while still maintaining the ability to process low-priority HDD commands, creating a flexible and efficient command processing system.
Data Source
AI summary
A method, apparatus, and system of a priority command queues for low latency solid state drives are disclosed. In one embodiment, a system of a storage system includes a command sorter to determine a target storage device for at least one of a solid state drive (SSD) command and a hard disk drive (HDD) command and to place the command in a SSD ready queue if the SSD command is targeted to a SSD storage device of the storage system and to place the HDD command to a HDD ready queue if the HDD command is targeted to an HDD storage device of the storage system, a SSD ready queue to queue the SSD command targeted to the SSD storage device, and a HDD ready queue to queue the HDD command targeted to the HDD storage device.


