IOMMU Address Translation Request Reordering for Resource Fairness

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In highly integrated System on Chip (SoC) environments, independent address translation requests from I/O devices can lead to resource competition and denial-of-service attacks, as one high-bandwidth device can starve others of address translation services, necessitating a more efficient allocation of IOMMU resources.

Innovation Solution

The IOMMU reorders and allocates address translation requests based on policies associated with each I/O device, using quality-of-service policies and hardware resources, such as level one translation lookaside buffers and page table walkers, to ensure fair distribution and prevent resource overloading.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the IOMMU services address translation requests from multiple I/O devices without prioritization, then all devices can access memory, but high-bandwidth devices can starve other devices of address translation services

Engineering Contradiction:
Improveaddress translation throughputVSAvoidservice availability for I/O devices
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the IOMMU's address translation resources into multiple priority queues (high priority and low priority). This segmentation allows the system to differentiate between critical and non-critical address translation requests, ensuring that high-priority devices receive timely service while preventing any single device from monopolizing all resources. The segmented queue structure directly resolves the contradiction by maintaining both high throughput for bandwidth-intensive devices and reliable service availability for all devices.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by assigning different service qualities to different I/O devices based on their priority levels. High-priority devices receive preferential treatment with dedicated high-priority queue access and guaranteed service, while low-priority devices receive standard service. This localized quality differentiation ensures that critical devices maintain reliable service availability while the overall system achieves high productivity through efficient resource allocation to bandwidth-intensive operations.

Inventive Principle:
Principle #3Local quality

2Productivity

If the IOMMU processes all address translation requests in a shared queue, then resource utilization is maximized, but malicious software can mount denial-of-service attacks by flooding the IOMMU

Engineering Contradiction:
ImproveIOMMU resource utilizationVSAvoiddenial-of-service attack vulnerability
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent implements preliminary action by establishing priority queues and service policies before address translation requests are processed. The system pre-configures high-priority and low-priority queues, assigns devices to appropriate priority levels, and sets up service guarantees in advance. This preliminary structuring prevents denial-of-service attacks by ensuring that even if malicious software generates excessive requests, the IOMMU can prioritize legitimate high-priority requests and maintain service availability, while still utilizing resources efficiently through the pre-established queue structure.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the IOMMU allocates hardware resources dynamically based on device needs, then performance is optimized, but resource allocation complexity increases

Engineering Contradiction:
Improveaddress translation performanceVSAvoidresource allocation mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies dynamics by implementing a flexible priority-based resource allocation mechanism that can adapt to different device needs. The system dynamically assigns address translation requests to high-priority or low-priority queues based on device attributes and current system conditions. This dynamic allocation optimizes performance by directing resources to bandwidth-intensive operations when needed while maintaining simplicity through clear priority-based rules, avoiding the need for complex allocation algorithms.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11144473B2Quality of service for input/output memory management unit
Publication Date: 2021.10.12 ADVANCED MICRO DEVICES INC
  • US11144473B2 patent drawing
  • US11144473B2 patent drawing
  • US11144473B2 patent drawing

AI summary

A data processing system includes a memory, a group of input/output (I/O) devices, an input/output memory management unit (IOMMU). The IOMMU is connected to the memory and adapted to allocate a hardware resource from among a group of hardware resources to receive an address translation request for a memory access from an I/O device. The IOMMU detects address translation requests from the plurality of I/O devices. The IOMMU reorders the address translation requests such that an order of dispatching an address translation request is based on a policy associated with the I/O device that is requesting the memory access. The IOMMU selectively allocates a hardware resource to the input/output device, based on the policy that is associated with the I/O device in response to the reordering.