Multi-Queue Storage Communication Over a Single Transport Connection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing communication technologies struggle to efficiently support multiple queues for data storage operations between a host and a storage element, particularly in scenarios involving non-volatile memory, leading to inefficiencies in data transfer and management.

Innovation Solution

Implementing a system with multiple queues on both the host and the storage element, utilizing a transport layer connection to facilitate communication through send and receive queues, and supporting protocols like Multi-Queue Non-Volatile Memory Express (MQ-NVMe) to manage data storage operations, including writing, reading, and flushing data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional communication technologies are used for data storage operations, then the system structure is simple, but the data transfer efficiency is insufficient when supporting multiple queues

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidcommunication system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The communication system is segmented into multiple independent queue pairs, where each queue pair handles specific data transfer tasks. The host and storage device each maintain multiple queues (e.g., 64 submission queues and 64 completion queues), allowing parallel processing of multiple I/O operations simultaneously. This segmentation enables high-concurrency data transfer while maintaining manageable complexity through structured queue management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a multi-dimensional queue management architecture by adding the queue dimension to traditional single-channel communication. Instead of sequential single-queue processing, the system operates across multiple queue dimensions simultaneously, with each queue pair representing an independent communication channel. This dimensional expansion enables parallel data transfer paths, dramatically improving throughput while organizing complexity through standardized queue structures.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If multiple queues are implemented on host and storage element, then communication efficiency for data storage operations is improved, but the complexity of managing send and receive queues increases

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidqueue management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The queue pair structure serves multiple functions simultaneously: submission queues handle command submission, completion queues handle response reception, and the entire queue pair mechanism supports both data transfer and status monitoring. This multi-functionality reduces the need for separate dedicated structures for each communication task, simplifying overall management while maintaining high communication efficiency.

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

Solution Approach 2:

The completion queue mechanism provides continuous feedback to the host about the status of I/O operations. When storage operations complete, results are automatically written to the corresponding completion queue, enabling the host to monitor and manage multiple queues efficiently through standardized feedback channels. This feedback mechanism simplifies queue management by providing automated status reporting without requiring complex polling or inquiry protocols.

Inventive Principle:
Principle #23Feedback

3Productivity

If transport layer connection is used to support multiple queues, then data transfer optimization is achieved, but the protocol negotiation and connection establishment become more complex

Engineering Contradiction:
Improvedata transfer optimizationVSAvoidprotocol negotiation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The transport layer connection and queue pair mappings are established preliminarily before data transfer begins. During the connection setup phase, the host and storage device negotiate and configure all queue pairs, submission queues, and completion queues in advance. This preliminary configuration creates a ready-to-use multi-queue infrastructure that simplifies subsequent data transfer operations, as no additional negotiation is needed during active communication.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The transport layer acts as an intermediary between the application layer and the queue management mechanisms. It provides standardized connection establishment and teardown procedures that abstract away the complexity of individual queue management. The transport layer handles queue mapping, connection state management, and coordination between host and storage device, shielding applications from queue management complexity while enabling optimized data transfer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP4064641B1Supporting communications for data storage
Publication Date: 2026.01.28 NOKIA SOLUTIONS & NETWORKS OY
  • EP4064641B1 patent drawingFigure 1
  • EP4064641B1 patent drawingFigure 2
  • EP4064641B1 patent drawingFigure 3

AI summary

Various example embodiments for supporting communications for data storage are presented herein. Various example embodiments for supporting communications for data storage may be configured to support communications between a host and a storage element for supporting storage of data in the storage element by the host. Various example embodiments for supporting communications between a host and a storage element may be configured to support communications between a host and a controller of the storage element. Various example embodiments for supporting communications between a host and a controller of a storage element may be configured to support, using a single transport layer connection, communications of multiple queue pairs supporting communications between the host and the controller of the storage element, where each of the queue pairs includes a queue on the host and a queue on the controller of the storage element.