Assisted coherent shared memory
An apparatus for coherent shared memory across multiple clusters is described herein. The apparatus includes a fabric memory controller and one or more nodes. The fabric memory controller manages access to a shared memory region of each node such that each shared memory region is accessible using load store semantics, even in response to failure of the node. The apparatus also includes a global memory, wherein each shared memory region is mapped to the global memory by the fabric memory controller.
1. A node for coherent shared memory, the node comprising:
a central processing unit (CPU);
a node memory, wherein at least a portion of the node memory is mapped to global memory shared between the node and other nodes; and
a fabric memory controller to manage access to the node memory by the other nodes, wherein the fabric memory controller is further to facilitate access to the node memory by the other nodes while the CPU is in a failed state.
2. The node of claim 1 , wherein a power supplied to the node memory is independent of the CPU.
3. The node of claim 1 , wherein the node memory is to receive power while the CPU is in the failed state.
4. The node of claim 1 , wherein the portion of the node memory mapped to the global memory is accessible by the other nodes through the load store semantics.
5. The node of claim 4 , wherein the node memory includes another portion that is inaccessible by the other nodes through load store semantics.
6. The node of claim 1 , wherein the portion of the node memory mapped to the global memory has a first access rights for a first node of the other nodes and second access rights, different from the first access rights, for a second node of the other nodes.
7. The node of claim 1 , wherein the node is assigned to at least one region of the global memory.
8. The node of claim 1 , wherein the fabric memory controller forms a portion of the CPU.
9. A method comprising:
sharing, by a fabric memory controller of a node, at least a portion of a node memory of the node mapped to a global memory with other nodes; and
managing, by the fabric memory controller, access to the node memory by the other nodes, wherein managing access to the node memory comprises facilitating access to the node memory by the other nodes while a central processing unit (CPU) of the node is in a failed state.
10. The method of claim 9 , further comprising powering the node memory with a power supply that is independent of a power supply of the CPU.
11. The method of claim 9 , further comprising supplying power to the node memory while the CPU is in the failed state.
12. The method of claim 9 , wherein the portion of the node memory mapped to the global memory is accessible by the other nodes through load store semantics.
13. The method of claim 12 , wherein the node memory includes another portion that is inaccessible by the other nodes through the load store semantics.
14. The method of claim 9 , wherein the portion of the node memory mapped to the global memory has a first access rights for a first node of the other nodes and second access rights, different from the first access rights, for a second node of the other nodes.
15. The method of claim 9 , wherein the node is assigned to at least one region of the global memory.
16. The method of claim 9 , wherein the fabric memory controller forms a portion of the CPU.
17. One or more machine-readable storage media comprising a plurality of instructions stored thereon that, when executed, cause a node to:
share, by a fabric memory controller of the node, at least a portion of a node memory of the node mapped to a global memory with other nodes; and
manage, by the fabric memory controller, access to the node memory by the other nodes, wherein to manage access to the node memory comprises to facilitate access to the node memory by the other nodes while a central processing unit (CPU) of the node is in a failed state.
18. The one or more machine-readable storage media of claim 17 , wherein the plurality of instructions, when executed, further cause node to power the node memory with a power supply that is independent of a power supply of the CPU.
19. The one or more machine-readable storage media of claim 17 , wherein the plurality of instructions, when executed, further cause node to supply power to the node memory while the CPU is in the failed state.
20. The one or more machine-readable storage media of claim 17 , wherein the portion of the node memory mapped to the global memory is accessible by the other nodes through load store semantics.
21. The one or more machine-readable storage media of claim 20 , wherein the node memory includes another portion that is inaccessible by the other nodes through the load store semantics.
22. The one or more machine-readable storage media of claim 17 , wherein the portion of the node memory mapped to the global memory has a first access rights for a first node of the other nodes and second access rights, different from the first access rights, for a second node of the other nodes.
23. The one or more machine-readable storage media of claim 17 , wherein the node is assigned to at least one region of the global memory.
24. The one or more machine-readable storage media of claim 17 , wherein the fabric memory controller forms a portion of the CPU.