CXL Specs, Protocols, Device Types #
CXL specifications have three major versions so far - CXL 1.0, CXL 2.0 and CXL 3.0. These CXL specifications also supports three sub-protocols - CXL.io, CXL.cache and CXL.mem. Apart from protocols, CXL specifications also defines three device types - Type 1, Type 2 and Type 3.
Type 1 devices are specialized accelerators (e.g., smart NIC) with no local memory and rely on coherent access to host CPU memory using CXL.io and CXL.cache sub-protocols. Type 2 devices are general-purpose accelerators (e.g., GPU) with local memory that can coherently access host CPU memory and provide coherent or non-coherent access to device local memory using CXL.io, CXL.cache and CXL.mem sub-protocols. Type 3 CXL devices are memory expanders (e.g., CXL-attached DRAM) that allow access to device local memory using the CXL.io and CXL.mem sub-protocols.
Different versions of the CXL specifications defines and refines the sub-protocols used to access and manage CXL devices and how these devices interact with other CXL and non-CXL devices in local and/or remote systems.
Source: Wikipedia
CXL I/O Path #
Source: ACM
Source: Semiconductor Engineering
Source: CXL Consortium
Source: servethehome.com