NVMe Virtualization QoS Bandwidth Limiter

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In NVMe virtualization environments, multiple host applications competing for resources can lead to resource starvation, particularly for mission-critical applications, due to unmanaged bandwidth allocation across PCIe buses, resulting in potential delays and reduced performance.

Innovation Solution

Implementing a Quality of Service (QoS) mechanism within the NVMe virtualization environment, where a bandwidth limiter module dynamically allocates and manages bandwidth across submission queues, delaying command processing when bandwidth limits are exceeded to ensure fair resource distribution and prioritize critical applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple host applications share PCIe bus bandwidth without management, then resource utilization increases, but mission-critical applications experience resource starvation and performance degradation

Engineering Contradiction:
Improveresource utilizationVSAvoidmission-critical application performance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the PCIe bus bandwidth into multiple submission queues, each assigned to specific host applications. This segmentation allows differentiated bandwidth allocation where mission-critical applications receive guaranteed bandwidth while other applications share remaining resources, resolving the contradiction between overall resource utilization and reliable performance for critical applications.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by assigning different bandwidth characteristics to different submission queues based on application requirements. Mission-critical applications receive high-priority queues with guaranteed bandwidth allocation, while less critical applications receive standard or best-effort queues, enabling localized optimization of bandwidth quality for each application type.

Inventive Principle:
Principle #3Local quality

2Speed

If bandwidth is allocated without limits to all applications, then application responsiveness improves, but resource starvation occurs for critical applications

Engineering Contradiction:
Improveapplication responsivenessVSAvoidcritical application throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent implements dynamic bandwidth allocation through a bandwidth limiter module that adjusts bandwidth consumption in real-time based on current system conditions and queue priorities. The module dynamically limits bandwidth for non-critical applications when critical applications need resources, maintaining overall system responsiveness while ensuring critical applications receive sufficient throughput.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent employs feedback mechanisms where the bandwidth limiter module continuously monitors bandwidth consumption across submission queues and adjusts allocation accordingly. When critical applications experience resource constraints, the system feedback triggers bandwidth limiting for other queues, ensuring critical applications maintain their required throughput while preserving general system responsiveness.

Inventive Principle:
Principle #23Feedback

3Device complexity

If command fetching is delayed to manage bandwidth, then bandwidth allocation control improves, but command processing time increases

Engineering Contradiction:
Improvebandwidth management controlVSAvoidcommand processing delay
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent implements periodic bandwidth checking and command fetching based on credit availability. The bandwidth limiter module periodically updates bandwidth credits for each submission queue and fetches commands only when credits are available. This periodic approach provides controlled bandwidth management while minimizing command processing delays by fetching commands as soon as bandwidth becomes available.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10564857B2System and method for QoS over NVMe virtualization platform using adaptive command fetching
Publication Date: 2020.02.18 SANDISK TECHNOLOGIES LLC
  • US10564857B2 patent drawing
  • US10564857B2 patent drawing
  • US10564857B2 patent drawing

AI summary

Systems and methods for quality of service (QoS) using adaptive command fetching are disclosed. NVM Express (NVMe) implements a paired submission queue and completion queue mechanism, with host software on the host device placing commands into the submission queue. The memory device processes the commands through various phases including fetching, processing, posting a completion message, and sending an interrupt to the host. NVMe also includes an NVMe virtualization environment, which uses a subsystem with multiple controllers to provide virtual or physical hosts direct I/O access. QoS may be used so that the NVMe processes in the virtualization environment receive sufficient resources. In particular, bandwidth assigned to a submission queue may be considered when processing of commands (such as fetching of commands). In the event that the bandwidth assigned to the submission queue is exceeded, the processing of the commands (such as the fetching of the commands) may be delayed.