PCIe / UCIe / CXL / CCIX 深度对比:物理状态机 · 软件配置流程 · 通信协议核心

PCIe / UCIe / CXL / CCIX 深度对比:物理状态机 · 软件配置流程 · 通信协议核心

说明:文中标"示意/简化"的流程为逻辑框架,具体状态命名与寄存器字段以各协议规范为准(UCIe 1.1/3.0、PCIe 6.0、CCIX Base 1.1、CXL 3.x)。


〇、四者的分层定位

物理层 PHY

传输适配层

一致性 / IO 协议层(语义)

标准形态:CCIX over PCIe(VC1)

项目口径:CCIX over UCIe

UCIe 协议模式

S2S / 板级:CXL over PCIe PHY

UCIe 流 / 协议模式

CCIX 一致性协议
(MOESI / CHI 风格,对称对等)

CXL(CXL.io/.cache/.mem)
(CPU 为主的主从一致性)

PCIe 事务层(TLP)
(原生 IO,无一致性)

UCIe D2D Adapter

PCIe DLL / 事务传输

UCIe PHY(封装内 bump)

PCIe PHY(板级 SerDes)

要点(沿用 arch-notes 口径):

  • PCIe:板级完整 IO 协议栈,自带 PHY,无硬件缓存一致性
  • UCIe:封装内 D2D 传输底座,只负责可靠传输,不带上层语义
  • CCIX一致性协议层,标准形态跑在 PCIe 之上(VC1);项目口径可映射到 UCIe 传输(SCP 只配 CCIX Agent,对传输透明)。
  • CXL:一致性协议,跑在 PCIe PHY 上(复用 PCIe LTSSM 训链),CPU 为主的主从一致性;本项目 S2S 用(bootflow 口径)。

一、状态机详细对比(物理层 / 链路层 / 协议层)

1.1 PCIe:LTSSM(Link Training and Status State Machine)

LTSSM 是 PCIe PHY 的链路训练状态机,11 个主状态,由硬件自动运行,软件只做"等待进入 L0 + 读链路状态寄存器"。

主状态子阶段作用
DetectQuiet / Active检测对端接收器,判断是否接插
PollingActive / Compliance / Configuration发 TS1 定位 lane,以最低速率 2.5 GT/s 起步
ConfigurationLinkwidth / Lanenum / Complete / Idle协商链路宽度、lane 编号,交换 TS2
L0正常工作,收发 TLP/DLLP
L0sTX / RX单向空闲省电,亚微秒级唤醒
L1Entry双向空闲省电,纳秒~微秒级唤醒
L2Idle / Transmit Wake深度省电,唤醒需重新训练
RecoveryRcvrLock / Speed / Equalization / RcvrCfg / Idle速率重协商、均衡 EQ、错误恢复、从省电唤醒
Hot Reset对端复位(TS1 携带 hot reset 位)
LoopbackEntry / Active / Exit测试模式,RX 数据回环到 TX
Disable关闭 lane(TS1 携带 disable 位)

检测到对端接收器

TS1 交换完成

宽度/编号协商完成(TS2)

单向空闲

唤醒 / 重同步

双向空闲省电

唤醒

深度省电

唤醒重新探测

位错/符号错 / 重训练

重训练完成

需改宽度/速率

对端热复位

收到 Disable

进入回环测试

退出回环

Detect

Polling

Configuration

L0

L0s

Recovery

L1

L2

Hot_Reset

Disable

Loopback

关键机制:

  • 速率协商:Polling 固定 2.5 GT/s(Gen1);Recovery.Speed 逐级升速 Gen2→…→Gen6(每代 ×2),直到最高共同速率。
  • 宽度协商:Configuration 中逐条加入 lane,直至带宽最大化或对端宽度匹配;支持 lane reversal / polarity inversion。
  • 均衡 Equalization:Gen3+ 必须,EQ phase(Preset / Coeff)调整收发均衡系数,软件可读 Link Equalization 状态。
  • 编码演进:Gen1/2 8b/10b → Gen3/4/5 128b/130b → Gen6 PAM4 + 256B FLIT + FEC。
  • 软件观察点Link Status(速率/宽度/训练状态,低位即 LTSSM 主状态编号)、Link Training ErrorLink Equalization Request
  • 典型训练时间:毫秒级(含 EQ),有 retimer 时更长。

PCIe 数据链路层(DL)状态机 —— LTSSM(物理)之上的第二级状态机:

DL 状态说明
DL_Down链路不可用(LTSSM 未进入 L0)
DL_Init初始化:交换 InitFC1/InitFC2,建立信用
DL_Active正常收发 TLP/DLLP,ACK/NAK 重传
DL_Inactive暂停(配合 L1/L2 省电),退出时重训

两级关系:LTSSM(电气训练)→ L0 → DL_Active(帧级可靠传输)。软件读 Data Link Layer Link Active 位判断 DL 状态。

PCIe 电源状态机(物理层)

状态粒度唤醒
L0s单向、每方向独立亚微秒
L1双向纳秒~微秒
L2/L3深度(可断电)需重新训练

1.2 UCIe:PHY 初始化 / 链路训练(简化示意)

UCIe 物理层在封装内,距离短、信道简单,因此初始化远比 PCIe LTSSM 简单:通常无复杂 EQ、无需多速率扫描(对端能力双方预知),重点是 lane 对齐与缺陷修复。

复位释放

TX/RX 校准(阻抗/采样/均衡)

lane 对齐 / 去偏斜

缺陷 lane 替换(备用 lane)

速率/编码确认(128b130b 或 8b10b)

PowerUp_Reset

PHY_Calibration

Lane_Deskew

Lane_Repair

Rate_Config

Data_Mode

具体状态命名以 UCIe spec 为准,此处为流程示意。

补充:UCIe 内部实际有一组简化状态机,而非单一 LTSSM 等价物 —— ① PHY 训练/初始化状态机(上图);② 链路/电源状态机(Active / Idle / Deep-Sleep);③ 可靠性状态机(CRC/Replay 重传、L2L/E2E 流控、Lane Repair 切换);④ Sideband 协议状态机。这些状态机均不向 OS 暴露,仅固件经 sideband / DVSEC 观测。

要点:

  • bump 微凸点,支持 16/20/32/40/64 数据 lane;40/64 配置一般带备用 lane(spec 定义)。
  • Lane Repair:初始化中检测到缺陷 bump/lane 时,用备用 lane 替换以保证良率 —— 板级 PCIe 没有此机制(板级坏 lane 直接降宽度)。
  • 可选 FEC:32 GT/s 高数据率可选,增强可靠性,代价是少量带宽。
  • 时钟对齐:短距可简化 CDR,甚至用转发时钟;无连接器带来的额外均衡压力。
  • 电源状态机:Active / Idle / Deep-Sleep(类似 PCIe L0/L1/L2);3.0 支持把 sideband 一起断电,仅留极小常开电路监听唤醒。
  • Sideband:独立的低速控制通道(上电/复位/管理/调试),不参与数据通路。
  • 3.0 增强:runtime recalibration(运行期重校准)、连续传输模式、紧急停机 / 快速节流、sideband 扩展至 100 mm。
  • 软件观察点:UCIe 不向 OS 暴露 LTSSM;链路状态由固件(SCP/BMC)经 sideband / DVSEC 读取。

UCIe 链路/电源状态机(D2D Adapter 层)

状态说明对应 PCIe
Active正常传输 FLITL0
Idle / L1空闲省电,可快速唤醒L1
Deep-Sleep / L2深度省电;3.0 可连 sideband 一起断电,靠极小常开电路唤醒L2

UCIe 可靠性状态机:CRC 校验 → Replay 重传缓冲 → Lane Repair 切换(e-fuse 记录 repair 签名,上电自检先回放签名)—— 相当于 PCIe DL 的 ACK/NAK + 信用,但额外叠加 Lane Repair 层。

1.3 CXL:复用 PCIe LTSSM + CXL 链路初始化

CXL 不定义新 PHY,物理训练完全复用 PCIe LTSSM(1.0/2.0 基于 PCIe 5.0 PHY @32GT/s;3.0 基于 PCIe 6.0 PAM4 @64GT/s;4.0 双倍至 128GT/s)。CXL 自身的"链路初始化"发生在 LTSSM 进入 L0 之后,属于 CXL 链路/协议层

  • CXL.io:走标准 PCIe TLP(VC0),与 PCIe 枚举完全兼容。
  • CXL.cache / CXL.mem:LTSSM L0 后在 VC1 上建立 FLIT 通道(1.x/2.0 用 68B FLIT;3.0 PAM4 模式用 256B FLIT),完成链路/协议协商后才可承载一致性流量。
  • LTSSM 观测:与 PCIe 相同(Link Status / 训练错误),但 CXL 链路未完成 FLIT 协商时不会进入可用的业务态。

CXL 链路层状态机(LTSSM L0 之后)

阶段说明
LTSSM L0物理链路就绪(复用 PCIe)
FLIT 同步VC1 上建立 FLIT 帧同步/锁定(68B 或 256B)
链路握手交换链路能力、协商角色(Host/Device)
业务态CXL.io / CXL.cache / CXL.mem 正常复用传输
错误/重训链路错误 → 回 LTSSM Recovery 重训 + FLIT 重新同步

CXL 电源状态:复用 PCIe L0s/L1/L2 + CXL 链路低功耗(如 L1 子状态),内存设备侧另有省电语义。

1.4 CCIX:无自有 PHY 状态机

  • 标准形态(CCIX over PCIe):复用 PCIe PHY,直接沿用 PCIe LTSSM 训链(Gen3/Gen4),CCIX 不新增 PHY 状态机。
  • 项目形态(CCIX over UCIe):复用 UCIe 初始化流程。
  • CCIX 自身只有协议层/链路层初始化(物理链路就绪后):VC1 建立、CCIX 协议握手、一致性域协商 —— 属于协议层状态机,不是物理层。

CCIX 协议/链路层初始化状态机(物理链路就绪后)

阶段说明
传输就绪底层(PCIe LTSSM 或 UCIe init)进入 L0 / Data
VC1 建立配置虚通道 1,预留一致性带宽
链路层握手CCIX 链路帧同步、流控/信用建立
协议层协商报文类型 / 能力协商(CHI 风格)
一致性域建立节点加入 coherence domain,配置 Home 职责与地址映射
运行态Request / Response / Data / Snoop 正常流转

1.5 状态机详细对比表(物理层 / 链路层 / 协议层)

① 物理层状态机

维度PCIeUCIeCXLCCIX
自有 PHY 状态机✅ LTSSM(11 主态)✅ 简化初始化流程✅ 复用 PCIe LTSSM❌ 复用底层传输
复杂度高(EQ / 速率扫描 / 宽度协商)低(短距,无连接器)同 PCIe(继承 LTSSM)无(继承底层)
速率协商逐级升速扫描双方预知,快速确认同 PCIe 逐级升速继承底层
均衡 EQGen3+ 必须简单 / 可免同 PCIe继承底层
缺陷处理坏 lane 降宽度Lane Repair 备用 lane同 PCIe(坏 lane 降宽)继承底层
训练时间毫秒级亚毫秒级(更快)同 PCIe 毫秒级继承底层

② 链路层状态机

维度PCIeUCIeCXLCCIX
帧级状态机DL_Down / Init / Active / InactiveD2D Adapter 链路功能(CRC/Replay/L2L)CXL.io 复用 PCIe DL + FLIT 链路CCIX 链路层(VC1 之上)
流控建立InitFC1/2 信用L2L/E2E 信用FLIT 信用(.cache/.mem)VC1 信用
重传机制ACK/NAKReplay 缓冲FLIT CRC / 重放继承底层

③ 协议层状态机

维度PCIeUCIeCXLCCIX
有无协议层状态机❌ 无(事务层非状态机)❌ 无(底座透明)✅ 链路握手 → FLIT 协商 → 业务态✅ VC1 → 链路握手 → 协议协商 → 一致性域
一致性协商Host/Device 角色 + FLIT 模式一致性域 + Home 职责分配

④ 电源状态机

维度PCIeUCIeCXLCCIX
状态L0s / L1 / L2/L3Active / Idle / Deep-Sleep复用 PCIe + CXL 链路低功耗继承底层
唤醒亚微秒 ~ 重训快速唤醒(可留常开监听)同 PCIe继承底层

⑤ 软件可见性

维度PCIeUCIeCXLCCIX
LTSSM / DL 可读✅ Link Status / DL Active❌(固件 sideband / DVSEC)✅ 同 PCIe继承底层
协议层状态可见CXL 能力 / 链路状态Agent CSR(SCP 侧)

1.6 一页总结:各层状态机速查

PCIeUCIeCXLCCIX
物理层LTSSM 11 主态:Detect→Polling→Configuration→L0(+Recovery / L0s / L1 / L2 / HotReset / Loopback / Disable)简化初始化:复位→校准→对齐→Lane Repair→数据复用 PCIe LTSSM无(继承底层)
链路层DL 4 态:Down→Init(InitFC)→Active→InactiveD2D Adapter:CRC→Replay→L2L/E2ECXL.io 复用 DL;.cache/.mem 走 FLIT 链路CCIX 链路帧(VC1)
协议层无(事务层非状态机)无(底座透明)链路握手→FLIT 协商→业务态VC1→链路握手→协议协商→一致性域
电源L0s / L1 / L2-L3Active / Idle / Deep-Sleep复用 PCIe + CXL 低功耗继承底层
软件可见Link Status / DL Active固件 sideband / DVSEC同 PCIe + CXL 能力Agent CSR(SCP)

读法:物理层看"谁训链",链路层看"谁保证可靠帧",协议层看"谁有建链语义",电源层看"谁省电",软件层看"谁看得见"。
一句话对比:PCIe/CXL 有完整分层状态机且软件可读;UCIe 状态机简单且仅固件可见;CCIX 无自有物理状态机,只补协议层建链。


二、软件配置流程

2.1 PCIe:枚举 → 资源分配 → 驱动

流程(由 BIOS/UEFI 或嵌入式 PCIe 枚举器执行):

  1. 枚举 / 发现:从 Root Complex 深度优先遍历,分配 BDF(bus:dev.fn),读 Vendor/Device ID 识别设备。
  2. 能力发现:遍历 Capability 链表(Express、MSI/MSI-X、AER、ACS、ATS、PRI、DOE…)及 4KB 扩展配置空间。
  3. 资源分配:读 BAR 大小 → 分配 Memory/IO 空间 → 写回 BAR;分配总线号。
  4. 使能:Memory Space Enable / Bus Master Enable / 中断(MSI/MSI-X)配置。
  5. 驱动绑定:OS 匹配 Vendor/Device ID → 驱动初始化设备功能。
  6. 运行期管理:热插拔、AER 错误上报、ASPM 电源管理(L0s/L1)。

特点:标准、成熟、全栈软件可见;x86 由 BIOS、ARM 由 UEFI/固件执行枚举。

2.2 UCIe:固件管理(OS 透明)

  • 对 OS:UCIe 透明 —— 软件只看到上层设备(PCIe/CXL 设备),看不到 UCIe。
  • 对固件(SCP/BMC):UCIe 可见,负责配置:
    1. 发现:通过承载协议的 PCIe DVSEC(Designated Vendor Specific Extended Capability)暴露 UCIe 能力(版本、lane 数、速率、sideband 能力)。
    2. 链路配置:lane 宽度 / 速率 / 编码、Lane Repair 状态、FEC 开关。
    3. Sideband 管理:上电/复位顺序、boot 镜像搬运、调试(2.0 起 manageability/DFx 标准化)。
    4. 3.0 增强:early firmware download(固件提前下载)、priority sideband(确定性低时延信令)、运行期重校准。
  • 配置主体:BMC/SCP 固件,非 OS 驱动。

项目结合:CCD 的 UCIe D2D 由 SCP 配置;链路就绪后上层跑 CCIX,SCP 只配 CCIX Agent,不感知 UCIe 细节(arch-notes 口径)。

2.3 CXL:PCIe 枚举 → CXL.io 发现 → CXL.cache/.mem 使能

  1. PCIe 枚举:CXL 设备作为标准 PCIe 设备被枚举(CXL.io 提供配置/发现/中断/复位)。
  2. CXL 能力发现:配置空间中的 CXL DVSEC / 扩展能力暴露:设备类型(Type1/2/3)、支持子协议(.io/.cache/.mem)、FLIT 模式(68B/256B)、设备内存容量。
  3. 链路协商:LTSSM L0 后,VC1 上建立 CXL.cache/.mem FLIT 通道,协商 Host/Device 角色。
  4. 内存资源接入:Type3 内存设备把容量注册为系统内存(Linux cxl 驱动 / Windows Server 原生支持),OS 直接当普通内存使用。
  5. 一致性使能:Type1/2 使能 CXL.cache;Type2 按页面配置 host bias / device bias(3.0 起为增强一致性语义)。
  6. 运行期管理:热插拔、内存 RAS 事件、CXL Switch 拓扑管理(2.0 起)、多级 Fabric(3.0 起)。

2.4 CCIX:PCIe 枚举 → CCIX 能力 → 一致性域配置

标准形态(CCIX over PCIe):

  1. PCIe 枚举:CCIX 设备作为标准 PCIe 设备被发现在 VC0 上。
  2. CCIX 能力发现:配置空间中的 CCIX Extended Capability 暴露:协议版本、支持的传输(VC1)、节点角色(Request / Home / Slave Agent)、一致性域 ID。
  3. VC1 建立:配置 Virtual Channel 1 用于一致性流量(VC0 保留普通 PCIe)。
  4. 一致性域配置:把参与节点(CPU/加速器)加入同一 coherence domain,分配/映射地址(HPA/GPA/SVA)。
  5. SVM 配置:使能 ATS/PASID 做共享虚拟内存,实现零拷贝。
  6. 驱动:CCIX 感知驱动,注册共享内存、处理一致性域事件。

项目形态(CCIX over UCIe):第 2~6 步相同,第 1/3 步由 UCIe 传输替代;CCIX 协议层 CSR 对传输透明 —— SCP 只配 CCIX Agent 即可

2.5 软件配置流程对比表

维度PCIeUCIeCXLCCIX
配置主体BIOS/UEFI + OS 驱动固件(BMC/SCP)固件/BIOS 枚举 + OS(cxl 驱动 / 内存子系统)固件/驱动(依赖底层传输枚举)
发现机制标准枚举 + 配置空间PCIe DVSEC + SidebandPCIe 枚举 + CXL DVSEC/能力PCIe 配置空间 + CCIX 能力
OS 可见性完全可见不可见(透明)作为 PCIe 设备 + 系统内存可见作为 PCIe/加速器设备可见
核心动作BDF / BAR / 中断 / 驱动lane / 速率 / FEC / repair / sidebandCXL.io 发现 / FLIT 协商 / 内存注册 / biasVC1 / 一致性域 / SVM / Agent
热插拔 / 管理成熟(热插拔/ASPM/AER)2.0 起 manageability/DFx内存 RAS + Switch/Fabric 管理无独立机制

三、通信协议核心

3.1 PCIe:TLP / DLLP / 流控

  • 事务层 TLP:读/写/完成/配置/消息(MRd / MWr / Cpl / CfgRd / CfgWr / Msg),支持字节使能、64 位寻址、原子操作。
  • 数据链路层 DLLP:ACK/NAK 重传、InitFC/UpdateFC 流控信用、电源管理;LCRC 校验。
  • 流控:VC(Virtual Channel)× TC(Traffic Class);信用(credit)机制,每 VC 分头/数据信用,防对端缓冲溢出。
  • 传输保障:链路级重传(TLP 缓存直到 ACK),端到端事务完成语义。
  • 一致性:❌ 无;DMA + ATS/PRI 做共享虚拟内存,缓存一致性靠软件。

3.2 UCIe:FDI / RDI + FLIT + 分层流控

  • D2D Adapter 层(UCIe 独有,位于协议层与 PHY 之间):
    • 两个数据接口:FDI(FLIT Data Interface,跑 256B FLIT)与 RDI(Raw Data Interface,自定义流式数据)。
    • 256B FLIT(与 PCIe 6.0 同尺度),含头 / CRC / FEC 字段。
  • 分层流控L2L(Link-to-Link,必选,类 PCIe 链路级)与 E2E(End-to-End,可选,端到端可靠性)。
  • 可靠性:CRC + 重传 + 可选 FEC;Lane Repair 修复物理缺陷。
  • 多协议承载:协议模式(CXL.io / .cache / .mem)或流模式(自定义协议)。
  • 一致性:❌ 底座本身无一致性,由上层协议(CXL/CCIX)提供。

3.3 CXL:CXL.io / CXL.cache / CXL.mem 三子协议

  • CXL.io:基于 PCIe 的配置 / IO / 中断 / 枚举(复用 TLP),保证与 PCIe 生态兼容。
  • CXL.cache:设备一致性访问并缓存主机内存(请求/响应接口),主机为主(host 是唯一一致性主控)。
  • CXL.mem:主机一致性访问设备内存(load/store),支持易失 / 持久内存。
  • FLIT 通道:.cache/.mem 共用链路层,1.x/2.0 用 68B FLIT(2B ARB/MUX + 64B 数据 + 2B CRC);3.0 PAM4 用 256B FLIT(标准 / 低时延 LOpt 两种)。
  • 一致性架构CPU 为主的主从式(asymmetric)——只有主机 cache 控制器做 cache agent,设备侧复杂度低;与 CCIX 对称对等相反。
  • 设备类型:Type1(.io+.cache)/ Type2(.io+.cache+.mem)/ Type3(.io+.mem)。
  • 拓扑:2.0 树型 Switch(内存池化);3.0 多级 Switch + 非树拓扑(mesh/ring)+ GFAM + PBR(最多 4096 节点)。

3.4 CCIX:CHI 报文 + MOESI + 对称对等

  • 双 VC 分工:VC0 跑普通 PCIe(配置/IO/兼容),VC1 跑 CCIX 一致性流量 —— 一条物理链路上"IO 与一致性共存"。
  • 报文风格:基于 Arm CHI(Coherent Hub Interface)的 Request / Response / Data / Snoop 通道。
  • 一致性协议MOESI(M/O/E/S/I 状态);Home Agent 维护目录/内存,Snoop 保序。
  • 对称对等:任意节点都可做 Home / Request Agent,加速器之间可直接一致性交互(不经 CPU 中转)—— 与 CXL 的"CPU 为主"相反。
  • 共享虚拟内存 SVM:ATS / PASID 做地址转换,零拷贝,免软件 cache 刷新。

3.5 协议核心对比表

维度PCIeUCIeCXLCCIX
数据单元TLP(≤4KB)+ 链路 DLLP256B FLIT(FDI)/ RDICXL.io=TLP;.cache/.mem=68B/256B FLITCHI 风格报文(封装进底层传输)
可靠性链路重传 + LCRCCRC + 重传 + 可选 FEC + Lane Repair继承 PCIe + FLIT CRC继承底层传输
流控VC/TC + 信用L2L + E2E 分层流控CXL.io 复用 PCIe;.cache/.mem FLIT 流控继承底层 + VC1
一致性❌ 无❌ 无(底座)✅ CXL.cache/.mem(CPU 主从)✅ MOESI + Snoop
一致性架构主从式(CPU 为主)对称对等(任意节点可为主)
多协议单协议协议模式 / 流模式三子协议动态复用在底层之上叠加

3.6 PCIe over UCIe:D2D Adapter 如何适配 PCIe 事务层 / 链路层

一句话结论:PCIe 的事务层被保留(TLP 语义原样带过去),而 PCIe 的数据链路层 DLL 被替代/吸收 —— 由 UCIe D2D Adapter 同时扮演"事务层打包 + 链路层可靠性"两个角色。

PCIe over UCIe 栈

PCIe 事务层 TLP(保留语义)

UCIe D2D Adapter ★
事务层功能:TLP→FLIT 打包 + ARB/MUX
链路层功能:CRC / Replay + L2L 流控

UCIe PHY(bump)

原生 PCIe 栈

PCIe 事务层 TLP

PCIe 数据链路层 DLL
ACK/NAK · 信用 · DLLP

PCIe PHY

适配关键点:

  1. 接口:PCIe 事务层的 TLP 不再进 PCIe DLL,而是经 FDI(FLIT Data Interface)交给 D2D Adapter,组织成 256B UCIe FLIT;自定义 / 流式协议走 RDI
  2. 事务层功能:TLP / 报文内容装入 FLIT 数据区并附 flit 头 / CRC / 可选 FEC;用 ARB/MUX 把 .io / .cache / .mem(或 PCIe + 流)动态复用;多 lane 打散分发(striping)。
  3. 链路层功能:PCIe DLL 的职责由 D2D Adapter 链路层功能接管 —— 无需实例化独立 PCIe DLL。
PCIe DLL 功能UCIe D2D Adapter 对应
ACK/NAK 重传CRC + Replay(重传缓冲)
信用流控(credit)L2L 流控(必选)+ E2E 流控(可选)
DLLP 管理报文flit 头 / sideband 承担

注意:“PCIe over UCIe” 实际即 CXL.io over FDI(UCIe 1.x 协议层基于 CXL,CXL.io 就是 PCIe),并非在 UCIe 里再跑一套独立 PCIe 事务层 + DLL。软件侧枚举到的仍是标准 PCIe 设备,对 OS 透明。

3.7 PCIe 在 CXL 中的转化(PCIe → CXL)

一句话结论:PCIe 的"三层"在 CXL 里走向不同 —— 事务层原样成为 CXL.io,链路层被拆成两路(CXL.io 复用 PCIe DLL / .cache+.mem 改用 FLIT 链路层),物理层完全复用

CXL 栈(PCIe 之上)

CXL.io(= PCIe TLP)
配置 / IO / 枚举 / 中断

ARB/MUX 动态复用

CXL.cache + CXL.mem
FLIT 报文(68B / 256B)

CXL 链路层

PCIe PHY(复用 LTSSM)

原生 PCIe 栈

PCIe 事务层 TLP

PCIe 数据链路层 DLL
ACK/NAK · 信用

PCIe PHY / LTSSM

转化关键点:

  1. 事务层:PCIe TLP 原样保留为 CXL.io —— 配置空间、枚举、BAR、中断全部走标准 PCIe TLP,兼容 PCIe 生态。
  2. 链路层(分叉)
    • CXL.io 路径:直接复用 PCIe DLL(TLP 帧格式、ACK/NAK、信用流控),跑在 VC0
    • CXL.cache / CXL.mem 路径:改用 CXL 自有 FLIT 链路层(68B FLIT:2B ARB/MUX + 64B 数据 + 2B CRC),跑在 VC1
    • 两路在 ARB/MUX 处动态复用,再上 PCIe PHY —— 一条物理链路同时承载"PCIe 式 IO 帧"与"FLIT 一致性帧"。
  3. 物理层:完全复用 PCIe PHY / LTSSM(1.x/2.0 用 PCIe 5.0 PHY @32GT/s;3.0 用 PCIe 6.0 PAM4 @64GT/s)。
  4. CXL 3.0 变化:PAM4 模式下统一改为 256B FLIT,CXL.io 的 TLP 也封装进 FLIT,不再有独立 TLP 帧格式。
PCIe 各层CXL 中的去向
事务层 TLP→ CXL.io(原样保留)
数据链路层 DLLCXL.io 路径复用;.cache/.mem 路径被 CXL FLIT 链路层替代
流控CXL.io 用 PCIe 信用;.cache/.mem 用 FLIT 流控 + ARB/MUX 复用
物理层完全复用(LTSSM / 编码)

注意:与 UCIe(把 PCIe DLL 整个替代)不同,CXL 是"部分复用 + 部分新增" —— PCIe 的 IO 路径原样跑,一致性路径叠加 FLIT 链路层;这也是 CXL 能"无缝兼容 PCIe 设备 / 驱动 / 枚举"的原因。

3.8 每层数据格式定义

3.8.1 PCIe 各层格式

① 事务层 TLP(Transaction Layer Packet)

┌────────────────────────────────────────────────────┐
│ 事务头 Header(3~4 DW = 12/16B)                    │
│ DW0: Fmt[2:0] Type[4:0] │ TC[2:0] Attr[1:0] │ Length │
│ DW1~3: Requester ID / Tag / BE / 地址 / 完成状态 …   │
├────────────────────────────────────────────────────┤
│ 数据载荷 Payload(0 ~ 4096B,DW 对齐)               │
├────────────────────────────────────────────────────┤
│ ECRC(可选 4B)+ LCRC(4B,必须)                    │
└────────────────────────────────────────────────────┘
字段说明
Fmt / Type事务类型(MRd / MWr / Cpl / Cfg…)与格式
TC / Attr流量类别 / 属性(no-snoop、relaxed ordering…)
Length载荷长度(DW)
Requester ID / Tag请求者 BDF + 事务标签
LCRC链路级 CRC(32b)

② 数据链路层 DLLP(Data Link Layer Packet)

┌──────────────────────┬──────────┐
│ 类型(1B) + 保留(3B)   │ CRC(4B)  │
└──────────────────────┴──────────┘

类型:ACK / NAK / InitFC1 / InitFC2 / UpdateFC / PM_Enter_L1 / PM_Enter_L2 等。

③ 物理层 Ordered Set / FLIT

  • Gen1~5 用 Ordered Set:TS1 / TS2(训链)、SKP(时钟补偿)、FTS(快速训练)—— 每个 16 symbols(4×COM + 12 载荷);
  • PCIe 6.0 用 256B FLIT(取代 TLP/DLLP 帧格式,含 FEC)。
3.8.2 UCIe 各层格式
接口 / 层数据格式
FDI(FLIT Data Interface)256B FLIT:flit 头 + 数据 + CRC(可选 FEC)
RDI(Raw Data Interface)原始数据流,无 FLIT 帧格式
编码128b/130b(高速)或 8b/10b(低速 4 GT/s)
多 lane16/20/32/40/64 lane 打散分发(striping)
3.8.3 CXL 各层格式

① CXL.io:与 PCIe TLP 一致(配置 / IO / 枚举)。

② CXL.cache / CXL.mem FLIT:

  • 68B FLIT(1.x/2.0,PCIe 5.0 PHY):
┌──────────┬───────────────────────┬──────────┐
│ ARB/MUX  │ 数据(4 × 16B slot)   │ CRC(2B)  │
│   (2B)   │                       │          │
└──────────┴───────────────────────┴──────────┘
  • 256B FLIT(3.0,PAM4):
    • 标准型:2B 头 + 240B 数据 + 8B CRC + 6B FEC;
    • LOpt:拆成两个 128B 半,happy path 减 ~5ns 时延,数据 236B。
3.8.4 CCIX 报文格式

CCIX 报文(CHI 风格)封装在 PCIe TLP(VC1)中传输

通道报文内容
Request事务类型(ReadShared / ReadUnique…)+ 地址 + Agent ID + 事务 ID
Snoop监听类型(SnpShared / SnpUnique…)+ 地址 + 请求方
Data缓存行数据(64B 粒度)
Response完成 / 错误应答

CCIX 2.0 起支持 FLIT 传输模式(报文按 FLIT 承载)。

格式速查对比表:

PCIeUCIeCXLCCIX
事务层TLP(≤4KB,3~4DW 头)协议模式承载 CXL / PCIeCXL.io = TLPCHI 报文(封装进 TLP / FLIT)
链路层DLLP(8B:4B 类型 + 4B CRC)FLIT 帧(256B)68B / 256B FLITCCIX 链路帧(VC1)
物理层Ordered Set(Gen1~5)/ 256B FLIT(Gen6)128b/130b 编码 + bump复用 PCIe复用底层
流控单元TLP / DLLPFLIT(FDI)/ RDIFLITFLIT(2.0)

四、一页总表

对比项PCIeUCIeCXLCCIX
层级完整板级协议栈封装内 D2D 传输底座一致性协议栈(PCIe PHY 之上)一致性协议层(跑在传输之上)
物理层状态机LTSSM(11 态,含 EQ)简化初始化 + Lane Repair复用 PCIe LTSSM + FLIT 协商无(继承底层)
链路层状态机DL:Down/Init/Active/InactiveD2D Adapter:CRC/Replay/L2LCXL.io 复用 DL + FLIT 链路CCIX 链路帧(VC1)
协议层状态机无(事务层非状态机)无(底座透明)握手→FLIT 协商→业务态VC1→握手→协商→一致性域
电源状态机L0s / L1 / L2-L3Active / Idle / Deep-Sleep复用 PCIe + CXL 低功耗继承底层
状态机软件可见Link Status / DL Active固件 sideband / DVSEC同 PCIe + CXL 能力Agent CSR(SCP)
软件配置BIOS/驱动全栈枚举固件 DVSEC / Sideband 管理PCIe 枚举 + CXL 能力 + 内存注册PCIe 枚举 + CCIX 能力 + 一致性域
协议核心TLP / DLLP / 信用流控FDI / RDI / FLIT / L2L+E2ECXL.io/.cache/.mem + 68B/256B FLITCHI / MOESI / 双 VC / 对称对等
缓存一致性❌ 无❌ 无(可承载)✅ CPU 主从(.cache/.mem)✅ 对称 MOESI
典型带宽5.0 x16=128GB/s;6.0=256GB/s(双向)1.0 最高 32GT/s;3.0 最高 64GT/s/lane同 PCIe(1.x/2.0=5.0;3.0=6.0;4.0=128GT/s)同 PCIe Gen3/4
功耗高(板级 SerDes)极低(~0.5 pJ/bit)同 PCIe同 PCIe
生态现状主流事实标准活跃(Chiplet 开放标准)活跃(一致性事实标准,S2S/内存扩展)已退役(2022 并入 CXL 联盟)

五、总结

  • D2D:CCD↔CCD 走 UCIe(物理状态机 = UCIe 初始化 + Lane Repair;由 SCP 配置)。
  • 一致性:D2D 上跑 CCIX(SCP 配 CCIX Agent,协议层对传输透明)。
  • S2S:跨 Socket 走 CXL(PCIe PHY,LTSSM 训链;CXL 链路 / FLIT 协商在 L0 后由 SCP/IOD 参与)。
  • 启动顺序(对齐 bootflow_v0.2.md):POR → 复位释放 → ROM Boot → D2D/S2S 链路训练(UCIe init / LTSSM)→ CCIX/CXL 链路协商 → 全局地址编排(SAM)→ AP 释放。
  • 调试观测:PCIe 看 Link Status / LTSSM 寄存器;UCIe 靠 sideband / DVSEC;CCIX 靠 Agent CSR(SCP 侧)。

代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境中 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本中推出的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些值得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提出相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会出现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 DELL服务器的操作系统部署流程包含一系列细致的环节,其适用范围涵盖多种操作系统类型,例如Windows Server与Red Hat Linux等。在启动部署之前,必须确认服务器的光驱设备为DVD驱动器,并且需准备对应的系统安装媒介。下面将详细列出完整的部署步骤: 1. **启动准备**:将随服务器提供的Systems Management Tools and Documentation version 6.0光盘置入服务器光驱,随后设定服务器以光驱作为启动设备。此环节旨在确保服务器在启动阶段能够读取安装光盘内容。 2. **语言设定**:服务器启动后,选定简体中文作为部署语言,并确认接受许可协议条款。 3. **时区选择**:在部署期间,需设定时区为北京、香港、重庆或乌鲁木齐,依据实际地理位置进行适配选择。 4. **系统类型选择**:随后,需选定计划部署的操作系统,支持的版本包括Server 2003 SP2、Server 2003 SP2 64位版本、Windows 2003 SBS SP2、Server 2008、Windows 2008 SBS/EBS x64版本等,以及多种Red Hat和SUSE Linux版本。 5. **RAID设定**:若服务器出厂时已预设RAID配置,则可选择跳过此步骤。若需重新设定RAID,操作时需格外小心,因为这一过程可能引发硬盘数据遗失。 6. **引导分区规划**:设定引导分区的大小,通常C盘建议预留至少20GB的空间,具体容量需根据系统需求进行调整。 7. **网络设定**:网络设定可在系统部署完成后执行,部署期间建议暂时拔除...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值