NVMe Buffer Space Segmentation for Queue Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In NVMe over fabric architectures, the complexity arises when a data read/write command in one queue cannot be executed due to insufficient storage space in the network adapter memory, leading to inefficient memory allocation and processing delays.

Innovation Solution

The method involves dividing the storage space of the buffer unit into multiple spaces, each corresponding to a specific command queue, allowing data to be buffered accordingly, and dynamically adjusting these spaces based on usage thresholds to optimize resource allocation and prevent memory bottlenecks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data read/write commands are processed using a single buffer space, then memory allocation is simple, but commands in one queue cannot be executed when storage space is insufficient due to occupation by another queue

Engineering Contradiction:
Improvecommand execution capabilityVSAvoidmemory allocation mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The buffer space is divided into multiple independent buffer spaces, with each buffer space dedicated to a specific command queue. This segmentation allows commands in different queues to be processed independently, preventing a single queue from blocking others when storage space is insufficient. Each queue has its own allocated buffer space, enabling parallel processing without mutual interference.

Inventive Principle:
Principle #1Segmentation

2Productivity

If a single buffer space is used for all queues, then device complexity is low, but processing efficiency decreases when storage space is insufficient

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidbuffer space management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The buffer space is segmented into multiple independent buffer spaces corresponding to different command queues. This allows the system to process commands from multiple queues simultaneously without waiting for memory space release, significantly improving processing efficiency during high-load conditions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Buffer spaces are preallocated to specific command queues before commands arrive. When a command needs to be processed, the corresponding preallocated buffer space is immediately available, eliminating the need for dynamic memory allocation and reducing processing delays.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If buffer space is dynamically allocated, then resource utilization is optimized, but memory allocation becomes complex and error-prone

Engineering Contradiction:
Improveresource allocation flexibilityVSAvoidmemory allocation mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The buffer space is divided into fixed segments dedicated to specific queues. Each queue has a predetermined buffer space allocation, which simplifies the allocation mechanism while maintaining the ability to handle varying workloads through queue-based isolation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The buffer space segmentation mechanism serves multiple functions: it provides dedicated storage for each queue, enables parallel processing, prevents queue interference, and simplifies memory management. This multi-functional approach reduces overall system complexity while maintaining flexibility.

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

Data Source

PatentUS11762581B2Method, device, and system for controlling data read/write command in NVMe over fabric architecture
Publication Date: 2023.09.19 HUAWEI TECH CO LTD
  • US11762581B2 patent drawing
  • US11762581B2 patent drawing
  • US11762581B2 patent drawing

AI summary

A method, device, and system for controlling a data read/write command in an NVMe over fabric architecture. In the method provided in the embodiments of the present disclosure, a data processing unit receives a control command sent by a control device, the data processing unit divides a storage space of a buffer unit into at least two storage spaces according to the control command sent by the control device, and establishes a correspondence between the at least two storage spaces and command queues, and after receiving a first data read/write command that is in a first command queue and that is sent by the control device, the data processing unit buffers, in a storage space that is of the buffer unit and that is corresponding to the first command queue, data to be transmitted according to the first data read/write command.