Para-Virtualization DMA Aggregation for PCIe Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The frequent interactions between a para-virtualization device and a host result in degraded Direct Memory Access (DMA) performance due to the PCIe subsystem bottleneck and back-pressurization of the PCIe interface.

Innovation Solution

A data processing method that aggregates multiple DMA requests into a single request by screening and combining data that satisfy a preset condition, reducing the number of updates to the 'Used Ring' and improving DMA performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the para-virtualization device frequently submits data to the host through multiple steps, then data processing completeness is improved, but DMA performance degrades due to PCIe subsystem bottleneck

Engineering Contradiction:
Improvedata processing completenessVSAvoidDMA performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges multiple DMA requests into a single aggregated request. The completion queue stores multiple initial data entries, and the processing logic aggregates these entries into a single consolidated data structure that is submitted to the host in one operation, thereby reducing PCIe transaction frequency while maintaining data processing completeness

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary aggregation of data in the completion queue before submission to the host. Multiple data entries are pre-processed and combined into an aggregated structure in advance, so that when submission occurs, only one consolidated request needs to be transmitted, reducing the frequency of PCIe transactions

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the para-virtualization device frequently updates the Used Ring, then data submission accuracy is improved, but PCIe interface back-pressurization occurs

Engineering Contradiction:
Improvedata submission accuracyVSAvoidPCIe interface back-pressurization
Core Design Contradiction:
Measurement precisionVSObject-generated harmful factors

Solution Approach 1:

The patent combines multiple Used Ring updates into a single aggregated update operation. Instead of frequently updating the Used Ring for each individual data entry, the system aggregates multiple update operations into one consolidated update that transmits all pending data submission information in a single PCIe transaction, thereby reducing back-pressurization while maintaining submission accuracy

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent maintains continuous data processing by aggregating multiple updates and submitting them in batches. This continuous aggregation process ensures that data submission accuracy is maintained while reducing the frequency of PCIe transactions, as the system continuously accumulates updates and transmits them in consolidated batches rather than individually

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS12579089B2Data processing method, apparatus and system based on para-virtualization device
Publication Date: 2026.03.17 CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
  • US12579089B2 patent drawing
  • US12579089B2 patent drawing
  • US12579089B2 patent drawing

AI summary

A data processing method, apparatus and system based on a para-virtualization device are provided. The method comprises: acquiring a plurality of pieces of initial data which are stored in a completion queue of a para-virtualization device, wherein the plurality of pieces of initial data are used for representing description information of original data which has been processed by the para-virtualization device, but has not been submitted to a host; determining a plurality of pieces of first data, which meet a preset condition, among the plurality of pieces of initial data; performing an aggregation operation on the plurality of pieces of first data, so as to generate a first aggregation result; and sending to a memory of the host a direct memory access request that carries the first aggregation result.