Command Queue Order Adjustment in Data Storage Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Host system firmware designs often degrade performance in data storage devices by transitioning sequentially executed commands to random execution modes, such as from read look ahead (RLA) to normal or fast read, due to internal reordering algorithms, leading to decreased performance.

Innovation Solution

Implementing a completion order adjustment module that stores command queue IDs in an array to maintain sequential execution order, searching for and waiting until all sequential commands are processed before transferring them, and transferring non-sequential commands immediately.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the host system firmware uses internal reordering algorithms to manage command queue workload patterns, then command queue management becomes more flexible, but sequential command execution is degraded and performance decreases

Engineering Contradiction:
Improvecommand queue management flexibilityVSAvoidsequential command execution performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The invention segments the command processing into distinct phases: command reception with queue ID storage, command execution, and completion order adjustment. The completion order adjustment module separately handles sequential command reordering, allowing the execution phase to be optimized independently while maintaining sequential integrity for RLA commands.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The completion order adjustment module acts as an intermediary between the command execution phase and the host system. It receives processed commands, reorders sequential commands based on queue ID sequence, and presents them to the host in the correct order, thereby mediating between execution flexibility and sequential requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If commands are executed in random pattern (normal read or fast read), then execution speed increases, but sequential command patterns are lost and performance degrades over time

Engineering Contradiction:
Improvecommand execution speedVSAvoidsequential command execution consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary action by storing queue IDs in an array when commands are received, before execution occurs. This pre-stored queue ID sequence information is then used during the completion order adjustment phase to ensure sequential commands are returned in the correct order, maintaining reliability while allowing flexible execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The completion order adjustment module uses feedback from the processed commands to determine their sequence order. By examining the queue IDs of completed commands and comparing them against the stored sequence, the module adjusts the completion order to maintain sequential integrity for RLA commands while allowing random execution patterns for other command types.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If the host system maintains application command workload pattern tracking, then command completion tracking becomes more accurate, but command reordering causes workload pattern degradation

Engineering Contradiction:
Improvecommand completion tracking accuracyVSAvoidworkload pattern maintenance
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The completion order adjustment module serves as an intermediary that preserves the workload pattern information. It uses the queue ID sequence stored in the array to maintain the application command workload pattern while allowing the execution phase to optimize command processing independently.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system changes the parameter of command completion ordering by using queue ID sequence information. Instead of returning commands in execution completion order, the system reorders them based on the stored queue ID sequence, thereby maintaining the workload pattern parameters while allowing flexible execution.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11966631B2Command queue order adjustment in a data storage device
Publication Date: 2024.04.23 SANDISK TECHNOLOGIES LLC
  • US11966631B2 patent drawing
  • US11966631B2 patent drawing
  • US11966631B2 patent drawing

AI summary

A method and system for maintaining command queue order are disclosed. According to certain embodiments, commands are read from a host, storing command queue IDs in an array that will keep the queue IDs in order. After having the queue IDs stored in the array, the commands are processed in the data storage device (DSD). After processing, the commands are provided to a completion order adjustment module that will order the commands in queue ID order for sequential commands to be returned to the host. In certain embodiments, for a sequential command, other commands of the same sequence are searched for the array and ordered with the sequential command. If a particular command of the sequence is not found, the completion order adjustment module will wait to transfer the sequence until each command of the sequence is found. For commands not part of a sequence, these commands are transferred to the host.