HomeCXL CourseDay 6
DAY 6 · PHASE 2 — SPEC EVOLUTION

CXL 1.1
Memory Expansion & the First Coherent Devices

By EcrioniX · Updated July 2026

Phase 1 taught the concepts that are true of CXL in general. Phase 2 walks the actual spec versions in order, because each one added a specific, nameable capability — and knowing which version brought what is exactly the knowledge that separates someone who's read a CXL blog post from someone who understands it. We start at the beginning: the foundational 1.0/1.1 generation.

What CXL 1.0/1.1 Established

Released in 2019 on the PCIe 5.0 physical layer (32 GT/s), CXL 1.0 and its 1.1 refinement laid the entire foundation this course has been describing. Everything in Phase 1 — the three sub-protocols, the three device types, the coherence model, the 68-byte flit — was defined here. Its three headline capabilities:

🧰
Memory ExpansionAttach more memory to a host than its DIMM slots allow, via a Type 3 device over CXL.mem
💾
Coherent Accelerator CachingThe first accelerators that could coherently cache host memory via CXL.cache (Type 1/2)
🔄
Device-Host Memory SharingType 2 devices exposing their local memory into the host's coherent address space

In other words, CXL 1.1 was the generation that proved the core idea worked: coherent memory, shared between a host and a device, over a PCIe-based link. That was the hard part. Everything after it is scaling that proven idea outward.

The Shape of a CXL 1.1 System — Single Host, Direct Attach

The defining structural characteristic of CXL 1.1 is simplicity: every CXL device connects point-to-point, directly to a single host. There is no switch in between, and no sharing of a device across hosts.

CXL 1.1 — One Host, Directly-Attached Devices HOST CXL Accelerator Memory expander Persistent mem

Technically, this makes CXL 1.1 a single-host, direct-attached architecture. Every device is dedicated to its one host. This is perfectly sufficient for expansion — giving one server more memory or a coherent accelerator — but it fundamentally cannot do pooling or sharing, because those require a switch sitting between multiple hosts and the memory. That switch arrives in CXL 2.0 (Day 7).

CXL Persistent Memory — A Notable First

One capability worth calling out from this era: CXL persistent memory. Because a Type 3 device can present different memory types to the host (Day 4), non-volatile memory can be exposed over CXL.mem — a natural successor to the earlier NVDIMM-N persistent-memory modules that lived in DIMM slots. Bringing persistence onto the CXL link means the memory fabric itself can carry data that survives power loss, not just volatile DRAM. This foreshadows a recurring theme: CXL's Type 3 abstraction is memory-media-agnostic, which becomes increasingly powerful as the fabric grows.

What CXL 1.1 Deliberately Left Out

Understanding a spec version is as much about its limits as its features — because those limits are precisely the roadmap for what came next:

Not in CXL 1.1Added In
Switching (a CXL switch between hosts and devices)CXL 2.0
Memory pooling across multiple hostsCXL 2.0
Hot-plug of CXL devicesCXL 2.0
Link-level Integrity & Data Encryption (IDE)CXL 2.0
Multi-host coherent memory sharingCXL 3.0
Multi-level switching & non-tree fabricsCXL 3.0

Version feature attribution per CXL Consortium specifications and comparison materials.

A security note worth flagging: CXL 1.1 has no link-level encryption. Data on a CXL 1.1 link travels unprotected. This was acceptable for a single-host, physically-contained first generation, but became untenable as CXL moved toward pooled and disaggregated deployments where a link might cross a rack — which is exactly why CXL 2.0 added IDE (Day 7).

Why Start Here?

Every later CXL capability — switching, pooling, sharing, fabrics, confidential computing — is layered directly onto the CXL 1.1 foundation. The sub-protocols never change their fundamental roles; the device types stay the same three; the coherence model extends rather than replaces. When Day 7 adds a switch and Day 8 adds a fabric, they're adding structure around the exact primitives defined here. Master 1.1, and the rest of the version history reads as a series of clean additions rather than a confusing pile of features.

🎯 Day 6 Key Takeaways

Frequently Asked Questions

What did CXL 1.0 and 1.1 introduce?
CXL 1.0/1.1 (released 2019, on the PCIe 5.0 physical layer at 32 GT/s) established the foundation: the three sub-protocols, the three device types, memory expansion, coherent accelerator caching, and device-host memory sharing. It was the generation that proved coherent memory over a PCIe-based link could work.
What are the limitations of CXL 1.1?
CXL 1.1 supports only direct-attached devices to a single host — there is no switching, no memory pooling across hosts, and no link-level encryption (IDE). Each CXL device connects point-to-point to one host. These limits were deliberate scope for a first generation, and CXL 2.0 and 3.0 removed them one by one.
Does CXL 1.1 support memory pooling?
No. Memory pooling across multiple hosts was introduced in CXL 2.0, which added switching. CXL 1.1 supports memory expansion — attaching more memory to a single host via a Type 3 device — but that memory belongs to one host only; it cannot be pooled or reallocated across hosts.
What is CXL persistent memory?
CXL persistent memory brings non-volatile memory onto the CXL link — a natural successor to earlier NVDIMM-N modules. Because a Type 3 device can present different memory types to the host, persistent memory can be exposed over CXL.mem alongside or instead of DRAM, letting the memory fabric carry data that survives power loss.
Why does CXL 1.1 matter if later versions are more capable?
Everything in CXL 2.0, 3.0, and beyond builds directly on the CXL 1.1 foundation — the sub-protocols, device types, coherence model, and flit format were all defined here. Understanding 1.1 is understanding the base that every later capability (switching, pooling, sharing, fabrics) is layered onto.