DMA Engine Priority Queues for Multi-Tenant Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory sub-systems lack the ability to differentiate and prioritize Quality of Service (QoS) levels for Direct Memory Access (DMA) commands and data sectors, leading to inefficient processing and increased latency in multi-tenant server environments where varying QoS levels are required for different memory devices and virtual machines.

Innovation Solution

Implementing a DMA engine with multiple priority queues and a weighted round robin selection scheme, where DMA commands and data sectors can be assigned priority values and sector priority maps to ensure that high-priority operations are executed before low-priority ones, allowing for dynamic adjustment of execution rates to prevent latency issues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional DMA engines process all DMA commands with the same QoS level using first-come-first-served ordering, then the system structure remains simple and uniform, but latency increases and service level agreements cannot be met in multi-tenant environments

Engineering Contradiction:
Improveservice level agreement complianceVSAvoidDMA engine structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The DMA engine is segmented into multiple priority queues (e.g., high priority queue and low priority queue) that separately store and process DMA commands based on their priority levels. This segmentation allows the system to differentiate between critical and non-critical operations, ensuring that high-priority commands receive timely processing while maintaining overall system reliability and meeting service level agreements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The DMA engine implements dynamic priority-based scheduling where the processing order of DMA commands is adjusted based on their assigned priority values. The engine can dynamically switch between processing high-priority and low-priority commands, and can modify execution rates adaptively to prevent latency issues, thereby improving reliability without requiring a completely static rigid structure.

Inventive Principle:
Principle #15Dynamics

2Speed

If DMA commands are processed in arrival order without priority differentiation, then the processing logic remains simple and uniform, but latency increases for high-priority operations in multi-tenant server environments

Engineering Contradiction:
ImproveDMA command processing speedVSAvoidprocessing logic
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The processing logic is segmented into priority-based queues that separate high-priority and low-priority DMA commands. This allows the system to process high-priority commands at higher speeds by dedicating specific queues and execution pathways for time-critical operations, while maintaining simpler processing for standard commands, thus improving overall processing speed without uniformly complicating all processing paths.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different processing qualities and speeds are applied locally to different priority levels of DMA commands. High-priority commands receive expedited processing with higher execution rates and preferential queue selection, while low-priority commands undergo standard processing. This local differentiation optimizes speed for critical operations without unnecessarily complicating the processing of all commands.

Inventive Principle:
Principle #3Local quality

3Reliability

If all data sectors within a DMA command are read and written simultaneously, then the data transfer process remains simple and efficient, but latency issues occur when certain sectors require higher priority than others

Engineering Contradiction:
Improvedata sector processing reliabilityVSAvoiddata transfer efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Data sectors within a DMA command are segmented into different priority groups based on their importance and timing requirements. The DMA engine processes these segmented sectors according to their assigned priorities, allowing critical sectors to be read and written before less critical ones. This segmentation ensures data integrity and reliability for time-sensitive operations while maintaining overall transfer productivity through systematic prioritization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary prioritization of data sectors before executing the DMA transfer. By assigning priority values to individual sectors in advance and organizing them into priority queues, the system ensures that high-priority sectors are processed first without delaying the overall transfer. This preliminary organization prevents latency issues for critical data while maintaining efficient bulk transfer operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11461256B2Quality of service levels for a direct memory access engine in a memory sub-system
Publication Date: 2022.10.04 MICRON TECHNOLOGY INC
  • US11461256B2 patent drawing
  • US11461256B2 patent drawing
  • US11461256B2 patent drawing

AI summary

A processing device, operatively coupled with a memory device, is configured to receive a direct memory access (DMA) command to perform a memory access operation, the DMA command comprising a priority value; assign the DMA command to a priority queue of a plurality of priority queues based on the priority value of the DMA command; and execute a plurality of DMA commands from the plurality of priority queues according to a corresponding execution rate of each priority queue of the plurality of priority queues.