Compute Express Link
CXLの標準では、3種類の独立したプロトコルが定義されている。
CXL.io - いくつかの拡張機能を備えたPCIe 5.0に基づいており、コンフィギュレーション、リンクの初期化と管理、デバイスの検出と列挙、割り込み、DMA、非コヒーレントなロード/ストアを使用したレジスタI/Oアクセスを提供する。
CXL.cache - 周辺機器が低遅延のリクエスト/レスポンスインターフェイスでホストCPUメモリにコヒーレントにアクセス・キャッシュできるようにする。
CXL.mem - ホストCPUが、揮発性(RAM)ストレージと永続的な不揮発性(フラッシュメモリ)ストレージ両方のロード/ストアコマンドを使用して、キャッシュされたデバイスメモリにコヒーレントにアクセスできるようにする。
CXL.cacheとCXL.memプロトコルは、CXL.ioプロトコルリンクとトランザクションレイヤーとは別の共通のリンク/トランザクションレイヤーで動作する。これらのプロトコル/レイヤーは、Arbitration and Multiplexing(ARB/MUX)ブロックによって多重化されてから、4つの16バイトデータslotsと2バイトの巡回冗長検査(CRC)値からなる固定幅528ビット(66バイト)のフロー制御ユニット(英語版)(Flow Control Unit、FLIT)ブロックを使用して標準のPCIe 5.0 PHYで転送される。CXL FLITは、PCIe標準のトランザクション層パケット(TLP)とデータリンク層パケット(DLLP)データを可変フレームサイズ形式でカプセル化する。