Compute Express Link is a cache-coherent link meant to help systems, especially those with accelerators, operate more efficiently.
CXL uses 3 main protocol.
1. CXL.io – used for initialization, link-up, device discovery and enumeration, and register access.
2. CXL.cache – defines interactions between a Host (usually a CPU) and Device (such as a CXL memory module or accelerator.
3. CXL.memory – protocol that provides a Host processor (usually a CPU) with direct access to Device-attached memory using load/ store commands.
Typical use case
Type 1 one can think of as an accelerator like a NIC that accesses the host CPU’s memory directly. Type 2 is a case where we have an accelerator, like a GPU with memory, and the GPU can access host memory while the host CPU can access GPU memory. Type 3 one can think of as a memory module where its primary purpose is to expose the CXL memory device’s media to the host CPU. Nice detailed article and video can be found in the below source.