IP Library › Granted Patent US 11,080,225
Granted Patent B2
US 11,080,225 · App. 16/356,581 · Granted Aug 3, 2021

Peer direct mechanism for direct memory access across host devices

Inventors: Sagar Borikar (San Jose, CA); Anant Thakar (Los Altos, CA)
Assignee: CISCO TECHNOLOGY, INC.
G06F15/17331G06F13/128G06F13/28G06F13/404
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 11,080,225
App. No.
16/356,581
Granted
Aug 3, 2021
Kind
B2
Abstract

In one example, at least one peripheral interconnect switch obtains, from a first endpoint device, a message initiating a direct memory access data transfer between the first endpoint device and a second endpoint device. The message indicates an address assigned to the second endpoint device by a host device as a destination of the message. Based on the address assigned to the second endpoint device by the host device, the at least one peripheral interconnect switch identifies an address assigned to the second endpoint device by the at least one peripheral interconnect switch. In response to identifying the address assigned to the second endpoint device by the at least one peripheral interconnect switch, the at least one peripheral interconnect switch provides the message to the second endpoint device.

Claims (75)

1. A method comprising:

at at least one peripheral interconnect switch connected to a first host device, a second host device, a first endpoint device, and a second endpoint device, wherein the first host device hosts the first endpoint device and the second host device hosts the second endpoint device:

obtaining, from the second host device, a command to provide an indication that a direct memory access data transfer between the first endpoint device and the second endpoint device is complete;

providing the command to the second endpoint device;

obtaining, from the first endpoint device, a message initiating a direct memory access data transfer between the first endpoint device and the second endpoint device, wherein the message indicates an address assigned to the second endpoint device by the second host device as a destination of the message;

performing an address translation between based on the address assigned to the second endpoint device by the second host device, identifying an address assigned to the second endpoint device by the at least one peripheral interconnect switch based on an address mapping;

in response to identifying the address assigned to the second endpoint device by the at least one peripheral interconnect switch, providing the message to the second endpoint device;

providing, from the second endpoint device to the second host device, an indication that the direct memory access data transfer is complete; and

providing, from the second host device to the first host device, the indication that the direct memory access data transfer is complete.

2. The method of claim 1 , further comprising:

at the at least one peripheral interconnect switch:

obtaining, from the first host device, the address assigned to the second endpoint device by the second host device; and

providing, to the first endpoint device, the address assigned to the second endpoint device by the second host device.

3. The method of claim 2 , further comprising:

at the at least one peripheral interconnect switch:

obtaining, from the second host device, the address assigned to the second endpoint device by the second host device; and

providing, to the first host device, the address assigned to the second endpoint device by the second host device.

4. The method of claim 3 , further comprising:

at the at least one peripheral interconnect switch:

obtaining, from the first host device, a request to initiate the direct memory access data transfer; and

providing the request to the second host device.

5. The method of claim 1 , wherein:

obtaining the message includes obtaining the message at a first peripheral interconnect switch; and

performing the address translation includes performing the address translation between identifying the address assigned to the second endpoint device by the at least one peripheral interconnect switch includes identifying the address assigned to the second endpoint device by the at least one peripheral interconnect switch based on the address mapping at the first peripheral interconnect switch.

6. An apparatus comprising:

a communication interface configured to provide or obtain messages to or from a first host device, a second host device, a first endpoint device, and a second endpoint device, wherein the first host device hosts the first endpoint device and the second host device hosts the second endpoint device; and

one or more processors coupled to the communication interface, wherein the one or more processors are configured to:

obtain, from the second host device, a command to provide an indication that a direct memory access data transfer between the first endpoint device and the second endpoint device is complete;

provide the command to the second endpoint device;

obtain, from the first endpoint device, a message initiating a direct memory access data transfer between the first endpoint device and the second endpoint device, wherein the message indicates an address assigned to the second endpoint device by the second host device as a destination of the message;

perform an address translation between based on the address assigned to the second endpoint device by the second host device, identify an address assigned to the second endpoint device by the apparatus based on an address mapping;

in response to identifying the address assigned to the second endpoint device by the apparatus, provide the message to the second endpoint device;

provide, from the second endpoint device to the second host device, an indication that the direct memory access data transfer is complete; and

provide, from the second host device to the first host device, the indication that the direct memory access data transfer is complete.

7. The apparatus of claim 6 , wherein the one or more processors are further configured to:

obtain, from the first host device, the address assigned to the second endpoint device by the second host device; and

provide, to the first endpoint device, the address assigned to the second endpoint device by the second host device.

8. The apparatus of claim 7 , wherein the one or more processors are further configured to:

obtain, from the second host device, the address assigned to the second endpoint device by the second host device; and

provide, to the first host device, the address assigned to the second endpoint device by the second host device.

9. The apparatus of claim 8 , wherein the one or more processors are further configured to:

obtain, from the first host device, a request to initiate the direct memory access data transfer; and

provide the request to the second host device.

10. One or more non-transitory computer readable storage media encoded with instructions that, when executed by a processor of at least one peripheral interconnect switch connected to a first host device, a second host device, a first endpoint device, and a second endpoint device, wherein the first host device hosts the first endpoint device and the second host device hosts the second endpoint device, cause the processor to:

obtain, from the second host device, a command to provide an indication that a direct memory access data transfer between the first endpoint device and the second endpoint device is complete;

provide the command to the second endpoint device;

obtain, from the first endpoint device, a message initiating a direct memory access data transfer between the first endpoint device and the second endpoint device, wherein the message indicates an address assigned to the second endpoint device by the second host device as a destination of the message;

perform an address translation between based on the address assigned to the second endpoint device by the second host device, identify an address assigned to the second endpoint device by the at least one peripheral interconnect switch based on an address mapping;

in response to identifying the address assigned to the second endpoint device by the at least one peripheral interconnect switch, provide the message to the second endpoint device;

provide, from the second endpoint device to the second host device, an indication that the direct memory access data transfer is complete; and

provide, from the second host device to the first host device, the indication that the direct memory access data transfer is complete.

11. The one or more non-transitory computer readable storage media of claim 10 , wherein the instructions further cause the processor to:

obtain, from the first host device, the address assigned to the second endpoint device by the second host device; and

provide, to the first endpoint device, the address assigned to the second endpoint device by the second host device.

12. The one or more non-transitory computer readable storage media of claim 11 , wherein the instructions further cause the processor to:

obtain, from the second host device, the address assigned to the second endpoint device by the second host device; and

provide, to the first host device, the address assigned to the second endpoint device by the second host device.

13. The one or more non-transitory computer readable storage media of claim 12 , wherein the instructions further cause the processor to:

obtain, from the first host device, a request to initiate the direct memory access data transfer; and

provide the request to the second host device.

14. The method of claim 5 , wherein providing the message to the second endpoint device includes:

at the first peripheral interconnect switch, providing the message to a second peripheral interconnect switch; and

at the second peripheral interconnect switch, providing the message to the second endpoint device.

15. The method of claim 1 , further comprising:

obtaining, from the second host device, a command to provide the indication that the direct memory access data transfer is complete.

16. The method of claim 15 , further comprising:

providing the command to the second endpoint device.

17. The apparatus of claim 6 , wherein the one or more processors are further configured to:

obtain, from the second host device, a command to provide the indication that the direct memory access data transfer is complete.

18. The apparatus of claim 17 , wherein the one or more processors are further configured to:

provide the command to the second endpoint device.

19. The one or more non-transitory computer readable storage media of claim 10 , wherein the instructions further cause the processor to:

obtain, from the second host device, a command to provide the indication that the direct memory access data transfer is complete.

20. The one or more non-transitory computer readable storage media of claim 19 , wherein the instructions further cause the processor to:

provide the command to the second endpoint device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2019
From: BORIKAR, SAGAR; THAKAR, ANANT
To: CISCO TECHNOLOGY, INC.
Reel/Frame 048625/0086 →
Continuity (1)
Related Publication 20200301873A1 · Sep 24, 2020
Cited By (6)
US 12,547,543 US 12,726,430 US 12,739,192 US 12,739,193 US 12,739,194 US 12,739,195