Address-less DMA Descriptor for Host Memory Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Direct Memory Access (DMA) in host computing systems experiences bottlenecks due to the high communication overhead required for memory descriptors, limiting data throughput and transfer rate, especially in cloud-computing environments where peripheral components use programmable logic devices like FPGAs for custom logic implementations.

Innovation Solution

Implementing a contiguous block of host memory for data transfers in both directions, eliminating the need for memory addresses in host-to-device descriptors and eliminating device-to-host descriptors altogether, and aligning data transfers with natural memory boundaries to reduce communication and complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional memory descriptors with memory addresses are used for DMA transfers, then data transfer accuracy is ensured, but communication overhead increases and data throughput decreases

Engineering Contradiction:
Improvedata throughputVSAvoidcommunication overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts and removes the memory address field from the host-to-device memory descriptor, keeping only the essential length information. This extraction reduces the descriptor size and communication overhead while the data movement engine maintains accurate data transfer using its own internal address tracking mechanisms.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The data movement engine is designed to self-manage memory addressing for host-to-device transfers by maintaining its own internal pointers and counters. It serves itself by tracking the current host memory address and automatically updating it during transfers, eliminating the need for the host system to provide detailed address information in descriptors.

Inventive Principle:
Principle #25Self-service

2Productivity

If device-to-host memory descriptors are eliminated, then communication overhead is reduced, but device control over memory transfers is simplified

Engineering Contradiction:
Improvedata transfer rateVSAvoiddescriptor management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The data movement engine self-manages device-to-host transfers by maintaining its own internal pointers and automatically generating memory descriptors when data is ready for transfer. This self-service approach eliminates the need for complex descriptor management protocols while preserving full device control over the transfer process.

Inventive Principle:
Principle #25Self-service

3Productivity

If contiguous memory blocks are used for data transfers, then data throughput is improved, but memory allocation complexity increases

Engineering Contradiction:
Improvepacket transfer rateVSAvoidmemory allocation logic
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The host system performs preliminary memory allocation by pre-allocating contiguous memory blocks for data transfers before actual data transfer operations begin. This preliminary action ensures that when transfers occur, the memory is already ready and contigous, improving throughput without requiring complex dynamic allocation logic during the transfer process itself.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11513986B1DMA engine that generates an address-less memory descriptor that does not include a memory address for communicating with integrated circuit device
Publication Date: 2022.11.29 AMAZON TECH INC
  • US11513986B1 patent drawing
  • US11513986B1 patent drawing
  • US11513986B1 patent drawing

AI summary

To improve data throughput and data transfer rate, a contiguous block of host memory can be allocated for data transfers between the host system and an integrated circuit device such as a peripheral component. By using a contiguous block of memory that acts as a circular buffer, the memory address field of memory descriptors can be eliminated because the host system only need to inform the data movement engine of the length of each data transfer. The data movement engine can maintain pointers to keep track of the memory address in the host memory to read from and write to. After each data transfer, the relevant pointer can be incremented by a value corresponding to the length indicated in the memory descriptor for the transfer. As such, it is not necessary for the host system to provide the data movement engine with the memory address of each transfer.