IOMMU Shared Memory Accelerator Invocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As data centers process increasingly large amounts of information, the numerically intensive operations burden general-purpose CPUs, leading to reduced performance and increased power consumption, as they are not optimized for infrastructure functions like encryption, compression, and network processing.

Innovation Solution

Offloading these operations to specialized accelerators, such as ASICs or FPGAs, integrated within a hardware platform, which perform infrastructure functions like encryption, compression, and packet processing, using an IOMMU for virtual-to-physical address translation, allowing shared memory access and reducing the need for data movement and address translation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If general-purpose CPUs are used to process numerically intensive operations, then versatility and adaptability are maintained, but processing speed and power efficiency deteriorate

Engineering Contradiction:
ImproveCPU versatilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system segments processing tasks by separating general-purpose CPU functions from specialized accelerator functions. The CPU handles control and coordination while accelerators handle numerically intensive operations, allowing each component to operate at optimal performance levels for its specific function type.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An IOMMU (I/O Memory Management Unit) is introduced as an intermediary component to manage memory address translation between the CPU and accelerators. This mediator enables efficient data sharing and reduces the overhead of direct CPU involvement in memory management for accelerator operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If data is shared between CPU and accelerator through traditional memory access methods, then data availability is ensured, but processing time increases due to address translation overhead

Engineering Contradiction:
Improvedata accessibilityVSAvoidprocessing time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The IOMMU acts as an intermediary that handles virtual-to-physical address translation for accelerator memory accesses. This allows accelerators to access shared memory using virtual addresses without requiring CPU intervention for each translation operation, significantly reducing processing time while maintaining data accessibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system pre-configures the IOMMU with address translation mappings before accelerator operations begin. This preliminary setup of translation tables allows accelerators to immediately access shared memory with minimal overhead during actual processing operations.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If specialized accelerators are used for infrastructure functions, then processing efficiency and power consumption improve, but system complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The IOMMU provides universal memory management capabilities that serve both CPU and accelerator operations. This multi-functional component handles address translation for various types of devices, reducing the need for separate management mechanisms for each accelerator and thereby limiting the increase in system complexity.

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

Data Source

PatentUS20230236993A1Shared memory accelerator invocation
Publication Date: 2023.07.27 INTEL CORP
  • US20230236993A1 patent drawing
  • US20230236993A1 patent drawing
  • US20230236993A1 patent drawing

AI summary

An apparatus is described. The apparatus includes a memory management unit. The memory management unit is to receive a memory access request from an accelerator, wherein the memory access request includes a virtual address of a payload provided by an application that invokes the accelerator to perform a function on the payload, wherein. The memory access request also includes an identifier of the application's CPU process. The memory management unit is to translate the virtual address to a physical address to fetch the payload from a location allocated to the application within a memory.