Virtual Function Controller NVMe Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtualization environments face performance bottlenecks due to storage software stack overhead, leading to high latency and CPU consumption, especially when caching is implemented within the guest OS or hypervisor, which can be inflexible and require additional software installations, resulting in inefficient use of NVMe devices.

Innovation Solution

Implementing a virtualized NVMe device compliant with PCIe SRIOV, which provides a cache engine on the NVMe side, dynamically shares NVMe capacity, and maintains cache metadata transparently to the guest OS, reducing software stack overhead and enabling low-latency caching with high throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If caching is implemented within the guest OS or hypervisor, then caching functionality is provided, but software stack overhead increases and CPU consumption increases

Engineering Contradiction:
Improvecaching functionalityVSAvoidsoftware stack overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the caching functionality from the guest OS or hypervisor software stack and relocates it to a dedicated cache device. This separation removes the caching logic from the main storage software path, eliminating the associated overhead and CPU consumption while preserving caching benefits.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a cache device as an intermediary component between the storage device and the guest OS. This mediator handles caching operations independently, intercepting storage requests and providing cached data without involving the complex hypervisor or guest OS caching software, thus reducing software stack overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If caching is implemented within the guest OS or hypervisor, then caching functionality is provided, but latency increases

Engineering Contradiction:
Improvecaching functionalityVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

By extracting caching operations from the software stack, the patent eliminates software processing delays. The cache device operates with direct hardware access, bypassing hypervisor context switches and guest OS software layers that contribute to latency, thereby reducing overall access time.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces the software-based caching mechanism (which involves complex processing, context switches, and memory management) with a hardware-based cache device. This substitution eliminates software overhead and processing delays, providing faster caching operations with reduced latency.

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

3Reliability

If caching is implemented within the guest OS or hypervisor, then caching functionality is provided, but additional software installation is required

Engineering Contradiction:
Improvecaching functionalityVSAvoidsoftware installation
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent extracts caching functionality from the software domain and implements it in hardware. This eliminates the need for additional software installations in the guest OS or hypervisor, as the cache device operates independently at the hardware level, simplifying deployment and maintenance.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The cache device provides self-service caching functionality without requiring software configuration or installation in the guest OS. The device autonomously manages caching operations, making the system easier to deploy and maintain while eliminating software dependency.

Inventive Principle:
Principle #25Self-service

4Productivity

If NVMe devices are used, then high performance is achieved, but software stack overhead reduces performance

Engineering Contradiction:
ImproveperformanceVSAvoidsoftware stack overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts storage operations from the complex software stack and directs them through a dedicated cache device. This separation allows NVMe devices to operate at their full hardware capability without being burdened by software overhead, preserving their high performance characteristics.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The cache device serves as an intermediary that simplifies the interface between the guest OS and NVMe storage devices. It handles complex caching operations in hardware, allowing the NVMe devices to focus on high-speed data transfer without software stack interference, thereby maintaining their performance advantages.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10228874B2Persistent storage device with a virtual function controller
Publication Date: 2019.03.12 INTEL CORP
  • US10228874B2 patent drawing
  • US10228874B2 patent drawing
  • US10228874B2 patent drawing

AI summary

An embodiment of a storage apparatus may include persistent storage media, a namespace having backend storage, and a virtual function controller communicatively coupled to the persistent storage media and the namespace to assign the namespace to a virtual storage function and to control access to the namespace by the virtual storage function. The virtual function controller may be further configured to cache access to the namespace on the persistent storage media. Other embodiments are disclosed and claimed.