DMA Address Translation for Unmapped Virtual Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face inefficiencies in performing direct memory access (DMA) and remote direct memory access (RDMA) operations, particularly when dealing with unmapped virtual addresses, leading to latency and memory management issues such as pinning, which allocates memory permanently or requires additional copy operations.

Innovation Solution

The method involves partitioning the address space into subsets, using an address translation table to identify addresses in a second address space, and writing data to either memory or a data storage area based on these determinations, with a pool of addresses in the storage area serving unmapped requests without CPU intervention, eliminating the need for additional buffering and reducing memory allocation overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory is pinned to handle unmapped virtual addresses in DMA operations, then reliability of memory access is improved, but memory consumption increases and memory allocation overhead increases

Engineering Contradiction:
Improvememory access reliabilityVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The address space is segmented into mapped and unmapped regions, with separate handling mechanisms. The unmapped address space is further divided into sub-regions that can be dynamically allocated to storage areas, allowing selective memory management without pinning entire memory regions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically allocates and deallocates storage areas in the unmapped address space based on actual DMA operation needs. Storage areas are created on-demand and removed when no longer needed, transforming static memory pinning into dynamic memory allocation that adapts to workload requirements.

Inventive Principle:
Principle #15Dynamics

2Reliability

If additional buffering is implemented to handle unmapped addresses, then reliability of data transfer is improved, but device complexity increases

Engineering Contradiction:
Improvedata transfer reliabilityVSAvoidbuffering complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The DMA device performs self-service by directly allocating storage areas in its own address space without external intervention. The device autonomously manages the creation, allocation, and cleanup of storage areas for unmapped addresses, eliminating the need for complex CPU-mediated buffering management.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The unmapped address space serves multiple functions: it acts as a pool for dynamic storage area allocation, a cache for frequently accessed data, and a buffer for temporary data retention. This multi-functional use of the same address space region reduces the need for separate buffering structures.

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

3Manufacturing precision

If CPU intervention is added to manage unmapped addresses, then manufacturing precision of address mapping is improved, but productivity decreases

Engineering Contradiction:
Improveaddress mapping precisionVSAvoidDMA operation throughput
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The DMA device autonomously manages address mapping for unmapped virtual addresses by directly allocating storage areas in its address space. This self-service mechanism eliminates CPU intervention entirely, maintaining high DMA throughput while achieving precise address mapping through hardware-level address translation and storage area management.

Inventive Principle:
Principle #25Self-service

4Reliability

If redundant swap operations are performed for unmapped addresses, then data integrity is improved, but loss of time increases

Engineering Contradiction:
Improvedata integrityVSAvoidoperation latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Storage areas are pre-allocated in the unmapped address space and prepared in advance for potential DMA operations. This preliminary preparation eliminates the need for time-consuming swap operations during actual data transfers, as storage areas are already ready to receive data directly without requiring intermediate swapping to mapped memory regions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12174751B2Method and system for direct memory access
Publication Date: 2024.12.24 HUAWEI TECH CO LTD
  • US12174751B2 patent drawing
  • US12174751B2 patent drawing
  • US12174751B2 patent drawing

AI summary

A computing system receives a data packet comprising data to be written to the computing system and address data comprising an address in a set of addresses of a first address space of the computing system. An address is determined in a second address space of the computing system identified with the address of the data packet and writing the data to the computing system on the basis of the determination. A first subset and a second subset of the set is identified and the first subset of addresses of the second address space is associated with a region of memory of the computing system and the second subset of addresses of the second address space is associated with a region of a data storage area.