Patterned RDMA Network Device for Non-Contiguous Memory Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data transfer methods using Direct Memory Access (DMA) and Remote Direct Memory Access (RDMA) are inefficient when dealing with non-contiguous memory spaces, as they require complex pattern specifications for each transaction, leading to high memory and computational overhead.

Innovation Solution

The implementation of a network device with circuitry that receives requests to transfer data between memories using pre-registered and pre-associated patterns and memory keys, allowing for efficient transfer of data across networks using RDMA or locally using DMA, with techniques such as pattern-key pre-association, ad-hoc pattern-key association, and ad-hoc pattern definition.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If complex pattern specifications are used for each transaction to handle non-contiguous memory spaces, then data transfer capability is improved, but memory overhead and computational overhead increase

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidmemory overhead and computational overhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal pattern specification mechanism where a single pattern description can be applied to multiple memory regions through different memory keys. Instead of having separate complex specifications for each memory region, the system uses one pattern that works across multiple regions, reducing both memory overhead and computational complexity while maintaining full adaptability for handling non-contiguous memory spaces.

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

Solution Approach 2:

The patent performs preliminary action by pre-registering patterns and pre-establishing their associations with multiple memory keys before actual data transfer operations. This upfront preparation allows the system to handle non-contiguous memory accesses efficiently during runtime without repeatedly computing complex patterns, thereby reducing computational overhead while maintaining versatile data transfer capability.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If separate pattern specifications are created for each memory space, then precise memory access control is improved, but memory footprint increases

Engineering Contradiction:
Improvememory access control precisionVSAvoidmemory footprint
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent makes the pattern specification universal by allowing a single registered pattern to be associated with multiple memory keys, each representing different memory spaces. This eliminates the need to store separate pattern specifications for each memory region, significantly reducing memory footprint while preserving precise memory access control through the memory key mechanism that distinguishes different address spaces.

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

Solution Approach 2:

The patent merges the storage of pattern specifications by creating a shared pattern registry where multiple memory keys can reference the same pattern. Instead of duplicating pattern data for each memory space, the system combines them into a single shared structure, reducing overall memory footprint while maintaining the ability to precisely control access to different memory regions through key-based identification.

Inventive Principle:
Principle #5Merging (Combining)

3Manufacturing precision

If detailed pattern descriptions are included in each transaction, then transfer accuracy for non-contiguous memory is improved, but computational overhead increases

Engineering Contradiction:
Improvetransfer accuracyVSAvoidcomputational overhead
Core Design Contradiction:
Manufacturing precisionVSPower

Solution Approach 1:

The patent performs preliminary action by pre-registering detailed pattern descriptions and validating their correctness before actual data transfer operations. During runtime transactions, the system only needs to reference the pre-registered pattern by identifier and apply it to the specified memory key, eliminating the need to reprocess detailed pattern descriptions for each transaction. This maintains transfer accuracy for non-contiguous memory while significantly reducing computational overhead during actual data transfer operations.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If multiple separate RDMA operations are used to transfer data across different memory regions, then data transfer completeness is improved, but transfer time increases

Engineering Contradiction:
Improvedata transfer completenessVSAvoidtransfer time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges multiple separate RDMA operations into a single unified operation by enabling a single pattern specification to cover multiple memory regions through its association with different memory keys. Instead of initiating separate RDMA transactions for each memory region, the system can handle multiple regions in one operation, maintaining complete data transfer while reducing the time required by eliminating the overhead of multiple transaction initiations and completions.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS12137141B2Patterned remote direct memory access (RDMA)
Publication Date: 2024.11.05 MELLANOX TECHNOLOGIES LTD(IL)
  • US12137141B2 patent drawing
  • US12137141B2 patent drawing
  • US12137141B2 patent drawing

AI summary

A network device includes a first interface, a second interface and circuitry. The first interface is configured to communicate at least with a first memory. The second interface is configured to communicate over a network with a peer network device coupled to a second memory. The circuitry is configured to (i) receive a request to transfer data over the network between the first memory and the second memory in accordance with a pattern of offsets to be accessed in the first memory or in the second memory, and (ii) transfer the data in accordance with the request.