IOMMU Address Translation Prefetching for DMA Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing direct memory access (DMA) systems for input/output (I/O) devices suffer from significant latency due to cache misses during address translation, particularly in virtualized environments, leading to reduced throughput and performance bottlenecks.

Innovation Solution

Implement address translation prefetching mechanisms in I/O memory management units (IOMMUs) and device-side caches to proactively populate translation caches, reducing the need for page walks and minimizing cache misses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If address translation is performed on-demand in IOMMU, then memory management correctness is ensured, but translation latency increases significantly due to cache misses and page walks

Engineering Contradiction:
Improveaddress translation latencyVSAvoidI/O device throughput
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent implements address translation prefetching where the IOMMU proactively translates virtual addresses to physical addresses before they are actually needed for DMA operations. When the IOMMU detects a virtual address being used by an I/O device, it prefetches the corresponding physical address translation and stores it in the translation cache, so that when the address is subsequently needed, the translation is already available, eliminating latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The IOMMU performs self-service by autonomously managing its own translation cache without requiring CPU intervention. The IOMMU monitors its own translation cache hits and misses, automatically initiates prefetching operations when misses are detected, and manages the translation cache contents independently, thereby reducing the performance bottleneck caused by CPU involvement in address translation.

Inventive Principle:
Principle #25Self-service

2Device complexity

If translation caches are kept small to reduce complexity, then device complexity is reduced, but cache miss rate increases leading to more page walks

Engineering Contradiction:
ImproveIOMMU cache structureVSAvoidpage walk time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

Instead of relying on a large translation cache to prevent misses, the patent uses prefetching to proactively load translations into the cache before they are needed. This allows the system to maintain a smaller, simpler cache structure while still achieving high hit rates, because the cache is continuously being pre-filled with likely-needed translations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the temporal parameter of cache utilization by introducing a time advance factor. Translations are loaded into the cache at time T-prefetch instead of waiting until time T-need, effectively changing when the cache is populated. This temporal shift allows smaller caches to achieve the same effectiveness as larger caches would provide under traditional on-demand loading.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If IOMMU manages all address translations centrally, then address translation consistency is maintained, but CPU performance is reduced due to translation bottlenecks

Engineering Contradiction:
Improveaddress translation consistencyVSAvoidCPU execution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The IOMMU performs self-service by autonomously managing its own translation cache without requiring CPU intervention. The IOMMU monitors its own translation cache hits and misses, automatically initiates prefetching operations when misses are detected, and manages the translation cache contents independently, thereby reducing the performance bottleneck caused by CPU involvement in address translation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The CPU sets up prefetching parameters and triggers prefetching operations in advance, allowing address translations to be prepared before they are actually needed for DMA operations. This preliminary action by the CPU enables the IOMMU to perform translations in the background without blocking CPU execution, maintaining both consistency and speed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250335370A1Address translation prefetching for input/output devices
Publication Date: 2025.10.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20250335370A1 patent drawing
  • US20250335370A1 patent drawing
  • US20250335370A1 patent drawing

AI summary

In one example of the present technology, an input/output memory management unit (IOMMU) of a computing device is configured to: receive a prefetch message including a virtual address from a central processing unit (CPU) core of a processor of the computing device; perform a page walk on the virtual address through a page table stored in a main memory of the computing device to obtain a prefetched translation of the virtual address to a physical address; and store the prefetched translation of the virtual address to the physical address in a translation lookaside buffer (TLB) of the IOMMU.