PCI Device Address Mapping via IOMMU Contiguous Space

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional IT systems face resource consumption and performance issues due to centralized error handling and double translation in IOMMU implementations, leading to reduced efficiency and limited resources for other applications.

Innovation Solution

A data processing system with a main storage, IOMMU, and PCI device that employs a mapper for contiguous PCI address space mapping, reducing resource consumption and enabling efficient error handling within the PCI device, thereby improving system performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If centralized error handling is implemented in the IOMMU, then system-wide error management is achieved, but resource consumption increases and performance decreases

Engineering Contradiction:
Improveerror handling capabilityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides error handling functionality into two segments: local error handling within the PCI device for common errors, and centralized IOMMU error handling for critical system-wide errors. This segmentation allows most errors to be handled locally without impacting overall system performance, while maintaining reliable centralized management for important errors.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a mapping unit as an intermediary component between the PCI device and IOMMU. This mapping unit handles address translation and local error detection, filtering out many errors before they reach the IOMMU, thus reducing the IOMMU's error handling burden and improving system performance while maintaining reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If double translation is implemented (device address to PCI address, then PCI address to physical memory address), then address mapping flexibility is improved, but resource consumption increases

Engineering Contradiction:
Improveaddress mapping flexibilityVSAvoidresource consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extracts the address translation functionality from the IOMMU and places it directly in the PCI device's mapping unit. This allows the PCI device to perform device address to PCI address translation locally, eliminating the need for double translation through the IOMMU and reducing resource consumption while maintaining address mapping flexibility.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the dimension of address translation by implementing it at the device level rather than solely at the system level. The mapping unit within the PCI device creates a local address translation layer, transforming the single centralized translation dimension into multiple distributed translation dimensions, thereby reducing resource consumption while preserving flexibility.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If IOMMU is implemented in each PCI device, then translation efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvetranslation efficiencyVSAvoidPCI device complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a mapping unit within the PCI device that performs multiple functions: address translation from device addresses to PCI addresses, and local error detection. This multi-functional approach improves translation efficiency by eliminating the need for double translation, while the integrated design prevents excessive increase in device complexity by combining functions rather than adding separate components.

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

Data Source

PatentUS9785597B2Mapping device addresses to physical memory addresses
Publication Date: 2017.10.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9785597B2 patent drawing
  • US9785597B2 patent drawing
  • US9785597B2 patent drawing

AI summary

A data processing system includes a main storage, an input/output memory management unit (IOMMU) coupled to the main storage, a peripheral component interconnect (PCI) device coupled to the IOMMU, and a mapper. The system is configured to allocate an amount of physical memory in the main storage and the IOMMU is configured to provide access to the main storage and to map a PCI address from the PCI device to a physical memory address within the main storage. The mapper is configured to perform a mapping between the allocated amount of physical memory of the main storage and a contiguous PCI address space. The IOMMU is further configured to translate PCI addresses of the contiguous PCI address space to the physical memory address within the main storage.