Mechanism for disaggregated storage class memory over fabric
First Claim
1. A method, comprising:
- composing memory resources for a compute node in a first pooled system drawer installed in a rack, the compute node including at least one processor coupled to at least one local memory device, the memory resources for the compute node including the at least one local memory device and at least one remote memory device accessed via a disaggregated memory node in a second pooled system drawer installed in the rack;
configuring the compute node to detect a first memory access request originating from a processor in the compute node and corresponding to a memory region in a first remote memory device from among the at least one remote memory device to forward data relating to the first memory access request to the disaggregated memory node via a first fabric packet sent over a fabric coupled between the compute node and the disaggregated memory node;
receiving the first fabric packet at the disaggregated memory node, extracting the data relating to the first memory access request and performing a first memory access of the first remote memory device corresponding to the first memory access request; and
returning data corresponding to the first memory access from the disaggregated memory node to the compute node via a second fabric packet sent over the fabric.
1 Assignment
0 Petitions
Accused Products
Abstract
Mechanisms for disaggregated storage class memory over fabric and associated methods, apparatus, and systems. A rack is populated with pooled system drawers including pooled compute drawers and pooled storage class memory (SCM) drawers, also referred to as SCM nodes. Optionally, a pooled memory drawer may include a plurality of SCM nodes. Each SCM node provides access to multiple storage class memory devices. Compute nodes including one or more processors and local storage class memory devices are installed in the pooled compute drawers, and are enabled to be selectively-coupled to access remote storage class memory devices over a low-latency fabric. During a memory access from an initiator node (e.g., a compute node) to a target node including attached disaggregated memory (e.g., an SCM node), a fabric node identifier (ID) corresponding to the target node is identified, and an access request is forwarded to that target node over the low-latency fabric. The memory access request is then serviced on the target node, and corresponding data is returned to the initiator. During compute node composition, the compute nodes are configured to access disaggregated memory resources in the SCM nodes.
-
Citations
25 Claims
-
1. A method, comprising:
-
composing memory resources for a compute node in a first pooled system drawer installed in a rack, the compute node including at least one processor coupled to at least one local memory device, the memory resources for the compute node including the at least one local memory device and at least one remote memory device accessed via a disaggregated memory node in a second pooled system drawer installed in the rack; configuring the compute node to detect a first memory access request originating from a processor in the compute node and corresponding to a memory region in a first remote memory device from among the at least one remote memory device to forward data relating to the first memory access request to the disaggregated memory node via a first fabric packet sent over a fabric coupled between the compute node and the disaggregated memory node; receiving the first fabric packet at the disaggregated memory node, extracting the data relating to the first memory access request and performing a first memory access of the first remote memory device corresponding to the first memory access request; and returning data corresponding to the first memory access from the disaggregated memory node to the compute node via a second fabric packet sent over the fabric. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A disaggregated memory node, comprising:
-
a fabric controller, configured to be communicatively coupled to a fabric; a memory controller, having a plurality of channels; a plurality of memory devices coupled to the memory controller via the plurality of channels, wherein each channel is coupled to at least one memory device; wherein the disaggregated memory node either comprises a pooled memory drawer configured to be installed in a rack or is configured to be installed in a pooled memory drawer including a plurality of disaggregated memory nodes that is configured to be installed in the rack, and wherein the disaggregated memory node is configured to, receive a first fabric packet sent over the fabric from one of a plurality of compute nodes in a pooled compute drawer in the rack containing data relating to a memory access request originating from a processor in the compute node, the data including memory address information; determine, based on the memory address information, a memory device in the disaggregated memory node containing data corresponding to the memory access request; access the memory device that is determined to service the memory access request; and return data corresponding to the memory access request in a second fabric packet sent via the fabric controller and destined for the compute node. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A compute node, comprising:
-
a processor; a memory controller, having at least one channel and operatively coupled to the processor; one or more local memory devices, each coupled to the memory controller via a channel; and a fabric controller, configured to be communicatively coupled to a fabric, wherein the compute node is configured to be installed in a pooled compute drawer in a rack including at least one disaggregated memory node, each disaggregated memory node including a plurality of remote memory devices, coupled to the fabric configured to provide access to memory stored in the plurality of remote memory devices, and wherein to compute node is further configured to, generate a first memory access request; determine the first memory access request is to be serviced by accessing a memory region in a first remote memory device in a first disaggregated memory node; generate a first fabric packet containing data relating to the first memory access request and second the first fabric packet outbound from the fabric controller onto the fabric to be delivered to the first disaggregated memory node; and receive a second fabric packet returned from the disaggregated memory node comprising a response packet containing data returned by the disaggregated memory node after servicing the first memory access request. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification