IOMMU Direct Memory Access for CPU-GPU Data Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face challenges in efficiently sharing data between multiple processors due to constrained programming environments, memory latency, power consumption, and separate memory systems, which hinder the fluid combination of CPUs and GPUs for general computation tasks.

Innovation Solution

The implementation of an IOMMU (Input/Output Memory Management Unit) that allows direct access to memory by I/O devices without copying data into local memory, using pointers to manage memory and resources efficiently, enabling unified programming and execution environments for CPUs and APDs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If data is copied into local I/O device memory for manipulation, then the I/O device can perform operations on the data, but memory latency and power consumption increase due to the copy operations

Engineering Contradiction:
Improvedata manipulation capabilityVSAvoidpower consumption
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The patent extracts the data copying step from the traditional data manipulation workflow. Instead of copying data into local I/O device memory, the system allows the I/O device to directly access and manipulate data in system memory through the IOMMU, eliminating the unnecessary copy operation and reducing power consumption while maintaining manipulation capability

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The IOMMU acts as an intermediary that enables direct memory access by translating addresses and managing memory resources. This intermediary mechanism allows I/O devices to access system memory without traditional copy operations, resolving the contradiction between operational ease and energy efficiency

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If separate memory systems are used for CPU and GPU, then each processor has dedicated memory access, but overhead increases and resource sharing becomes inefficient

Engineering Contradiction:
Improvememory access independenceVSAvoidmemory system overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the memory systems of CPU and GPU into a unified memory space managed by the IOMMU. This consolidation allows both processors to access the same physical memory without isolation overhead, reducing system complexity while maintaining independent access capabilities through address translation and protection mechanisms

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The IOMMU provides universal memory management functionality that serves both CPU and GPU access requirements. This multi-functional approach enables a single memory system to handle diverse access patterns from different processors, eliminating the need for separate dedicated memory systems and reducing overall overhead

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

3Adaptability or versatility

If chip to chip interfaces are used for memory access, then separate processors can communicate, but memory latency increases

Engineering Contradiction:
Improveprocessor communication capabilityVSAvoidmemory access speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The IOMMU serves as an intermediary that enables efficient memory access between processors by managing address translation and memory resources centrally. This eliminates the need for direct chip-to-chip interfaces for memory access, reducing latency while maintaining versatile communication capabilities through a unified memory architecture

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8719464B2Efficient memory and resource management
Publication Date: 2014.05.06 ADVANCED MICRO DEVICES INC
  • US8719464B2 patent drawing
  • US8719464B2 patent drawing
  • US8719464B2 patent drawing

AI summary

The present system enables passing a pointer, associated with accessing data in a memory, to an input/output (I/O) device via an input/output memory management unit (IOMMU). The I/O device accesses the data in the memory via the IOMMU without copying the data into a local I/O device memory. The I/O device can perform an operation on the data in the memory based on the pointer, such that I/O device accesses the memory without expensive copies.