IP Library Granted Patent US 12689595
Granted Patent B2
US 12689595 · App. 18/394,731 · Granted Jul 21, 2026

Systems and methods for scalable communications

Inventors: Ripduman Sohan (San Jose, CA); David Riddoch (Cambridge, GB); Steven Pope (Cambridge, GB)
Assignee: Xilinx, Inc.
H04L47/76H04L67/1097
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 12689595
App. No.
18/394,731
Granted
Jul 21, 2026
Kind
B2
Abstract

Described herein are systems and methods for scalable communications. A circuit can receive a request from an application to communicate with a destination over a network. The circuit can identify the destination from information included in the request. In a first case that resources have been allocated for communicating with the destination identified from the request, the circuit can communicate data to the destination over the network using the resources that have been allocated. In a second case that resources have not been allocated for communicating with the destination identified from the request, the circuit can allocate resources for communicating the data with the destination. The circuit can communicate the data to the destination over the network using the resources that have been allocated.

Claims (57)

1 . A communication method, performed with at least one circuit, comprising:

receiving a request for an application, running on a first device, to communicate data over a network to a destination storage coupled to a second device, the request including identification information about the second device;

in response to resources having been allocated for communicating with the destination storage, using the resources to communicate the data from the first device over the network to the destination storage coupled to the second device; and

in response to resources having not been allocated for communicating with the destination storage:

reallocating, for communicating with the destination storage, resources allocated for communicating with another destination storage; and

communicating the data to the destination storage over the network using the resources that have been reallocated.

2 . The method of claim 1 , wherein:

the receiving comprises receiving the data to be communicated from the application to the destination storage and information about the destination storage.

3 . The method of claim 1 , wherein:

the request is a request to communicate the data to the destination storage using Remote Direct Memory Access (RDMA).

4 . The method of claim 3 , wherein:

the resources are for maintaining at least one RDMA queue pair for communicating with the destination storage.

5 . The method of claim 3 , wherein the reallocating comprises:

reallocating, for communicating with the destination storage, an RDMA queue of an RDMA queue pair that was, prior to the reallocating, allocated for communicating via RDMA with the another destination storage.

6 . The method of claim 1 , further comprising:

after transmitting the data to the destination storage, receiving, from the destination storage, a response comprising a response identifier;

in response to a request identifier of the request matching the response identifier, maintaining the allocation of the resources for communicating with the destination storage over the network; and

in response to the request identifier not matching the response identifier, deallocating the resources for communicating with the destination storage.

7 . A communication method, performed with at least one circuit, comprising:

allocating resources for an application to receive data via Remote Direct Memory Access (RDMA) from a sender over a network;

initiating a timer corresponding to receipt of the data via RDMA from the sender over the network; and

in response to expiration of the timer, deallocating the resources allocated for the application to receive the data via RDMA from the sender over the network.

8 . The method of claim 7 , further comprising:

resetting the timer responsive to receipt of further data via RDMA from the sender over the network.

9 . The method of claim 7 , wherein:

the allocating comprises allocating an RDMA queue pair for communicating with the sender over the network using RDMA.

10 . The method of claim 7 , wherein:

the deallocating comprises disconnecting an RDMA connection with the sender.

11 . The method of claim 7 , wherein:

after allocating the resources for the application, receiving, from the sender, a request to deallocate the resources;

in response to a request identifier matching a resource identifier, deallocating the resources for communicating with the sender; and

in response to the request identifier not matching the resource identifier, maintaining the resources for the application to receive data from the sender.

12 . A system comprising:

at least one first circuit configured to:

receiving a request for an application, running on a first device, to communicate over a network to a destination storage coupled to a second device, the request including identification information about the second device;

in response to resources having been allocated for communicating with the destination storage, using the resources to communicate data from the first device over the network to the destination storage coupled to the second device; and

in response to resources having not been allocated for communicating with the destination storage,

reallocate, for communicating with the destination storage, resources allocated for communicating with another destination storage; and

communicating the data to the destination storage over the network using the resources that have been reallocated.

13 . The system of claim 12 , wherein the at least one first circuit is configured to receive the request at least in part by receiving the data to be communicated from the application to the destination storage and information indicating the destination storage.

14 . The system of claim 12 , wherein the request is a request to communicate the data to the destination storage using Remote Direct Memory Access (RDMA).

15 . The system of claim 14 , wherein:

the resources are for maintaining at least one queue of an RDMA queue pair for communicating with the destination storage.

16 . The system of claim 14 , wherein the at least one first circuit is configured to reallocate, for communicating with the destination storage, the resources allocated for communicating with another destination storage at least in part by:

reallocating, for communicating with the destination storage, an RDMA queue that was, prior to the reallocating, allocated for communicating via RDMA with the another destination storage.

17 . The system of claim 12 , wherein:

the application is a first application,

the resources are a first set of resources, and

the system further comprises at least one second circuit configured to:

allocate a second set of resources for a second application associated with the at least one second circuit to receive the data via Remote Direct Memory Access (RDMA) from a sender over the network;

initiate a timer corresponding to receipt of the data via RDMA from the first application over the network; and

in response to expiration of the timer, deallocate the resources for receiving the data via the RDMA from the first application over the network.

18 . The system of claim 17 , wherein the at least one second circuit is further configured to:

reset the timer responsive to the receipt of the data via RDMA over the network.

19 . The system of claim 17 , wherein the at least one second circuit is further configured to:

maintain at least one queue or an RDMA queue pair.

20 . The system of claim 17 , wherein the at least one second circuit is configured to deallocate the resources at least in part by disconnecting an RDMA connection with the sender.