NVMe Controller Data Writing via Association Identifier

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional storage technologies, such as SATA and AHCI standards for mechanical hard disks, fail to meet the performance requirements of modern solid-state drives (SSDs), leading to bottlenecks in processing capability, which are addressed by the Non-Volatile Memory Express (NVMe) interface optimizing enterprise and consumer-level SSDs with low access latency and high performance.

Innovation Solution

The NVMe-based data writing method involves a host directly pushing data packets to an NVMe controller with an association identifier, allowing the controller to determine the write instruction and write payload data into a storage medium without the need for pre-storing data in PRP or SGL fields, reducing delay and bandwidth occupation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the host pre-stores to-be-written data in storage space indicated by PRP or SGL before triggering the write instruction, then the NVMe controller can execute the write operation, but this causes delay and occupies storage space and bandwidth

Engineering Contradiction:
Improvewrite operation speedVSAvoiddata preparation delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The host pre-allocates storage space in the NVMe controller's internal memory and pre-registers the association identifier before triggering the write instruction. This preliminary action allows the NVMe controller to immediately write the pushed data packet without waiting for data preparation, thereby reducing delay while ensuring data can be properly associated with the write instruction

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an association identifier as an intermediary that links the pushed data packet with the write instruction. This intermediary mechanism allows the host to push data independently without pre-storing it in PRP/SGL, as the association identifier enables the NVMe controller to match the data with the corresponding write instruction later

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the host pre-stores to-be-written data in storage space indicated by PRP or SGL, then the write operation can proceed, but this occupies storage space and increases bandwidth occupation

Engineering Contradiction:
Improvewrite operation capabilityVSAvoidstorage space requirement
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent extracts the data from the host's storage space (PRP/SGL) and pushes it directly to the NVMe controller's internal memory. This extraction eliminates the need for the host to maintain large buffers for pre-storing data, reducing the storage space requirement on the host side while enabling the write operation to proceed

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The NVMe controller performs self-service by allocating its own internal memory space to store the pushed data packets. This eliminates the need for the host to pre-allocate and manage storage space in PRP/SGL, reducing bandwidth occupation and storage space requirements on the host side

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11579803B2NVMe-based data writing method, apparatus, and system
Publication Date: 2023.02.14 HUAWEI TECH CO LTD
  • US11579803B2 patent drawing
  • US11579803B2 patent drawing
  • US11579803B2 patent drawing

AI summary

In an NVMe-based storage system, a host is connected to an NVMe controller through a PCIe bus, and the NVMe controller is connected to a storage medium. The NVMe controller receives from the host a data packet that carries payload data and an association identifier. The association identifier associates the payload data with a write instruction. The NVMe controller obtains the write instruction according to the association identifier, and then writes the payload data into the storage medium according to the write instruction.