NVMe Priority-Based Command Arbitration for Queue Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

NVMe systems face inefficiencies in command processing due to the lack of effective prioritization mechanisms, leading to suboptimal performance in handling multiple submission and completion queues, especially in scenarios with varying command priorities and resource constraints.

Innovation Solution

Implementing a priority-based command processing system that utilizes static arbitration algorithms like round-robin and weighted round-robin to determine the order of command fetching and execution, considering factors such as command type, frequency of access, data size, and resource availability, along with dynamic prioritization based on internal memory device states and communication interface status.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If priority-based command processing is implemented, then system performance and throughput are improved, but device complexity increases

Engineering Contradiction:
Improvecommand processing throughputVSAvoidarbitration mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments command processing into multiple priority levels (e.g., high priority, medium priority, low priority queues) and processes commands from different queues separately. This segmentation allows the system to handle critical commands faster while maintaining overall throughput, resolving the contradiction by organizing complexity into manageable segments rather than a single monolithic processing queue.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter of command processing by introducing priority levels and using different arbitration algorithms (round-robin, weighted round-robin, priority-based) for different queues. This parameter change enables flexible control over processing order and resource allocation, improving throughput for high-priority commands while managing overall system complexity through configurable parameters.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If multiple completion queues are managed with different priorities, then resource allocation efficiency is improved, but ease of operation deteriorates

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidqueue management complexity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system creates a universal completion queue management mechanism that handles multiple priority levels through a single standardized interface. The arbitration logic universally applies to all completion queues regardless of priority level, providing multi-functionality that improves resource allocation efficiency while maintaining ease of operation through consistent interaction patterns across different priority queues.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system introduces an intermediary arbitration mechanism that sits between the host and multiple completion queues. This mediator automatically manages priority-based allocation and command routing, improving resource allocation efficiency while shielding the host from the complexity of direct multi-queue management. The intermediary handles the operational complexity internally while presenting a simplified interface externally.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Stability of the object's composition

If static arbitration algorithms like round-robin are used, then fairness in command processing is improved, but productivity decreases

Engineering Contradiction:
Improvecommand processing fairnessVSAvoidcommand processing throughput
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The system dynamically adjusts the arbitration strategy based on command priority and queue state. Instead of using a fixed round-robin algorithm for all queues, the system transitions between different arbitration modes (round-robin for fairness, priority-based for throughput) depending on the specific queue and command characteristics. This dynamic approach resolves the contradiction by applying fairness where needed and optimizing throughput where critical.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system creates a composite arbitration mechanism that combines multiple algorithms (round-robin, weighted round-robin, priority-based scheduling) into a unified framework. Each algorithm contributes its strengths: round-robin provides fairness for standard operations, while priority-based components boost throughput for critical commands. This composite approach integrates the benefits of both fairness and productivity in a single system.

Inventive Principle:
Principle #40Composite materials

Data Source

PatentUS10387081B2System and method for processing and arbitrating submission and completion queues
Publication Date: 2019.08.20 SANDISK TECHNOLOGIES LLC
  • US10387081B2 patent drawing
  • US10387081B2 patent drawing
  • US10387081B2 patent drawing

AI summary

Systems and methods for processing and arbitrating submission and completion queues are disclosed. NVM Express (NVMe) implements a paired submission queue and completion queue mechanism, with host software on the host device placing commands into the submission queue. The memory device processes the commands through various phases including fetching, processing, posting a completion message, and sending an interrupt to the host. The memory device may process the commands based on the determined priority of the command. For example, the memory device may determine a priority for performing the phases after fetching the command. As another example, the memory device may perform the internal command selection based on a priority associated with the command. In this way, commands may be executed based on the priority needs of the memory device or of the host device.