Disk Drive Controller Command Queue Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Hard disk drives (HDDs) experience reduced performance due to a full host command queue, where incoming commands are blocked because the queue is either physically or effectively full, leading to inefficiencies in data storage and retrieval.
Innovation Solution
A storage device controller determines if the host command queue is full of pending read commands and forces the execution of one of these commands to free up space, allowing additional commands to be processed, thereby maintaining device performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the host command queue is filled with pending read commands, then the host command queue appears full to the host, but the HDD can still process write commands efficiently, the host's ability to send further commands is blocked, leading to reduced device performance
Solution Approach 1:
The patent segments the host command queue into two separate queues: a read command queue and a write command queue. This allows write commands to be processed independently without being blocked by pending read commands, thereby maintaining overall command processing throughput while resolving the effective fullness issue
Solution Approach 2:
The patent introduces an intermediary mechanism (the segmented queue structure with separate read and write queues) that mediates between the host's command submission and the HDD's command execution. This intermediary allows the system to maintain the appearance of a full queue to the host while actually processing commands efficiently in the background
2Ease of operation
If the host command queue is physically full, then no additional commands can be accepted, but if it is effectively full due to pending commands, the host cannot send further commands even though space may be available, reducing device performance
Solution Approach 1:
By segmenting the command queue into read and write portions, the system simplifies queue management logic. The host can submit commands without complex visibility checks, while the controller independently manages each segment, improving both ease of operation and device performance
Solution Approach 2:
The segmented queue structure enables self-service operation where the controller automatically manages read and write command processing independently without requiring host intervention or complex queue status checking, thereby improving both ease of operation and productivity
3Reliability
If the host command queue is full of pending read commands, then write commands can still be processed efficiently, but the overall system performance is reduced due to blocked command submission
Solution Approach 1:
The patent segments the command processing into independent read and write pathways. Write commands are processed reliably through the write queue without being affected by read command status, while the read queue handles read commands separately. This segmentation maintains write command reliability while improving overall command processing productivity
Solution Approach 2:
The segmented queue structure enables continuous processing of both read and write commands without interruption. While read commands are pending, write commands continue to be processed continuously through the separate write queue, maintaining both reliability and overall productivity
Data Source
AI summary
Aspects of the present disclosure generally relate to storage devices and methods of operating the same. In one aspect, a storage device includes a disk, and a head configured to write data to and read data from the disk. The storage device also includes a controller configured to receive a read command in a host command queue, store the read command in a disk queue, and determine whether the host command queue is full of pending read commands, including the received read command. If the host command queue is full of pending read commands, the controller forces execution of one of the pending read commands.


