NVMe Command Prioritization for Host Buffer Fragmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current NVMe devices face challenges with host buffer fragmentation and saturation, leading to reduced host-side performance and increased memory overhead, particularly in storage-intensive workloads.

Innovation Solution

The proposed solution involves reordering and prioritizing commands based on the number of outstanding host buffers that will be released upon command completion, thereby reducing physical address fragmentation and host memory overhead. The controller evaluates commands in submission queues, selects commands with the highest number of buffers in PRP lists, and prioritizes them for processing during arbitration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If commands are processed using fixed host memory addresses for buffers, then PCIe device access is simplified, but host buffer fragmentation increases and host-side performance deteriorates

Engineering Contradiction:
ImprovePCIe device access simplicityVSAvoidhost-side performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces dynamic command prioritization based on the number of outstanding host buffers. Instead of fixed processing order, commands are dynamically reordered and prioritized during arbitration based on real-time buffer release status, allowing the system to adapt to varying memory pressure conditions and reduce fragmentation impact on performance

Inventive Principle:
Principle #15Dynamics

2Reliability

If IOMMU tracking is implemented for security, then PCIe device access control is improved, but host memory overhead increases significantly

Engineering Contradiction:
Improvesecurity access controlVSAvoidhost memory overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by differentiating command processing based on buffer release characteristics. Commands releasing multiple buffers are prioritized over those releasing single buffers, creating localized optimization in specific command processing paths without requiring global memory tracking overhead for all commands

Inventive Principle:
Principle #3Local quality

3Stability of the object's composition

If commands with more buffers are processed first, then physical address fragmentation is reduced, but command processing complexity increases

Engineering Contradiction:
Improvephysical address fragmentationVSAvoidcommand processing complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent uses copying by creating a simplified metric representation. Instead of analyzing complex buffer allocation patterns, the system copies and processes only the count of outstanding buffers as a prioritization key, reducing the complexity of command analysis while achieving fragmentation reduction through this simplified metric

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20250156313A1Optimizations For Payload Fetching In NVMe Commands
Publication Date: 2025.05.15 SANDISK TECHNOLOGIES LLC
  • US20250156313A1 patent drawing
  • US20250156313A1 patent drawing
  • US20250156313A1 patent drawing

AI summary

Instead of a system that does not address host buffer fragmentation or saturation, utilize a different metric for command prioritization. Commands are re-ordered and prioritized based on the number of outstanding host buffers that will be released on command completion, thereby limiting and/or reducing the physical address fragmentation and host memory overhead. Command processing priority will take the number of host memory page segments represented by the command into consideration.