Node identification for distributed shared memory system
First Claim
1. A method, comprising:
- receiving, at a distributed memory logic circuit of a first node, data for a packet destined to a distributed memory logic circuit of a second node, wherein the first and second nodes are connected by a network switch fabric and are parts of a distributed shared memory system, and wherein the data for the packet includes a physical memory address in which one or more bits in the address comprise a destination logical node identifier for the second node;
using the destination logical node identifier as an index into a connection control block to locate an entry for a connection between the first and second nodes, wherein the connection control block is stored in a local memory on the first node;
building a packet in a format of a connection and communication protocol using the data, the destination logical node identifier, and a logical node identifier for the first node, wherein the logical node identifier for the first node is included in the connection control block entry;
adding, to the packet, a header that includes a switch fabric address for the second node, wherein the switch fabric address is identified in the located entry of the connection control block; and
transmitting the packet on a link to the switch fabric.
8 Assignments
0 Petitions
Accused Products
Abstract
An example embodiment of the present invention provides processes relating to a connection/communication protocol and a memory-addressing scheme for a distributed shared memory system. In the example embodiment, a logical node identifier comprises bits in the physical memory addresses used by the distributed shared memory system. Processes in the embodiment include logical node identifiers in packets which conform to the protocol and which are stored in a connection control block in local memory. By matching the logical node identifiers in a packet against the logical node identifiers in the connection control block, the processes ensure reliable delivery of packet data. Further, in the example embodiment, the logical node identifiers are used to create a virtual server consisting of multiple nodes in the distributed shared memory system.
26 Citations
15 Claims
-
1. A method, comprising:
-
receiving, at a distributed memory logic circuit of a first node, data for a packet destined to a distributed memory logic circuit of a second node, wherein the first and second nodes are connected by a network switch fabric and are parts of a distributed shared memory system, and wherein the data for the packet includes a physical memory address in which one or more bits in the address comprise a destination logical node identifier for the second node; using the destination logical node identifier as an index into a connection control block to locate an entry for a connection between the first and second nodes, wherein the connection control block is stored in a local memory on the first node; building a packet in a format of a connection and communication protocol using the data, the destination logical node identifier, and a logical node identifier for the first node, wherein the logical node identifier for the first node is included in the connection control block entry; adding, to the packet, a header that includes a switch fabric address for the second node, wherein the switch fabric address is identified in the located entry of the connection control block; and transmitting the packet on a link to the switch fabric. - View Dependent Claims (2, 3)
-
-
4. A method, comprising:
-
receiving, at a distributed memory logic circuit of a first node, a packet from a distributed memory logic circuit of a second node, wherein the packet includes a source logical node identifier and wherein the first and second nodes are connected by a network switch fabric and are parts of a distributed shared memory system; determining whether a destination switch fabric address included in the packet matches a switch fabric address for the first node; using the source logical node identifier as an index into a connection control block to locate an entry for the a connection between the first and second nodes, wherein the connection control block is stored in a local memory on the first node; determining whether a destination logical node identifier included in the packet matches a logical node identifier for the first node, wherein the logical node identifier for the first node is identified in the located entry of the connection control block; and accepting data in the packet for further processing by the first node. - View Dependent Claims (5, 6, 7)
-
-
8. A distributed memory logic circuit encoded with executable logic, the logic when executed operable to:
-
receive, at the distributed memory logic circuit of a first node, data for a packet destined to a distributed memory logic circuit of a second node, wherein the first and second nodes are connected by a network switch fabric and are parts of a distributed shared memory system, and wherein the data for the packet includes a physical memory address in which one or more bits in the address comprise a destination logical node identifier for the second node; use the destination logical node identifier as an index into a connection control block to locate an entry for a connection between the first and second nodes, wherein the connection control block is stored in a local memory on the first node; build a packet in a format of a connection and communication protocol using the data, the destination logical node identifier, and a logical node identifier for the first node, wherein the logical node identifier for the first node is included in the connection control block entry; add, to the packet, a header that includes a switch fabric address for the second node, wherein the switch fabric address is identified in the located entry of the connection control block; and transmit the packet on a link to the switch fabric. - View Dependent Claims (9, 10)
-
-
11. A distributed memory logic circuit encoded with executable logic, the logic when executed operable to:
-
receive, at the distributed memory logic circuit of a first node, a packet from a distributed memory logic circuit of a second node, wherein the packet includes a source logical node identifier and wherein the first and second nodes are connected by a network switch fabric and are parts of a distributed shared memory system; determine whether a destination switch fabric address included in the packet matches a switch fabric address for the first node; use the source logical node identifier as an index into a connection control block to locate an entry for a connection between the first and second nodes, wherein the connection control block is stored in a local memory on the first node; determine whether a destination logical node identifier included in the packet matches a logical node identifier for the first node, wherein the logical node identifier for the first node is identified in the located entry of the connection control block; and accept data in the packet for further processing by the first node. - View Dependent Claims (12, 13, 14)
-
-
15. A system comprising:
-
two or more nodes in a distributed shared memory system connected by a network switch fabric; and
wherein each of the two or more nodes comprises one or more processors, local memory and a distributed memory logic circuit,wherein the distributed memory logic circuit is encoded with executable logic, the logic when executed operable to receive, at the distributed memory logic circuit of a local node, data for a packet destined to a distributed memory logic circuit of a remote node of the two or more nodes in the distributed shared memory system, wherein the data for the packet includes a physical memory address in which one or more bits in the address comprise a destination logical node identifier for the remote node, use the destination logical node identifier as an index into a connection control block to locate an entry for a connection between the local and remote node, wherein the connection control block is stored in local memory on the local node, build a packet a format of a connection and communication protocol using the data, the destination logical node identifier, and a logical node identifier for the local node, wherein the logical node identifier for the local node is included in the connection control block entry, add, to the packet, a header that includes a switch fabric address for the remote node, wherein the switch fabric address is identified in the located entry of the connection control block, transmit the packet on a link to the network switch fabric, receive, at the distributed memory logic circuit of the local node, a second packet from a distributed memory logic circuit of the remote node or another remote node of the two or more nodes in the distributed shared memory system, wherein the second packet includes a source logical node identifier, determine whether a destination switch fabric address included in the second packet matches a switch fabric address for the local node, use the source logical node identifier as an index into the connection control block to locate an entry for a connection between the local and remote node, determine whether a destination logical node identifier included in the second packet matches a logical node identifier for the local node, wherein the logical node identifier for the local node is identified in the located entry of the connection control block, and accept data in the packet for further processing by the local node.
-
Specification