High-Performance Device Interface for Virtual Machine Zero-Copy Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtualization environments face challenges in allowing applications within virtual machines to access high-performance devices efficiently due to the lack of a direct interface, resulting in data copying through multiple software layers, which consumes CPU cycles and leads to inefficient memory usage and limited flexibility with paravirtualization interfaces.

Innovation Solution

A high-performance device interface (HPDI) is introduced, providing a single interface for virtual machine applications to access high-performance devices, enabling zero-copy data sharing between VM applications and front-end device drivers, and supporting multiple device drivers, thus reducing CPU and memory usage and enhancing portability and flexibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If multiple software layers are used between application and device driver, then device-specific details are hidden from user space, but data copying is required and CPU cycles are consumed

Engineering Contradiction:
Improvedevice detail hidingVSAvoiddata transmission efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces a high-performance device interface (HPDI) as an intermediary layer that enables direct memory access between the application and device driver. This mediator eliminates the need for multiple data copies while preserving the abstraction benefits, allowing the application to access device data directly through shared memory regions without propagating through intermediate software layers.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the data path into two independent memory spaces (application memory and device driver memory) that can access the same physical memory region simultaneously. This segmentation allows both layers to operate independently while sharing data through memory mapping, eliminating the copy operation while maintaining architectural separation.

Inventive Principle:
Principle #1Segmentation

2Reliability

If data is copied through multiple software layers, then data consistency can be preserved, but additional CPU cycles are consumed for data propagation

Engineering Contradiction:
Improvedata consistencyVSAvoidCPU cycle consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary memory mapping and shared memory region establishment during system initialization, before actual data transmission occurs. This preliminary setup creates pre-established communication channels that eliminate the need for runtime data copying, allowing direct memory access while maintaining data consistency through proper memory synchronization mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the mechanical data copying process with a direct memory access mechanism. Instead of copying data through multiple software layers, the system uses memory mapping and shared memory regions to allow simultaneous access to the same data by both the application and device driver, eliminating CPU-intensive copy operations while preserving data consistency.

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

3Productivity

If paravirtualization interfaces are used, then high-performance device access is enabled, but flexibility is reduced as custom modifications are needed inside the guest virtual machine

Engineering Contradiction:
Improvedevice access performanceVSAvoidinterface flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal high-performance device interface (HPDI) that can work with multiple types of devices and hypervisors through a standardized API. This universal interface provides consistent performance benefits across different virtualization environments without requiring custom modifications, as the HPDI abstracts the underlying paravirtualization details into a unified interface that applications can use generically.

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

Data Source

PatentUS9135043B1Interface for enabling an application in a virtual machine to access high performance devices
Publication Date: 2015.09.15 NETAPP INC
  • US9135043B1 patent drawing
  • US9135043B1 patent drawing
  • US9135043B1 patent drawing

AI summary

A high-performance device interface (HPDI) provides flexible and high-performance access by applications residing in a Virtual Machine (VM) to high-performance devices. The technique enables VM applications to use a single interface even when multiple device drivers exist, and can pass data efficiently between a VM application and a front-end device driver (a device driver implemented in a VM, such as may be used in a paravirtualization environment). It improves overall performance of a VM by reducing the copying of data during communications between a VM application and a front-end device driver, which reduces processor and memory usage.