User-Space NVMe Queue Access via Direct Register Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing NVMe device access through kernel software layers incurs high latency and overhead due to context switches and buffer copies, limiting performance and flexibility in accessing non-volatile memory express (NVMe) devices.

Innovation Solution

Mapping NVMe device registers, including doorbell registers, directly to user space virtual memory using a stride parameter to bypass kernel layers, allowing direct access and increased parallelism.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If NVMe devices are accessed through kernel software layers, then device management and control are maintained, but access latency increases and performance decreases due to context switches and buffer copies

Engineering Contradiction:
Improvedevice management controlVSAvoidaccess latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the access path by creating a direct user-space interface to NVMe device registers, separating the high-level kernel management functions from the low-level device access operations. This allows most operations to bypass the kernel while maintaining kernel control for critical functions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (user-space driver with direct register mapping) that mediates between applications and the NVMe device, eliminating the need for kernel-space intermediaries and their associated context switches and buffer copies.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If NVMe devices are accessed through kernel software layers, then system stability is maintained, but throughput is limited due to overhead from context switches and buffer copies

Engineering Contradiction:
Improvesystem stabilityVSAvoidthroughput
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent extracts the device access functionality from the kernel space and places it in user space, removing the overhead of context switches and buffer copies while maintaining system stability through careful design of the user-space interface.

Inventive Principle:
Principle #2Taking out (Extraction)

3Speed

If registers are mapped directly to user space virtual memory, then access speed and throughput improve, but system complexity increases due to direct memory mapping requirements

Engineering Contradiction:
Improveaccess speedVSAvoidmemory mapping complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent changes the memory mapping parameters by using stride parameters to control the mapping of device registers to user-space virtual memory, allowing flexible configuration of register access patterns while maintaining direct access performance.

Inventive Principle:
Principle #35Parameter changes

4Adaptability or versatility

If stride parameter is used to map registers to user space, then access flexibility and customization improve, but mapping complexity increases

Engineering Contradiction:
Improveaccess flexibilityVSAvoidmapping configuration
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent makes the register mapping dynamic and configurable through stride parameters, allowing the system to adapt to different access patterns and performance requirements while providing a programmable interface for optimization.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12481580B2System and method to extend NVMe queues to user space
Publication Date: 2025.11.25 SAMSUNG ELECTRONICS CO LTD
  • US12481580B2 patent drawing
  • US12481580B2 patent drawing
  • US12481580B2 patent drawing

AI summary

An embodiment includes a system, comprising: a processor configured to: read a stride parameter from a device coupled to the processor; and map registers associated with the device into virtual memory based on the stride parameter; wherein: the stride parameter is configured to indicate a stride between the registers associated with the device; and the processor is configured to map at least one of the registers to user space virtual memory in response to the stride parameter.