Memory Bus Protocol To Enable Clustering Between Nodes Of Distinct Physical Domain Address Spaces
First Claim
1. A computer system comprising:
- a plurality of computing nodes,wherein each of the computing nodes of the plurality of computing nodes includes a coprocessor and a memory coupled to the coprocessor, andwherein each memory resides in a separate and distinct physical domain; and
a plurality of point-to-point physical communications links, wherein one or more communications links of the plurality of links is coupled between each pair of nodes in the plurality of nodes, wherein each coprocessor in a node is coupled to the one or more communications links to transfer data over the at least one communications link, andwherein each coprocessor is configured;
to transfer data between the memory coupled to the coprocessor and the memory of another node to which the coprocessor is coupled by the one or more communications link using a certificate that grants access to a portion of the memory in the other node, orto transfer data between two other nodes in the cluster to which the coprocessor is coupled by the one or more communications links using a first certificate that grants access rights to a portion of memory in the first of the two other nodes and a second certificate that grants access rights to a portion of memory in the second of the two other nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for transferring data and messages between nodes in a cluster is disclosed. Each node in the cluster is a separate physical domain but is connected to other nodes in the cluster through point-to-point high speed links. Each side of a link is coupled to a coprocessor which facilitates the movement of data between and among the nodes. Because each physical domain is separate from any other domain, the coprocessor in a physical domain uses a certificate, called and RKey, to obtain permission to transfer data to another physical domain. When an RKey is received from another physical domain, the coprocessor in the receiving domain validates the key and obtains the physical addresses associated with the key so that it can provide or accept the remote data. Data transfers between pairs of remote nodes in the cluster are permitted as well.
30 Citations
20 Claims
-
1. A computer system comprising:
-
a plurality of computing nodes, wherein each of the computing nodes of the plurality of computing nodes includes a coprocessor and a memory coupled to the coprocessor, and wherein each memory resides in a separate and distinct physical domain; and a plurality of point-to-point physical communications links, wherein one or more communications links of the plurality of links is coupled between each pair of nodes in the plurality of nodes, wherein each coprocessor in a node is coupled to the one or more communications links to transfer data over the at least one communications link, and wherein each coprocessor is configured; to transfer data between the memory coupled to the coprocessor and the memory of another node to which the coprocessor is coupled by the one or more communications link using a certificate that grants access to a portion of the memory in the other node, or to transfer data between two other nodes in the cluster to which the coprocessor is coupled by the one or more communications links using a first certificate that grants access rights to a portion of memory in the first of the two other nodes and a second certificate that grants access rights to a portion of memory in the second of the two other nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of transferring data between nodes in a cluster, the method comprising:
-
receiving and decoding by a local node a command for a data transfer; determining from the decoded command that the data transfer has a source location in the local node and a destination location in a remote node distinct from the local node, the local and remote nodes being coupled to each other by one or more point-to-point communication links; obtaining a certificate granting rights to transfer data to the remote node, transferring the certificate from the local node to the remote node, wherein the certificate is successfully validated in the remote node; transferring data from the local node to the remote node using the certificate; receiving an acknowledgement from the remote node that the transfer is complete; and updating a completion status indicating the command was successful. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method of transferring data between nodes in a cluster, the method comprising:
-
receiving and decoding by a local node a command for a data transfer; determining from the decoded command that the data transfer has a source location in a first remote node and a destination location in a second remote node, each remote node being distinct from each other and the local node and being coupled to the local node by one or more point-to-point communication links; obtaining a first and a second certificate granting rights to transfer data between the first and second remote nodes, transferring the first and second certificates from the local node to the first and second remote nodes, wherein the first and second certificates are successfully validated, respectively, in the first and second remote nodes; transferring data from the first remote node to the second remote node using the certificates; receiving an acknowledgement from the second remote node that the transfer is complete; and updating a completion status indicating the command was successful. - View Dependent Claims (17, 18, 19, 20)
-
Specification