IOMMU Address Translation Preloading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory access remains a bottleneck in computing systems due to slower memory operations compared to other computing tasks, and direct memory access (DMA) introduces latency and security risks.

Innovation Solution

Incorporating an input-output memory management unit (IOMMU) with cache memory to preload address translation information directly into the IOMMU cache using MMIO registers, reducing the need for table walks and improving DMA performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If address translation information is stored in system memory and accessed during DMA operations, then memory capacity is sufficient, but access latency increases and performance decreases

Engineering Contradiction:
ImproveDMA access speedVSAvoidTable walk latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent preloads address translation information from system memory into the IOMMU cache memory before DMA operations occur. This preliminary action ensures that when DMA operations need address translation, the information is already available in fast cache memory, eliminating the need for time-consuming table walks during actual DMA operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a local cache memory within the IOMMU that stores address translation information locally rather than relying on distant system memory. This local storage significantly reduces access latency and improves DMA operation speed by keeping frequently accessed translation data close to the processing unit.

Inventive Principle:
Principle #3Local quality

2Reliability

If traditional DMA operations are used without IOMMU cache, then system complexity is lower, but security vulnerability to DMA attacks increases

Engineering Contradiction:
ImproveSecurity against DMA attacksVSAvoidIOMMU structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an IOMMU as an intermediary device between the DMA controller and system memory. The IOMMU performs address translation and validation operations, acting as a security gatekeeper that prevents unauthorized memory access while enabling legitimate DMA operations. This intermediary layer adds security functionality without significantly complicating the overall system architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If address translation information is preloaded into IOMMU cache, then DMA performance improves, but memory bandwidth consumption increases

Engineering Contradiction:
ImproveDMA operation throughputVSAvoidMemory bandwidth usage
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements selective preloading of address translation information into the IOMMU cache, loading only the portions of the page table that are likely to be needed for upcoming DMA operations. This partial preloading approach improves DMA performance while avoiding the excessive memory bandwidth consumption that would result from preloading entire page tables.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20250190351A1Address translation preloading
Publication Date: 2025.06.12 ADVANCED MICRO DEVICES INC
  • US20250190351A1 patent drawing
  • US20250190351A1 patent drawing
  • US20250190351A1 patent drawing

AI summary

A method of preloading address translation information directly into cache memory of an IOMMU includes storing the address translation information in a register set of memory management input/output registers of an input-output memory management unit and loading the address translation information into cache memory of the input-output memory management unit. The address translation information includes a virtual address and a corresponding physical address of system memory of a computing system. The address translation information is sent by software being executed by a processor of the computing system. The address translation information is received directly from the processor.