IOMMU Multi-Memory Translation Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing devices face inefficiencies in virtual address to physical address translations due to the slowness of page table walks and suboptimal performance from one-size-fits-all TLB designs, which can lead to less than optimal performance for various peripheral arrangements.

Innovation Solution

The use of multiple memory elements in an IOMMU, such as SRAM and PCM, allows for optimized storage of virtual address to physical address translation information, enabling efficient and balanced operation by selecting the most suitable memory elements based on performance factors, and disabling unused elements to conserve resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If a TLB is implemented using a specific type of memory (e.g., SRAM), then the translation speed is improved, but the adaptability to different peripheral arrangements deteriorates

Engineering Contradiction:
Improvetranslation speedVSAvoidadaptability to different peripheral arrangements
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The IOMMU is designed to support multiple memory element types (SRAM, DRAM, PCM, Flash) within the same device, allowing a single IOMMU implementation to adapt to different peripheral arrangements and performance requirements without requiring multiple specialized designs

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If page table walks are performed to ensure accurate virtual address to physical address translation, then the accuracy is improved, but the translation time increases

Engineering Contradiction:
Improvetranslation accuracyVSAvoidtranslation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

Translation results are pre-calculated and stored in persistent memory elements during system operation or idle periods. When a translation is needed, the IOMMU can retrieve pre-computed translations from persistent memory, avoiding the need to perform complete page table walks at the moment of translation request

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses different memory element types with different characteristics (SRAM for speed, DRAM for capacity, PCM for persistence, Flash for density) in different locations within the IOMMU architecture, allowing each memory type to be used for its optimal purpose in the translation process

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3433742B1Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations
Publication Date: 2023.05.03 ADVANCED MICRO DEVICES INC
  • EP3433742B1 patent drawingFigure 1~2
  • EP3433742B1 patent drawingFigure 3~4

AI summary

The described embodiments include an input-output memory management unit (IOMMU) with two or more memory elements and a controller. The controller is configured to select, based on one or more factors, one or more selected memory elements from among the two or more memory elements for performing virtual address to physical address translations in the IOMMU. The controller then performs the virtual address to physical address translations using the one or more selected memory elements.