NVMe Accelerator Shared Memory for SSD Virtualization Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualization environments, the integration of SSD device drivers with guest OSes is hindered by tight coupling with host hardware, leading to inefficiencies such as VM_Exit requirements for MMIO access, resulting in suboptimal SSD performance and latency due to resource constraints and protocol conversions.

Innovation Solution

An NVMe accelerator is introduced, which uses a shared memory region allocated to both the VMM and VM, allowing direct access to emulated doorbell registers and command queues, reducing resource competition and eliminating the need for VM_Exit operations by handling communications through standard non-virtualized NVMe processes within this shared memory space.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If SSD device driver is integrated into guest OS in virtualization environment, then SSD performance and throughput should improve, but VM_Exit requirements for MMIO access and tight coupling with host hardware cause increased latency and reduced efficiency

Engineering Contradiction:
ImproveSSD throughputVSAvoidLatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts the doorbell register access and command queue operations from the traditional MMIO space that requires VM_Exit, and places them in a shared memory region that can be accessed directly by the guest OS device driver. This separation allows the SSD device driver to communicate with the SSD controller without triggering VM_Exit, thus reducing latency while maintaining integration with guest OS.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an accelerator component that acts as an intermediary between the guest OS device driver and the SSD controller. The accelerator resides in a shared memory region and handles doorbell register updates and command queue management, mediating between the virtualized environment and physical SSD hardware without requiring host hardware coupling or VM_Exit operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If traditional virtualization approaches are used with MMIO access, then device driver integration is possible, but resource constraints and protocol conversions reduce SSD performance

Engineering Contradiction:
ImproveDevice driver integrationVSAvoidSSD throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent creates a universal interface in the shared memory region that combines multiple functions: doorbell register access, command queue management, and data transfer coordination. This universal interface serves both the guest OS device driver and the SSD controller, eliminating the need for separate MMIO spaces and protocol conversion layers, thereby improving SSD throughput while maintaining driver integration.

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

3Ease of operation

If shared memory region is used for SQ/CQ communication, then VM_Exit operations are eliminated and resource competition is reduced, but requires accelerator component to manage direct access

Engineering Contradiction:
ImproveDirect memory accessVSAvoidAccelerator component
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The accelerator component in the shared memory region implements self-service by autonomously managing doorbell register updates and command queue operations. It monitors the shared memory region for doorbell updates from the guest OS device driver and automatically processes command submissions and completions without requiring host OS intervention or complex virtualization management, thus simplifying operation despite the added component.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12050813B2Shared memory mechanism to support fast transport of SQ/CQ pair communication between SSD device driver in virtualization environment and physical SSD
Publication Date: 2024.07.30 INTEL CORP
  • US12050813B2 patent drawing
  • US12050813B2 patent drawing
  • US12050813B2 patent drawing

AI summary

An apparatus is described. The apparatus includes an accelerator to be coupled to a memory region that the accelerator shares with a virtualization environment comprising a guest OS, a guest VM and an SSD device driver. The accelerator is to forward a submission queue doorbell setting made by the SSD device driver in the shared memory to a corresponding submission queue doorbell in an SSD controller.