Patterned remote direct memory access (RDMA)

US12137141B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12137141-B2
Application numberUS-202217858097-A
CountryUS
Kind codeB2
Filing dateJul 6, 2022
Priority dateJul 6, 2022
Publication dateNov 5, 2024
Grant dateNov 5, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

The invention claimed is: 1. A network device, comprising: a first interface, configured to communicate at least with a first memory; a second interface, configured to communicate over a network with a peer network device coupled to a second memory; and circuitry, configured to (i) pre-register multiple patterns of offsets; (ii) receive a request to transfer data over the network between the first memory and the second memory, indicating a pattern of offsets from the pre-registered multiple patterns of offsets, to be accessed in the first memory or in the second memory, (ii) calculate the offsets indicated by the pattern, and (iii) transfer the data in accordance with the request, wherein the request specifies a memory key representing a memory space to be accessed using the pattern, and wherein the pattern indicated by the request is pre-associated with the memory key, in one or both of the network device and the peer network device, and wherein the request indicates the pattern by specifying the memory key, without further indication of the pattern. 2. The network device according to claim 1 , wherein the circuitry is configured to receive the request as a work-request via the first interface. 3. The network device according to claim 1 , wherein the circuitry is configured to receive the request as a command over the network from the peer network device. 4. The network device according to claim 1 , wherein each of the pre-registered multiple patterns of offsets comprises one of (i) a pattern that accesses a contiguous memory space, (ii) a pattern that accesses a non-contiguous memory space, and (iii) a strided pattern. 5. The network device according to claim 1 , wherein the request specifies multiple memory keys representing respective memory spaces to be accessed using the pattern. 6. The network device according to claim 1 , wherein the memory space represented by the memory key is one of a virtual memory space and a physical memory space. 7. The network device according to claim 1 , wherein, in response to receiving a re-association instruction, the circuitry is configured to associate the memory key with a different pattern. 8. The network device according to claim 1 , wherein the pattern is pre-associated with at least one additional memory key, in one or both of the network device and the peer network device. 9. The network device according to claim 1 , wherein the request specifies a starting virtual address or initial offset parameter for the pattern. 10. The network device according to claim 1 , wherein the pattern specifies the offsets using a nested representation that comprises at least one internal pattern. 11. The network device according to claim 1 , wherein the pattern specifies the offsets using an iterative representation that defines (i) a basic pattern to be iterated multiple times, (ii) a number of times the basic pattern is to be iterated, and (iii) an offset between successive iterations of the basic pattern. 12. The network device according to claim 1 , wherein the request is associated with a Remote Direct Memory Access (RDMA) Read, RDMA Write, RDMA Atomic or RDMA Send or RDMA Receive command. 13. The network device according to claim 1 , wherein the request is associated with a scatter or gather command. 14. The network device according to claim 1 , wherein the request is associated with an InfiniBand transaction. 15. The network device according to claim 1 , wherein the request is associated with a Remote Direct Memory Access (RDMA) over Converged Ethernet (ROCE) transaction. 16. The network device according to claim 1 , wherein the pattern is specified by a basic pattern and a number or size that the basic pattern is to be iterated. 17. The network device according to claim 1 , wherein the multiple patterns of offsets are pre-registered in both of the network device and the peer network device. 18. A method for data transfer, comprising: in a network device, communicating with a first memory and, over a network, with a peer network device coupled to a second memory; pre-registering multiple patterns of offsets; receiving in the network device a request to transfer data over the network between the first memory and the second memory, indicating a pattern of offsets from the pre-registered multiple patterns of offsets, to be accessed in the first memory or in the second memory; calculating in the network device, offsets indicated by the pattern, and transferring the data in accordance with the request, wherein the request specifies a memory key representing a memory space to be accessed using the pattern, and wherein the pattern indicated by the request is pre-associated with the memory key, in one or both of the network device and the peer network device, and wherein the request indicates the pattern by specifying the memory key, without further indication of the pattern. 19. The method according to claim 18 , wherein receiving the request comprises receiving the request as a work-request. 20. The method according to claim 18 , wherein receiving the request comprises receiving the request as a command over the network from the peer network device. 21. The method according to claim 18 , wherein each of the pre-registered multiple patterns of offsets comprises one of (i) a pattern that accesses a contiguous memory space, (ii) a pattern that accesses a non-contiguous memory space, and (iii) a strided pattern. 22. The method according to claim 18 , wherein the request specifies multiple memory keys representing respective memory spaces to be accessed using the pattern. 23. The method according to claim 18 , wherein the memory space represented by the memory key is one of a virtual memory space and a physical memory space. 24. The method according to claim 18 , and comprising, in response to receiving a re-association instruction, associating the memory key with a different pattern. 25. The method according to claim 18 , wherein the pattern is pre-associated with at least one additional memory key, in one or both of the network device and the peer network device. 26. The method according to claim 18 , wherein the request specifies a starting virtual address or initial offset parameter for the pattern. 27. The method according to claim 18 , wherein the pattern specifies the offsets using a nested representation that comprises at least one internal pattern. 28. The method according to claim 18 , wherein the pattern specifies the offsets using an iterative representation that defines (i) a basic pattern to be iterated multiple times, (ii) a number of times the basic pattern is to be iterated, and (iii) an offset between successive iterations of the basic pattern. 29. The method according to claim 18 , wherein the request is associated with a Remote Direct Memory Access (RDMA) Read, RDMA Write, RDMA Atomic or RDMA Send or RDMA Receive command. 30. The method according to claim 18 , wherein the request is associated with a scatter or gather command. 31. The method according to claim 18 , wherein the request is associated with an InfiniBand transaction. 32. The method according to claim 18 , wherein the request is associated with a Remote Direct Memory Access (RDMA) over Converged Ethernet (ROCE) transaction.

Assignees

Inventors

Classifications

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12137141B2 cover?
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…
Who is the assignee on this patent?
Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification H04L67/1097. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Nov 05 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).