Samsung SW virtualises CXL-attached memory

Samsung has an open-source Scalable Memory Development Kit (SMDK) which virtualises memory attached to the CXL interconnect.

The Compute eXpress Link is a developing open, industry-backed standard interconnect to enable servers, accelerators, memory expanders and smart I/O devices to exchange data using shared memory and at high speed across a PCIe Gen-5 connection. Samsung makes DRAM and NAND-based products which can be attached to a CXL link.

Cheolmin Park, VP of the Memory Product Planning Team at Samsung Electronic, said in a statement: “In order for datacentre and enterprise systems to smoothly run next-generation memory solutions like CXL, development of corresponding software is a necessity.”

Samsung wants to deliver “a total memory solution that encompasses hardware and software, so that IT OEMs can incorporate new technologies into their systems much more effectively.”

Samsung launched a CXL expander device in May, with CXL 2.0 support. This was a CXL-connected DDR5 memory module with memory mapping, interface converting and error management technologies to enable CPUs and GPUs to use its DDR5 DRAM as main memory. It suggests a host server’s per-CPU memory capacity can be increased up to 50 per cent and bandwidth boosted up to 75 per cent. There would be an expander per CPU.

Samsung CXL Expander box and card.

The SMDK consists of pre-built code libraries and APIs to enable a host’s main memory and the CXL memory expander to work together in heterogeneous memory systems. There are two APIs. System developers can use a compatibility API to incorporate CXL-attached memory into IT systems without modifying existing app environments, or an optimisation API to optimise app software to suit special needs.

Samsung heterogeneous memory diagram. The memory zones recognise normal DRAMS and CXL memories separately.

The SMDK supports memory virtualisation, meaning separate pools of memory, such as server socket-attached DRAM and CXL-attached memory (such as DRAM or storage-class memory) can be shared. It includes what Samsung calls a proprietary Intelligent Tiering Engine, with which the SMDK user can identify and configure the pool memory type, capacity and bandwidth to match particular use cases with tiering priorities.

Samsung’s SMDK is available on a limited basis for initial testing and optimisation and will be open-sourced within the first half of next year.

Yesterday VMware announced its Project Capitola development to virtualise different memories into a single logical pool. That involves the CXL interconnect, and Samsung is one of VMware’s partners in the project. We would hope for similar initiatives to emerge from other hypervisor developers, such as Red Hat and Nutanix, leading to an industry standard so that application developers don’t have to re-invent their CXL wheel for each hypervisor they support.

Questions

We have asked Samsung several questions about this SMDK, and the answers are below each question:

1. The SMDK is open source. Will the Intelligent Tiering Engine be open sourced? 

→ Yes, it will be open sourced, too.

2. Will the Intelligent Tiering Engine (ITE) identify and configure the memory type, capacity and bandwidth of non-Samsung CXL-attached memory types? 

→ Yes, as long as they comply with CXL and PCI specifications.

3. Will it be used by server operating system developers, system SW developers (such as in-memory SW tools) or application developers or all three? 

→ Yes, it can be used by all three, however the current version mostly targets application developers and system SW developers.

 4. Is Samsung expecting or hoping on working towards an open standard for CXL-attached memory devices?

→ Yes, absolutely.