CXL.io

1.CXL.io协议

1.1 概述与核心作用

CXL.io 是 CXL (Compute Express Link) 协议栈中的基础层,它为系统中的 I/O 设备提供了非一致性的加载/存储 (load/store) 接口。从根本上说,CXL.io 的设计完全基于 PCIe® 规范,并直接复用了其核心机制。这意味着 CXL.io 在交易类型、包格式、基于信用的流量控制、虚拟通道管理和交易排序规则等方面都遵循 PCIe 的定义。

在整个 CXL Flex Bus 架构中,CXL.io 与 CXL.cache、CXL.mem 协议并行存在于交易层,它们共享底层的链路层和物理层。CXL.io 的核心作用可以理解为 CXL 体系的基础框架和管理通道,它不仅处理传统的 I/O 事务,还负责设备的发现、配置以及传输关键的控制消息。

1.2 设备端点与枚举

一个 CXL 设备能够被主机操作系统识别和管理,完全依赖于 CXL.io 提供的 PCIe 兼容接口。

1.3 CXL 特定的厂商定义消息 (VDM)

CXL.io 的一个关键用途是作为通道,来传输 CXL 协议专用的控制和状态消息。这是通过复用 PCIe 的厂商定义消息 (Vendor Defined Message, VDM) 机制实现的。这些 VDM 都使用 CXL 的专属厂商 ID 1E98h

1.4. 关键交互与功能要求

1.5 CXL Fabric 中的特定头部

在 PBR (Port Based Routing) Fabric 这种高级拓扑中,CXL.io 的 TLP (Transaction Layer Packet) 格式有一些特殊之处。

1.6 总结

CXL.io 远不止是一个简单的 I/O 数据通道。它是整个 CXL 体系的基石和控制总线,承担着至关重要的底层任务:

  1. 身份与发现 :它是系统识别和枚举 CXL 设备的唯一途径。
  1. 管理与控制 :它承载了 CXL 特有的电源管理、错误报告和 Fabric 控制等关键消息。
  1. 规则与边界 :它通过 ATS 机制,严格划分了 CXL.cache 和 CXL.io 的访问权限,是实现混合协议访问模型的关键。
zood