Multi-addressing mode for DMA and non-sequential read and write patterns
US-11669464-B1 · Jun 6, 2023 · US
US2024015217A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2024015217-A1 |
| Application number | US-202217858097-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jul 6, 2022 |
| Priority date | Jul 6, 2022 |
| Publication date | Jan 11, 2024 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
Opening claim text (preview).
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) 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, (ii) calculate the offsets indicated by the pattern, and (iii) transfer the data in accordance with the request, wherein the pattern is specified by a basic pattern and a number or size that the basic pattern is to be iterated. 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 the pattern 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 further specifies a memory key representing a memory space to be accessed using the pattern. 6 . The network device according to claim 5 , wherein the request specifies multiple memory keys representing respective memory spaces to be accessed using the pattern. 7 . The network device according to claim 5 , wherein the memory space represented by the memory key is one of a virtual memory space and a physical memory space. 8 . The network device according to claim 5 , wherein the pattern and the memory key are pre-registered, and also pre-associated with one another, in one or both of the network device and the peer network device, and wherein the request specifies the memory key but not the pattern. 9 . The network device according to claim 8 , wherein, in response to receiving a re-association instruction, the circuitry is configured to associate the memory key with a different pattern. 10 . The network device according to claim 8 , 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. 11 . The network device according to claim 5 , wherein, in one or both of the network device and the peer network device, the pattern and the memory key are pre-registered but not associated with one another, and wherein the request specifies the memory key and an identifier of the pattern. 12 . The network device according to claim 5 , wherein the memory key is pre-registered in one or both of the network device and the peer network device, and wherein the request specifies the memory key and a description of the pattern. 13 . The network device according to claim 1 , wherein the request specifies a starting virtual address or initial offset parameter for the pattern. 14 . The network device according to claim 1 , wherein the pattern specifies the offsets using a nested representation that comprises at least one internal pattern. 15 . 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. 16 . 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. 17 . The network device according to claim 1 , wherein the request is associated with a scatter or gather command. 18 . The network device according to claim 1 , wherein the request is associated with an InfiniBand transaction. 19 . The network device according to claim 1 , wherein the request is associated with a Remote Direct Memory Access (RDMA) over Converged Ethernet (RoCE) transaction. 20 . 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; receiving in the network device 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; calculating in the network device, offsets indicated by the pattern, and transferring the data in accordance with the request, wherein the pattern is specified by a basic pattern and a number or size that the basic pattern is to be iterated. 21 . The method according to claim 20 , wherein receiving the request comprises receiving the request as a work-request. 22 . The method according to claim 20 , wherein receiving the request comprises receiving the request as a command over the network from the peer network device. 23 . The method according to claim 20 , wherein the pattern 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. 24 . The method according to claim 20 , wherein the request further specifies a memory key representing a memory space to be accessed using the pattern. 25 . The method according to claim 24 , wherein the request specifies multiple memory keys representing respective memory spaces to be accessed using the pattern. 26 . The method according to claim 24 , wherein the memory space represented by the memory key is one of a virtual memory space and a physical memory space. 27 . The method according to claim 24 , wherein the pattern and the memory key are pre-registered, and also pre-associated with one another, in one or both of the network device and the peer network device, and wherein the request specifies the memory key but not the pattern. 28 . The method according to claim 27 , and comprising, in response to receiving a re-association instruction, associating the memory key with a different pattern. 29 . The method according to claim 27 , 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. 30 . The method according to claim 24 , wherein, in one or both of the network device and the peer network device, the pattern and the memory key are pre-registered but not associated with one another, and wherein the request specifies the memory key and an identifier of the pattern. 31 . The method according to claim 24 , wherein the memory key is pre-registered in one or both of the network device and the peer network device, and wherein the request specifies the memory key and a description of the pattern. 32 . The method according to claim 20 , wherein the request specifies a starting virtual address or initial offset parameter for the pattern. 33 . The method according to claim 20 , wherein the pattern specifies the offsets using a nested representation that comprises at least one internal pattern. 34 . The method according to cla
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.