Flexible RDMA Controller for Multi-Protocol CPU Bypass

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing RDMA technologies lack flexibility and efficiency in supporting multiple protocols and protocols developed after manufacture, leading to suboptimal performance and resource utilization.

Innovation Solution

A generic RDMA controller that supports multiple RDMA protocols by translating specific protocol-encoded data packets into generic operations, utilizing hardware accelerators to perform memory operations while bypassing CPU processes, and maintaining connection and transaction databases for efficient resource management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If processor-based RDMA implementations use firmware to decode packets, then protocol-specific functionality is achieved, but performance and configurability are limited

Engineering Contradiction:
Improveprotocol support flexibilityVSAvoidRDMA operation performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a universal RDMA controller that can handle multiple RDMA protocols (InfiniBand, RoCE, iWARP) through a single hardware device. The controller uses configurable logic that can be programmed to recognize and process different protocol types, allowing one device to perform the functions of multiple protocol-specific devices, thereby improving both adaptability and maintaining performance.

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

Solution Approach 2:

The RDMA controller employs dynamically reconfigurable logic that can be programmed at runtime to adapt to different protocol requirements. This dynamic configuration allows the controller to optimize its behavior for each protocol type while maintaining high performance, rather than being statically designed for a single protocol in firmware.

Inventive Principle:
Principle #15Dynamics

2Extent of automation

If hardware accelerators are used to perform memory operations, then CPU load is reduced, but device complexity increases

Engineering Contradiction:
ImproveCPU bypass capabilityVSAvoidRDMA controller structure
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The RDMA controller is segmented into distinct functional modules: a protocol identification module that detects the RDMA protocol type, a configuration module that programs the reconfigurable logic based on the detected protocol, and a memory operation module that executes the actual memory access. This segmentation allows each module to be optimized independently while working together to reduce CPU involvement.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary reconfigurable logic layer between the network interface and memory system. This intermediary is programmed based on the detected protocol type and acts as an intelligent mediator that automatically performs protocol-specific memory operations without CPU intervention, thereby reducing CPU load while managing the complexity through systematic design.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12393548B2Flexible remote direct memory access
Publication Date: 2025.08.19 AMAZON TECH INC
  • US12393548B2 patent drawing
  • US12393548B2 patent drawing
  • US12393548B2 patent drawing

AI summary

Apparatus and methods are disclosed herein for remote, direct memory access (RDMA) technology that enables direct memory access from one host computer memory to another host computer memory over a physical or virtual computer network according to a number of different RDMA protocols. In one example, a method includes receiving remote direct memory access (RDMA) packets via a network adapter, deriving a protocol index identifying an RDMA protocol used to encode data for an RDMA transaction associated with the RDMA packets, applying the protocol index to a generate RDMA commands from header information in at least one of the received RDMA packets, and performing an RDMA operation using the RDMA commands.