Resource reservation protocol over unreliable packet transport
First Claim
1. A system, comprising:
- a processor node comprising a processor and a network interface;
a plurality of memory nodes, wherein each memory node comprises a memory and a network interface;
a communication network configured to interconnect said processor node and said plurality of memory nodes via said network interfaces according to a network topology, wherein each of said memory nodes is removed from said processor node by a respective number of network hops according to said network topology;
wherein said processor node is configured to;
broadcast, over the communication network, a packet comprising a memory request message to a subset of said plurality of memory nodes comprising two or more memory nodes, wherein the memory request message comprises a unique identifier of a given memory request and a requested memory size;
receive, over the communication network, a reservation acknowledgment message from one or more of the memory nodes in the subset of memory nodes;
send, over the communication network, a confirmation message comprising the unique identifier to a particular one of the memory nodes in the subset of memory nodes from which a reservation acknowledgment message was received;
receive, over the communication network, a commit message from the particular one of the memory nodes indicating that the memory has been allocated for the given memory request; and
access memory on the particular one of the memory nodes in response to receiving the commit message from the particular one of the memory nodes indicating that the memory has been allocated for the given memory request.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for allocating physical memory in a distributed, shared memory system and for maintaining interaction with the memory using a reservation protocol is disclosed. In various embodiments, a processor node may broadcast a memory request message to a first subset of nodes connected to it via a communication network. If none of these nodes is able to satisfy the request, the processor node may broadcast the request message to additional subsets of nodes until a positive response is received. The reservation protocol may include a four-way handshake between the requesting processor node and a memory node that can fulfill the request. The method may include creation of a reservation structure on the requesting processor and on one or more responding memory nodes. The reservation protocol may facilitate the use of a proximity-based search methodology for memory allocation in a system having an unreliable underlying transport layer.
-
Citations
20 Claims
-
1. A system, comprising:
-
a processor node comprising a processor and a network interface; a plurality of memory nodes, wherein each memory node comprises a memory and a network interface; a communication network configured to interconnect said processor node and said plurality of memory nodes via said network interfaces according to a network topology, wherein each of said memory nodes is removed from said processor node by a respective number of network hops according to said network topology; wherein said processor node is configured to; broadcast, over the communication network, a packet comprising a memory request message to a subset of said plurality of memory nodes comprising two or more memory nodes, wherein the memory request message comprises a unique identifier of a given memory request and a requested memory size; receive, over the communication network, a reservation acknowledgment message from one or more of the memory nodes in the subset of memory nodes; send, over the communication network, a confirmation message comprising the unique identifier to a particular one of the memory nodes in the subset of memory nodes from which a reservation acknowledgment message was received; receive, over the communication network, a commit message from the particular one of the memory nodes indicating that the memory has been allocated for the given memory request; and access memory on the particular one of the memory nodes in response to receiving the commit message from the particular one of the memory nodes indicating that the memory has been allocated for the given memory request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method, comprising:
-
broadcasting, by a processor node, over a communication network, a packet comprising a memory request message to a plurality of memory nodes, wherein the memory request message comprises a unique identifier of a given memory request and a requested memory size, and wherein said plurality of memory nodes and said processor node are interconnected via the communication network according to a network topology; receiving, by the processor node, over the communication network, a reservation acknowledgment message from one or more of the plurality of memory nodes; sending, by the processor node, over the communication network, a confirmation message to a particular one of the plurality of memory nodes from which a reservation acknowledgment message was received; receiving, by the processor node, over the communication network, a commit message from the particular one of the memory nodes indicating that the memory has been allocated for the given memory request; and accessing, by the processor node, memory on the particular one of the memory nodes in response to receiving the commit message from the particular one of the memory nodes indicating that the memory has been allocated for the given memory request. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A processor node, comprising:
-
an input/output interface comprising electronic circuitry that is configured for communicating with a communication network, wherein said communication network is configured to interconnect a plurality of memory nodes according to a network topology; and execution logic comprising electronic circuitry that is configured to; broadcast, over the communication network, a packet comprising a memory request message to the plurality of memory nodes, wherein the memory request message comprises a unique identifier of a given memory request and a requested memory size; receive, over the communication network, a reservation acknowledgment message from one or more of the memory nodes; send, over the communication network, a confirmation message to a particular one of the memory nodes from which a reservation acknowledgment message was received; receive, over the communication network, a commit message from the particular one of the memory nodes indicating that the memory has been allocated for the given memory request; and access memory on the particular one of the memory nodes in response to receiving the commit message from the particular one of the memory nodes indicating that the memory has been allocated for the given memory request. - View Dependent Claims (18)
-
-
19. A memory node, comprising:
-
a memory; an input/output interface configured for communicating with a communication network, wherein said communication network is configured to interconnect a processor node and a plurality of memory nodes according to a network topology; and execution logic configured to; receive from the processor node, over the communication network, a packet comprising a memory request message, wherein the packet comprises a transaction code indicating that the packet type is a broadcast packet, and wherein the memory request message comprises a unique identifier of a given memory request and a requested memory size; in response to receiving the given memory request and determining that the given memory request can be satisfied by the memory node; reserve a portion of memory at least as large as the requested memory size; and send, over the communication network, a reservation acknowledgement message comprising the unique identifier to the processor node; receive, over the communication network, a confirmation message from the processor node; and send to the processor node, over the communication network, a commit message indicating that the memory has been allocated for the given memory request and comprising the unique identifier in response to receiving the confirmation message from the processor node. - View Dependent Claims (20)
-
Specification