Write Completion Pacing with Size-Based Storage Command Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data storage devices face challenges in maintaining consistent quality of service (QoS) due to varying response times for completion messages based on command lengths, which do not conform to host device requirements.
Innovation Solution
Implementing a controller that separates commands into two queues based on size, executing commands from a first queue until a tracker value reaches a threshold, then switching to a second queue, ensuring completion messages are sent at specific intervals.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If completion messages are sent at constant intervals regardless of command length, then QoS requirement is met, but response time varies and QoS decreases
Solution Approach 1:
The patent segments commands into two categories based on size: small commands (≤ threshold) and large commands (> threshold). This segmentation allows the system to handle different command types with different timing strategies, sending completion messages for small commands at constant intervals while allowing variable timing for large commands, thus resolving the contradiction between QoS compliance and response time variation.
Solution Approach 2:
The patent dynamically adjusts the completion message sending strategy based on command size. Instead of a static constant interval for all commands, the system adaptively applies constant intervals for small commands and variable timing for large commands. This dynamic approach maintains QoS compliance for time-sensitive operations while accommodating the longer processing time required for large commands.
2Reliability
If constant interval between completion messages is maintained, then host device requirements are met, but system productivity decreases due to waiting
Solution Approach 1:
By segmenting commands into small and large categories, the patent enables parallel processing paths. Small commands can be processed and acknowledged at constant intervals without blocking large commands, which are handled with more flexible timing. This segmentation prevents small commands from becoming bottlenecks that reduce overall system productivity while still meeting the constant interval requirement for completion messages.
Solution Approach 2:
The patent changes the timing parameter for completion messages based on command size. For small commands, a constant interval parameter is applied to meet host requirements. For large commands, the interval parameter is relaxed to allow longer processing time. This parameter change strategy maintains compliance for time-sensitive operations while improving overall productivity by not artificially constraining large command processing.
3Stability of the object's composition
If all commands are processed in FIFO order, then command ordering is preserved, but completion message intervals become inconsistent
Solution Approach 1:
The patent segments the command processing stream into two separate queues: one for small commands and one for large commands. This segmentation allows the system to maintain FIFO ordering within each queue while applying different completion message timing strategies. Small commands in their dedicated queue receive constant interval acknowledgments, ensuring interval consistency, while large commands are handled separately without disrupting the timing pattern.
Solution Approach 2:
The patent introduces an intermediary classification mechanism that separates commands based on size before processing. This intermediary step acts as a mediator between the incoming command stream and the execution queues, ensuring that commands are routed to appropriate queues based on their size characteristics. This mediation preserves overall command ordering while enabling consistent completion message intervals for small commands.
Data Source
AI summary
A data storage device includes a memory device and a controller coupled to the memory device. When a command is received by the controller from a host device, the controller determines whether the command size is greater than a threshold size. If the command is not greater than the threshold size, the command is sent to a first queue, otherwise, the command is sent to a second queue. Commands are executed from the first queue until a command size tracker value, which increases by a size representative of each command executed from the first queue, equals or exceeds a threshold value. When the command size tracker value equals or exceeds the threshold value, a command from the second queue is executed and the command size tracker value decreases by a size representative of the command from the second queue. Completion messages are sent at specific intervals based on the executing.


