NVMe Controller Single Command I/O Queue Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing NVMe specification requires multiple commands for creating and deleting I/O queues, which increases the time required for initializing and shutting down NVMe controllers, consumes more resources, and impacts power usage, particularly in low power conditions.

Innovation Solution

A method and system where a Non-Volatile Memory Express (NVMe) controller receives a single command from a host to create or delete multiple I/O queues, processing the queue identifier and size within the command to perform the operations in host memory, thereby reducing the number of commands needed for queue creation and deletion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple commands are sent to create and delete I/O queues one by one, then each queue operation is processed individually according to specification, but the initialization and shutdown time becomes excessively long

Engineering Contradiction:
ImproveI/O queue management correctnessVSAvoidinitialization and shutdown time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges multiple individual queue creation/deletion commands into a single batch operation command. The NVMe controller receives one command that contains identifiers for multiple I/O queues and processes them collectively, transforming 1-65535 separate commands into a single batch command, thereby dramatically reducing initialization and shutdown time while maintaining proper queue management

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements preliminary action by allowing the host to pre-allocate and configure multiple I/O queues in advance through a single command during initialization, rather than creating them sequentially. This batch pre-alignment approach prepares all necessary queue structures beforehand, eliminating the time-consuming sequential creation process

Inventive Principle:
Principle #10Preliminary action

2Reliability

If multiple commands are processed sequentially for queue creation and deletion, then command processing is thorough and accurate, but resource consumption increases and power usage is impacted

Engineering Contradiction:
Improvecommand processing accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent combines multiple command processing cycles into a single batch processing operation. By merging the processing of 1-65535 individual queue commands into one consolidated batch command, the system reduces the cumulative power consumption associated with repeated command processing cycles, controller state transitions, and memory access operations

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent enables continuous batch processing of queue operations without the interruptions and state transitions associated with sequential command handling. The controller processes all queue creation or deletion operations in a continuous batch operation, eliminating the repeated start-stop cycles that increase power consumption

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10019181B2Method of managing input/output(I/O) queues by non-volatile memory express(NVME) controller
Publication Date: 2018.07.10 SAMSUNG ELECTRONICS CO LTD
  • US10019181B2 patent drawing
  • US10019181B2 patent drawing
  • US10019181B2 patent drawing

AI summary

Various example embodiments herein disclose a method of managing input/output (I/O) queues by a Non-Volatile Memory Express (NVMe) controller. The method includes receiving a single command from a host to perform a creation of the I/O queues or deletion of the I/O queues. Further, the method includes processing a queue identifier, a queue size, and combination of the queue identifier and queue size indicated in the single command. Furthermore, the method includes performing the creation of the I/O queues or deletion of the I/O queues, in a host memory.