IP Library Granted Patent US 10,884,974
Granted Patent B2
US 10,884,974 · App. 16/702,187 · Granted Jan 5, 2021

Flexible remote direct memory access

Inventors: Erez Izenberg (Tel Aviv, IL); Leah Shalev (Zichron Yaakov, IL); Nafea Bshara (San Jose, CA); Guy Nakibly (Kedumim, IL); Georgy Machulsky (San Jose, CA)
Assignee: Amazon Technologies, Inc.
G06F15/167G06F16/22H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,884,974
App. No.
16/702,187
Granted
Jan 5, 2021
Kind
B2
Abstract

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.

Claims (47)

1. An apparatus configured to process transactions for two or more different remote direct memory access (RDMA) protocols, the apparatus comprising:

a network interface;

a processing circuit configured to:

identify an RDMA protocol in which an RDMA packet received via the network interface is encoded, and

detect an RDMA command encoded in the RDMA packet;

a translation memory configured to generate control information by performing a lookup in memory using an address determined based on the identified RDMA protocol, the generated control information being used to translate the RDMA command into a generic RDMA command; and

the processing circuit being further configured to perform an RDMA operation specified by the RDMA command by performing the generic RDMA command.

2. The apparatus of claim 1 , wherein the processing circuit is further configured to perform the identification of the RDMA protocol in which the RDMA packet is encoded and the detection of the RDMA command encoded in the RDMA packet based on data extracted from one or more headers of the RDMA packet.

3. The apparatus of claim 1 , wherein the control information is generated by a table lookup performed with a protocol index indicating the identified RDMA protocol.

4. The apparatus of claim 1 , wherein the control information is generated by a table lookup performed with a field extracted from the RDMA packet.

5. The apparatus of claim 1 , wherein the processing circuit is further configured to determine a target location in a main memory for the RDMA operation.

6. The apparatus of claim 1 , wherein the apparatus is configured to perform RDMA transactions encoded in at least two of the RDMA protocols concurrently.

7. A method comprising:

with a remote direct memory access (RDMA) controller:

receiving an RDMA packet;

determining an RDMA protocol in which the RDMA packet is encoded;

translating an RDMA command encoded in the RDMA packet to a generic command, the generic command allowing the RDMA controller to support two or more RDMA protocols; and

performing an RDMA operation specified by the RDMA command by performing the generic command with the RDMA controller.

8. The method of claim 7 , wherein the determining comprises extracting data from a header field of the RDMA packet indexed by an offset and a size.

9. The method of claim 7 , further comprising, with the RDMA controller:

extracting a transaction identifier directly from a header of the RDMA packet; and

if the extracted transaction identifier matches a transaction identifier stored in an active transaction database, then accelerating the RDMA operation by bypassing a host coupled to the RDMA controller to perform the RDMA operation.

10. The method of claim 7 , further comprising, with the RDMA controller:

validating the RDMA operation by comparing context data stored in a transactional database to data in the RDMA packet.

11. The method of claim 7 ,

wherein performing the RDMA operation comprises a direct memory access that copies data from the RDMA packet to host memory without using a host processor.

12. The method of claim 7 ,

wherein the RDMA controller is configured to determine the RDMA protocol in which the RDMA packet is encoded by performing a table lookup with information encoded in a header of the RDMA packet.

13. The method of claim 7 ,

wherein the RDMA controller is configured to validate the RDMA packet by comparing context data stored in a transaction database to data in the RDMA packet.

14. The method of claim 7 , further comprising, with the RDMA controller:

translating the RDMA command specified in the RDMA packet to the generic command using a command field translation table.

15. One or more computer-readable storage devices or memory storing computer-readable instructions that, upon execution with an RDMA controller, cause the RDMA controller to perform the method of claim 7 .

16. An apparatus comprising:

a network adapter to receive a remote direct memory access (RDMA) packet via a computer network; and

an RDMA controller comprising:

means for translating an RDMA command encoded in the received RDMA packet to a generic command; and

means for performing an RDMA operation specified by the RDMA command by performing the generic command.

17. The apparatus of claim 16 , wherein the means for translating the RDMA command further comprise:

a field processing circuit situated to translate data encoded in the received RDMA packet according to a specific RDMA protocol to generic commands.

18. The apparatus of claim 16 , wherein the means for translating the RDMA command further comprise:

a translation table storing data used to perform the generic command.

19. The apparatus of claim 16 , further comprising:

means for identifying an RDMA protocol in which the RDMA packet is encoded is based on data extracted from a header of the RDMA packet.

20. The apparatus of claim 19 , wherein the means for translating the RDMA command further comprise:

means for generating control information by performing a lookup in memory using an address determined based on the identified RDMA protocol in which the RDMA packet is encoded; and

means for using the generated control information to determine the generic command.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2019
From: IZENBERG, EREZ; SHALEV, LEAH; BSHARA, NAFEA; NAKIBLY, GUY; MACHULSKY, GEORGY
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 051191/0890 →
Continuity (3)
Continuation 15164601 · May 25, 2016
Provisional Application 62182259 · Jun 19, 2015
Related Publication 20200151137A1 · May 14, 2020
Cited By (3)
US 12,393,548 US 12,411,799 US 12,438,945