CXL Consortium
Hot Chips Promo New 63122deaf1ae7

Casting a Light on CXL 3

Sept. 2, 2022
This year’s Hot Chips event featured a tutorial on the fast-rising CXL standard and its latest iteration—CXL 3.

Check out our coverage of the Hot Chips 2022 event.

What you’ll learn

  • What is Compute Express Link (CXL)?
  • Why CXL is important.
  • What’s new with CXL 3?

One of the more interesting and extensive tutorials at Hot Chips 2022 was Compute Express Link (CXL) and the newly released CXL 3 specification (Fig. 1). This is a compressed overview of the tutorial that can still be accessed by signing up for archive access.

CXL provides a partitionable, scalable, coherent memory environment that can support an array of CPUs, GPUs, FPGAs, and artificial-intelligence (AI) accelerators, as well as communication devices like SmartNICs.

It’s based on PCI Express (PCIe), the de facto peripheral interface found on all high-performance compute chips. CXL requires additional support over and above PCIe, but it takes advantage of PCIe’s interface and switched-based scalability. Another standard based on PCIe is the Non-Volatile Memory Express (NVMe) standard. Though NVMe isn’t a cache-coherent interface, it’s become the de facto standard for solid-state storage in the enterprise.

CXL started as a cache-coherent, memory interface. With CXL 3, there’s support for Global Fabric Attached Memory (GFAM), which allows different types of memory to be directly attached and made accessible to multiple processor nodes (Fig. 2).

Nodes come in various types in addition to host nodes like CPUs, GPUs, and FPGAs:

  • Type 1 includes devices with a cache such as a SmartNIC.
  • Type 2 involves devices with cache and memory. These are devices like AI accelerators.
  • Type 3 covers devices with memory such as a memory expander.

PCIe peripheral devices also can be connected via the fabric, but they don’t provide memory to the fabric.

A coherent storage fabric like CXL provides memory disaggregation support, enabling more memory to be added to the fabric. The memory and nodes can be partitioned, with each partition being isolated from each other for security and performance reasons.

The CXL standard incorporates the CXL.io, CXL.cache, and CXL.mem protocols. The CXL.io protocol is a basic extension of PCIe 5 and works with non-coherent load/stores. CXL.cache provides cache-coherent memory support using block transfers. CXL.mem operates at the load/store level. Type 1 supports CXL.io and CXL.cache. Type 2 supports all three, while Type 3 supports CXL.io and CXL.mem.

The fabric is connected via CXL switches (Fig. 3). The same fabric can be used to connect hosts to PCIe peripherals, since PCIe support is a subset of the CXL specification. Fabrics can be configured in a spine-leaf configuration that’s similar to those used for Ethernet connectivity.

CXL 2 added features like memory pooling with support for multiple logical devices (MLL). It also provides an IDE that offers system management, but it only defined a single level or switching. The CXL 3 specification greatly expands the functionality of the standard in addition to increasing bandwidth to 64 Gtransactions/s using a PCIe 5 PHY (Fig. 4). The Flow Control Unit (FLIT) was expanded to 256 bytes in PAM-4 transfer mode.

Hardware for CXL 1 and 2 has been available. It includes memory-expander boards that support standard memory devices like DDR RAM. CXL 3 adds support for Port Based Routing (PBR), which can handle up to 4,096 nodes.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!