NVMe Memory Subsystem QoS Enforcement via Queue-Level Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current solutions for enforcing quality of service (QoS) in shared Non-Volatile Memory Express (NVMe) storage are limited to function-level granularity, failing to address the needs of thousands of user processes, leading to inefficiencies in bandwidth and latency management.
Innovation Solution
Enhanced PASID assignment and queue-level QoS parameters are introduced, allowing for finer-grained control over write and read commands, data amounts, and bandwidth allocation across multiple user processes and virtualization modes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If function-level QoS enforcement is used in shared NVMe storage, then device complexity is reduced, but QoS management precision deteriorates for thousands of user processes
Solution Approach 1:
The patent segments QoS enforcement from function-level to queue-level granularity. Each I/O queue is assigned to specific user processes, allowing independent QoS parameter control (read/write commands, data amounts, bandwidth) per queue. This segmentation enables precise tracking and enforcement of QoS metrics for thousands of user processes while maintaining manageable device complexity through structured queue assignment.
Solution Approach 2:
The patent applies local quality by allowing different QoS parameters to be configured for different I/O queues based on their specific user process requirements. Each queue can have customized read command limits, write command limits, data amount restrictions, and bandwidth allocations, enabling localized optimization without affecting other queues or requiring complex global management.
2Measurement precision
If finer-grained queue-level QoS control is implemented, then QoS management precision is improved, but device complexity increases
Solution Approach 1:
The patent implements self-service mechanisms where the NVMe device autonomously enforces QoS parameters at the queue level without requiring complex external firmware intervention. The device maintains counters for read/write commands, data amounts, and bandwidth per queue, automatically comparing these against configured limits and enforcing restrictions when thresholds are reached, thereby reducing the burden on external control systems.
Solution Approach 2:
The patent incorporates feedback mechanisms through counters that continuously monitor QoS parameter usage (read commands, write commands, data amounts, bandwidth) for each queue. These counters provide real-time feedback to the QoS enforcement logic, enabling dynamic adjustment and prevention of QoS violations without requiring complex predictive algorithms or external monitoring systems.
3Reliability
If firmware-based QoS solutions are used, then QoS enforcement capability is improved, but power consumption increases
Solution Approach 1:
The patent replaces firmware-based QoS enforcement with hardware-based implementation within the NVMe device. QoS parameters are enforced through dedicated hardware counters and comparison logic integrated into the device's command processing path, eliminating the need for continuous firmware execution and reducing power consumption while maintaining reliable QoS enforcement capability.
Solution Approach 2:
The NVMe device performs self-service QoS enforcement through built-in hardware counters that automatically track and enforce QoS parameters without requiring external firmware management. This self-contained approach reduces power consumption by eliminating the need for continuous firmware intervention while ensuring consistent QoS enforcement.
Data Source
AI summary
Memory subsystem supported quality of service (QOS) levels for virtualized storage can be provided by advertising, by the memory subsystem coupled to a host, QoS levels supported by the memory subsystem. Examples of such QoS levels can include a function level, a process address space identifier (PASID) level, and a submission queue level. The memory subsystem can receive from the host a definition of QoS parameters for at least one QoS level. The memory subsystem can provide input/output virtualized (IOV) storage while enforcing the QoS parameters via hardware of the memory subsystem.


