Unified Command Queue for Storage Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing non-volatile memory technologies face challenges with command queuing due to mismatched interfaces and protocols between higher speed non-volatile and volatile memory systems, leading to inefficiencies in data transfer and command execution.

Innovation Solution

A command queue system is implemented within a storage device, where commands are queued and executed based on their type, using a single command queue for both read and write operations, with flags and pointers managing the execution order to ensure efficient data transfer and processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single command queue is used for both read and write operations, then device complexity is reduced, but command execution efficiency may deteriorate due to potential conflicts between read and write operations

Engineering Contradiction:
Improvecommand queue structureVSAvoidcommand execution efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The command queue is segmented into distinct regions or fields within the same queue structure, allowing read commands and write commands to be differentiated and processed appropriately. The queue contains command type identifiers that segment the processing logic based on command category, enabling efficient handling without requiring separate physical queues.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different portions of the command queue are allocated for different command types (read vs. write), with each portion having optimized processing characteristics. The queue structure allows local optimization where read commands can be serviced immediately while write commands are buffered or prioritized differently, maintaining overall simplicity while enabling specialized processing.

Inventive Principle:
Principle #3Local quality

2Ease of operation

If commands are queued in FIFO order, then ease of operation is improved, but adaptability deteriorates because different command types may require different execution priorities

Engineering Contradiction:
Improvecommand queuing simplicityVSAvoidcommand execution flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The command queueing system dynamically adjusts execution order based on command type. While maintaining a basic FIFO structure for simplicity, the system incorporates dynamic prioritization logic that identifies read commands and allows them to be executed ahead of write commands when appropriate, providing flexibility without abandoning the simple queue structure.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the execution parameter (priority) based on command type parameters. Read commands are assigned different priority levels compared to write commands, allowing the same queue structure to adapt its behavior based on the nature of the commands being processed, thus achieving both simplicity and flexibility.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If separate command queues are used for read and write operations, then command execution efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvecommand execution efficiencyVSAvoidcommand queue structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Separate command queues for reads and writes are merged into a single unified queue structure. The queue contains both read and write commands interspersed, but uses command type identifiers and processing logic to maintain the benefits of separate queues while reducing overall structural complexity and resource requirements.

Inventive Principle:
Principle #5Merging (Combining)

4Speed

If higher speed non-volatile memory interfaces are implemented, then data transfer speed is improved, but compatibility with existing protocols deteriorates

Engineering Contradiction:
Improvedata transfer speedVSAvoidprotocol compatibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The command queue structure serves as an intermediary layer between the high-speed non-volatile memory interface and existing protocols. It translates and adapts commands between different protocol requirements while maintaining high-speed data transfer capabilities, allowing the system to speak multiple protocol languages through a unified high-speed interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10528267B2Command queue for storage operations
Publication Date: 2020.01.07 SANDISK TECHNOLOGIES LLC
  • US10528267B2 patent drawing
  • US10528267B2 patent drawing
  • US10528267B2 patent drawing

AI summary

Apparatuses, systems, methods, and computer program products are disclosed for queueing commands for storage operations. An apparatus includes a command queue configured to queue storage commands received at a storage device and a controller for the storage device. A controller is configured to receive a storage command on a first port of a storage device. A controller is configured to queue a received storage command as an entry in a command queue. An entry in a command queue indicates a type of a received storage command. A controller is configured to service a received storage command from a command queue on a second port of a storage device based on a type of the received storage command indicated by an entry in the command queue associated with the received storage command.