Zero-Copy Block Virtualization for NVMe Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Prior data storage virtualization techniques, based on older hardware technologies like magnetic hard disk drives and slow NAND solid state drives, are inadequate for newer, faster storage devices, leading to performance limitations and increased latency in virtualized processing environments.

Innovation Solution

The implementation of zero-copy block virtualization—mediated passthrough (ZCBV-MPT) and zero-copy block virtualization—paravirtualization I/O (ZCBV-PVIO) techniques, which allow direct memory access (DMA) operations between NVMe memory and guest memory, eliminating the need for data copies on the VMM backend and optimizing data access performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If prior storage I/O virtualization solutions are used, then virtualization functionality is provided, but performance is limited and latency increases due to outdated hardware technology bases

Engineering Contradiction:
Improvevirtualization performanceVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent changes the hardware technology parameters by transitioning from legacy storage virtualization architectures designed for magnetic HDDs and slow NAND SSDs to new architectures optimized for NVMe devices. This involves updating the virtualization layer to support NVMe-specific features like queues, namespaces, and direct memory access, thereby resolving the performance and latency limitations imposed by outdated hardware bases

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent replaces the mechanical copying and data movement operations characteristic of legacy storage virtualization with NVMe's optimized data paths and zero-copy techniques. The new system substitutes traditional block-based I/O mechanisms with NVMe's command set and queue management, eliminating unnecessary data copies and reducing CPU intervention, thus improving productivity while reducing latency

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Speed

If traditional storage virtualization methods are employed, then data access is enabled, but data transfer speed is constrained by legacy hardware capabilities

Engineering Contradiction:
Improvedata transfer speedVSAvoidvirtualization architecture complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the virtualization architecture into distinct functional layers: an NVMe-specific virtualization layer that handles high-speed data paths, a traditional virtualization layer for legacy compatibility, and a presentation layer for VMs. This segmentation allows the system to route data through optimized NVMe paths for speed-critical operations while maintaining support for legacy devices, thereby increasing data transfer speed without overwhelming complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal virtualization architecture that can handle multiple types of storage devices (NVMe, SSDs, HDDs) through a unified interface. The system provides multi-functionality by supporting both legacy storage virtualization requirements and new NVMe-optimized paths, allowing data transfer speed improvements without requiring complete architectural replacement, thus balancing speed gains with manageable complexity

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

Data Source

PatentUS11947991B2Methods and apparatus to process commands from virtual machines
Publication Date: 2024.04.02 INTEL CORP
  • US11947991B2 patent drawing
  • US11947991B2 patent drawing
  • US11947991B2 patent drawing

AI summary

A disclosed example includes accessing, by a backend block service driver in an input/output virtual machine executing on one or more processors, a first command submitted to a buffer by a paravirtualized input/output frontend block driver executing in a guest virtual machine; generating, by the backend block service driver, a translated command based on the first command by translating a virtual parameter of the first command to a physical parameter associated with a physical resource; submitting, by the backend block service driver, the translated command to an input/output queue to be processed by the physical resource based on the physical parameter; and submitting, by the backend block service driver, a completion status entry to the buffer, the completion status entry indicative of completion of a direct memory access operation that copies data between the physical resource and a guest memory buffer corresponding to the guest virtual machine.