What is “Stranded Memory?”

Cartoon of a tiny island of sand with a single palm tree and a DIMM. "Help" is written in the sand.CXL has been embraced by hyperscale data center managers as a means of solving the problem of “Stranded Memory.”  If you don’t know what stranded memory is, then this post is intended to help you to understand.  It’s based on a few slides from a presentation that IEEE President Tom Coughlin and The Memory Guy made at the Storage Networking Industry Association (SNIA) CMS Summit in April 2023.  SNIA has posted a video of the entire presentation online HERE if you would rather watch it than read this post.

First I’ll explain what Stranded Memory is, and then I’ll show what CXL does to fix it.

This is a sketch of a simple virtualized system, made up of four servers.  One of the beauties of virtualization is that any program can run on any server, rather than having certain servers dedicated to any specific task.  This allows the data center to get the most use from its servers without having to provide too many of them.

Simplistic diagram with four boxes representing servers with larger boxes underneath them representing large memories. These are all tied to a common bus or CXL connection.

Each server contains a certain amount of memory.  For the sake of simplicity, we’ll say that this data center only runs two application programs, one that needs a lot of memory, and one with more modest requirements.  Each server must be equipped with enough memory to run the application that needs the most, even if most of the servers are running the application that needs less.

The diagram below is a representation of the memory use in these servers.  For this example we’ll only have the big-memory application run one one of the servers at any one time, while the rest of the servers run the small-memory application.  The blue represents the memory that the application uses, and the gray represents memory that is not used.

Four Servers with the same memory size. Three show a gray part depicting the unused portion. The other shows that the entire memory is used.L

The gray part of these memories is what’s called the “Stranded Memory” because it’s built into the servers, but it’s not being used.  In a virtualized system, the big-memory application can be assigned to any server, and will move from server to server, so each server must contain enough memory to run this program efficiently.  That means that there will always be three servers that have more memory than they need, although you never know which servers they will be.  That’s wasted money, and the unused memory consumes unnecessary power and cooling resources.

So what do you do about this?

With a CXL memory pool, a system can reduce the size of each server’s memory to fit the smaller-memory application, with a memory pool attached via CXL in a way that allows it to be used as it is needed by any of the servers.  This memory is not dedicated to any particular server.  When the large-memory application causes one of the servers to need this resource, the memory pool will be assigned to that server.  As the application moves from server to server, the memory will be assigned to the server that currently needs it.

Four Servers with small memories sharing a large memory pool through CXL

Since the memory is now efficiently used by the system, CXL eliminates the Stranded Memory in the system.  The system uses memory more efficiently, reducing capital cost and power/cooling costs at the same time.

Hyperscale datacenter managers like CXL because it allows them to disaggregate memory the same way that they have already disaggregated computing resources and storage.  Memory has been the last holdout for this trend.  When memory is disaggregated, these managers will no longer have a lot of Stranded Memory in their data centers, wasting money consuming valuable energy and cooling.

The Memory Guy is currently compiling a report on CXL that will become available shortly.  One important difference between Objective Analysis and other industry analysis firms is that we invest the effort to deeply understand the technologies and markets that we write about.  For your company this kind of analysis can mark the difference between success and failure.  We would like for you to succeed.  Come to us to explore ways to work together to ensure your company’s successful outcome.

2 thoughts on “What is “Stranded Memory?””

  1. Careful with use of terms…

    You say:
    “With CXL’s shared memory, a system can reduce the size of each server’s memory to fit the smaller-memory application, with a memory pool attached via CXL in a way that allows it to be used as it is needed by any of the servers. ”

    But within CXL specification, shared memory implies two or more hosts which can read, write, or read and write the same address within a memory device. The term you are looking for here is Pooled memory (not shared in this context).

    Otherwise – nice article!

    1. You’re quite right! I fixed the poor choice of words to the proper nomenclature: “Pool.”

      I appreciate the correction!


Comments are closed.