1. 核心概念为什么要搞 UCIe在传统芯片设计中所有功能都挤在一块硅片上Monolithic。但随着制程越来越贵大家发现不如把大芯片拆成几个小芯片Chiplet再拼在一起。由于之前搞过BMC ,所以使用BMC 来理解.2. 系统架构三层模型UCIe 的设计非常模块化为了兼容现有的技术它采用了类似网络协议的分层结构协议层 (Protocol Layer) * 这是数据包的“内容”。为了省事UCIe 直接支持 PCIe 和 CXL 协议。小白理解 就像你在微信UCIe里发了一个 Word 文档PCIe 数据包。CXL : 它让外插的设备比如扩展内存条读起来就像 CPU 自带的内存一样快且方便。适配层 (Die-to-Die Adapter) * 负责数据的打包、链路的管理、错误校验。Firmware 重点 这里的“链路状态机”是你未来代码工作的核心。物理层 (Physical Layer) * 负责真正的电信号传输。包括模块Module、车道Lane和侧带信号Sideband。3. 必须掌握的“专业黑话” (Terminology)4. Mainband /Sideband在 UCIe 的世界里如果说 Mainband主频带 是八车道的高速公路那么 Sideband侧带信号 就是高速公路旁边那条永不堵塞的应急电话线。4.1 Sideband 的本质是什么Sideband 是一条独立于主数据链路的低速信号通道。物理上独立 即使主链路Mainband因为频率对不齐、信号干扰而完全无法通信Sideband 依然可以正常工作。低速率、高可靠 它通常跑在几百 MHz相对于 Mainband 的数十 Gbps设计极其简单目的就是为了保证“绝对能通”。连接方式 它由两根线组成在时钟和数据的基础上采用简单的串行通信。4.2 Sideband 的核心功能Sideband 的存在主要为了完成三件事协商、配置、监控。① 链路训练的“谈判专家” (Link Training)在主链路开启之前两个 Chiplet 互不相识。Sideband 负责最初的握手“我支持 UCIe 1.1你呢”“我的主链路有 16 个 Lane你那边对等吗”“我们要不要开启电磁干扰屏蔽” 只有 Sideband 谈妥了Mainband 才会上电开始对齐时钟。② 寄存器访问的“传送门” (Register Access)这是固件工程师最常用的功能。你可以通过 Sideband 去读写对面那个 Die 里的寄存器CSR。场景 你在 Die A 上运行固件需要配置 Die B 的某个参数。你不需要走复杂的 PCIe 协议直接发一个 Sideband 数据包就能搞定。③ 错误报告与恢复 (Error Reporting)如果 Mainband 突然断了比如电压不稳硬件会通过 Sideband 抛出一个“救急信号”。固件通过 Sideband 接收中断请求分析错误原因并下令重启链路。4.3 Sideband 的数据包格式 (Message Format)Sideband 不是乱传信号的它有一套标准的“语言”。一个典型的 Sideband 数据包包含Source/Dest ID 谁发给谁。Opcode操作码 是读寄存器Read、写寄存器Write还是单纯的告警Message。Address 目标寄存器的地址。Data 传输的具体数值。5. Mailbox 是个啥在 UCIe 3.0 规范中Mailbox邮箱 是一种关键的通信机制主要用于软件或固件与 UCIe 控制器硬件之间或者两个 Die芯粒的软件/固件之间进行非实时的管理和配置交互。简单来说如果 Sideband 是“电话线”那么 Mailbox 就是挂在电话线两端的“信箱”专门用来投递复杂的配置指令和查询请求5.1 Mailbox 的定义Mailbox 实际上是一组定义在 DVSECDesignated Vendor Specific Extended Capability 空间中的寄存器。 ()在 UCIe 链路的配置空间里你会看到诸如 Sideband Mailbox Index 和 Sideband Mailbox Data 之类的寄存器这就是 Mailbox 的入口。5.2 Mailbox 的主要作用在 UCIe 3.0 系统中它的作用可以归纳为以下几点跨 Die 的寄存器访问 (Register Access)这是最核心的用途。由于 UCIe 的 Sideband 协议支持 Register Access Packets寄存器访问包软件可以通过写入本地 Die 的 Mailbox 寄存器由硬件自动封装成 Sideband 报文去读写对端 Die 的配置寄存器CSR。链路管理与调试 (Management Debug)当链路初始化Link Training卡住或报错时固件可以通过 Mailbox 强制下发一些“特殊指令”给物理层PHY例如手动调整电压摆幅、触发手动重训练等。软件发现与枚举 (Discovery)系统软件如 BIOS 或 OS通过扫描 PCIe 配置空间中的 Mailbox 寄存器来发现 UCIe 链路的存在并获取链路的版本、宽度、速度等静态能力参数。5.3 Mailbox 工作的典型流程作为固件工程师你通常会这样操作 Mailbox检查忙状态 读取 Mailbox Control 寄存器确认上一个任务已完成Status 为 Idle。 ()填充数据 将要发送的命令或目标地址写入 Mailbox Data 和 Mailbox Index。 ()触发执行 在 Mailbox Control 中写入“执行”位Go bit。等待响应 硬件处理完成后会修改状态位或者通过中断MSI/MSI-X通知固件。 ()5.4 为什么 UCIe 3.0 特别强调它在 UCIe 3.0 规范中随着 UCIe-3D3D 堆叠技术和 Manageability可管理性 架构的增强Mailbox 扮演了“管理平面”的入口。它不再仅仅是简单的寄存器读写还被用来承载 MTPManagement Transport Protocol 等高级管理协议用于更复杂的芯片内管理网络通信.6. 低功耗 lowpower L1/L2 状态在 UCIe 3.0 规范中L1 和 L2 指的是链路的低功耗电源状态Power Management Link States。它们允许系统在没有数据传输时关闭部分电路以节省功耗。你可以直接将它们类比为 PCIe 中的 ASPM (Active State Power Management) 状态 。以下是根据规范进行的详细1. L1 状态快速唤醒的低功耗态L1 是一种浅度睡眠状态旨在平衡节能和恢复速度。进入条件当 RDI适配器与物理层接口转换到 PM电源管理状态时进入硬件行为主链路Mainband的发送端Transmitter和接收端Receiver可以被禁用。数据、有效信号Valid、时钟Clock和跟踪信号Track的发送器均处于三态Tri-stated)。恢复过程当本地适配器请求 Active 或远端芯粒请求退出 L1 时物理层会退出到 MBTRAIN.SPEEDIDLE 状态随后迅速恢复到全速工作状态 。特点功耗中等但退出延迟极低适合短时间的数据间歇。2. L2 状态深度睡眠态L2 是一种深度节能状态功耗降至最低但恢复时间较长。进入条件同样由适配器通过 RDI 接口请求进入。硬件行为相比 L1L2 允许关闭更多的逻辑电路。Sideband侧带信号电源管理在 L2 状态下甚至允许关闭 Sideband 的部分电源以进一步省电。恢复过程从 L2 退出时物理层必须回到 RESET复位 状态重新开始初始化流程 [cite: 12]。这意味着它需要经历完整的链路重新训练。特点功耗最低但退出延迟高通常用于系统长时间闲置的场景。L1 与 L2 的核心差异对比固件工程师的视角在开发固件时你需要通过操作 UCIe Link Control 寄存器 或通过 RDI 接口协议 来触发这些状态的转换。你需要权衡系统的“性能需求快速响应”与“功耗指标省电”。例如如果mcu监测到系统负载极低可能会下令让某些不常用的芯片互联链路进入 L2。四种loop 方式① pmd logic loopPMD逻辑环回 / Test logic loop位置最内层在PCSPhysical Coding Sublayer层数据流路径TX-sphy → TX-rawpcs → 直接环回 → RX-rawpcs → RX-sphy核心作用测试最底层的PCS数字逻辑包括编码/解码、状态机、数据通路完全排除PHY模拟/IO部分的影响用于验证芯片内部数字逻辑的正确性。典型场景芯片bring-up早期验证rawpcs模块是否正常工作。② mux2demux loopMUX到DEMUX环回位置APHY内部SerDes数字层数据流路径TX-aphy → TX-piso并行转串行 → 内部绕回 → RX-sipo串行转并行 → RX-aphy核心作用测试SerDes的数字核心部分包括串并转换PISO/SIPO、时钟恢复、串行化逻辑排除IO驱动和外部链路的干扰用于验证SerDes数字子系统。典型场景验证SerDes的串行化/解串化功能排查时钟恢复或数据对齐问题。③ io loopIO环回位置IO引脚附近模拟IO路径数据流路径TX-aphy → TX-io驱动输出 → 芯片IO内部绕回 → RX-io接收输入 → RX-aphy核心作用测试IO buffer、驱动强度、接收端模拟前端AFE验证芯片IO和模拟部分的性能如眼图、噪声、阻抗匹配但信号未离开芯片。典型场景验证IO驱动能力、接收端灵敏度排查模拟前端的问题。④ external loop外部环回位置完全走外部物理链路数据流路径TX-sphy → TX-io → 芯片外部介质PCB走线/连接器/线缆 → RX-io → RX-sphy核心作用测试整个端到端链路包括芯片IO、外部介质、信号完整性验证系统在真实环境下的性能是最接近实际工作场景的测试模式。典型场景量产测试、系统级验证排查外部链路的信号完整性问题。总结从内到外的分层测试逻辑这四种loop模式构成了一个从芯片内部到外部系统的分层测试体系pmd logic loop验证数字逻辑PCSmux2demux loop验证SerDes数字核心io loop验证IO和模拟前端external loop验证完整端到端链路这种分层设计可以帮助工程师快速定位问题如果pmd logic loop失败问题在PCS如果io loop失败问题在IO/模拟部分如果external loop失败问题可能在外部链路或系统级设计。7. Phy 概念PHYPhysical Layer物理层 是实现 Chiplet 之间高速、可靠互联的核心硬件模块主要负责将数字信号转换为可在物理介质如硅中介层、重分布层 RDL上传输的模拟 / 高速电信号并完成信号的接收、恢复和解码。UCIe 定义了两种关键的 PHY 类型APHY 和 SPHY它们共同构成了 UCIe 链路的两端分工明确协同工作。7.1 APHY (Adapter PHY)定位协议适配端通常位于主 SoC/Base Die核心角色作为 “智能端”它不仅是物理层更是协议适配层。它负责将芯片内部原生的高层协议如 PCIe、CXL 或自定义协议转换为 UCIe 协议然后再交给物理层进行传输。主要功能协议映射将 PCIe/CXL 等事务层包TLP封装成 UCIe 数据包。链路管理负责整个 UCIe 链路的初始化、训练、状态机控制和错误处理。流量控制管理数据传输的流控防止接收端缓冲区溢出。安全与可靠性实现链路级的安全认证、数据加密和重传机制。特点功能复杂与上层协议紧密耦合是整个 UCIe 链路的 “大脑”。7.2 SPHY (Standard PHY)定位标准物理端通常位于从 Die/IO Die / 存储 Die如 HBM核心角色作为 “标准端”它是 UCIe 定义的纯物理层实现只专注于高速信号的收发不处理任何高层协议逻辑。主要功能信号收发负责高速差分信号的发送驱动和接收采样。信号完整性通过均衡Equalization、去加重De-emphasis等技术补偿信号在传输中的损耗。时钟与数据恢复从串行数据流中恢复出时钟和数据。电气层训练与对端 APHY/SPHY 进行电气参数协商以达到最佳信号质量。特点功能相对单一是 UCIe 生态中实现互操作性的关键。所有兼容 UCIe 的 Chiplet 都必须实现 SPHY。7.3 APHY 与 SPHY 的关系与典型架构在一个典型的 UCIe 系统中链路是这样构建的plaintext[主SoC Die] [Chiplet Die (如IO Die)]┌───────────────┐ ┌─────────────────────┐│ 高层协议栈 │ │ 特定功能逻辑 ││ (PCIe/CXL等) │ │ (如IO控制器) │└───────┬───────┘ └──────────┬──────────┘│ │┌───────▼───────┐ ┌──────────▼──────────┐│ APHY │——UCIe 链路——→│ SPHY ││ (协议物理) │ │ (纯物理) │└───────────────┘ └─────────────────────┘通信关系UCIe 链路的一端是 APHY另一端是 SPHY或另一个 APHY在 Die-to-Die 的对等场景中。数据流主 SoC 的业务数据如 PCIe TLP先交给 APHYAPHY 将其转换为 UCIe 协议格式再通过 SPHY 转换成高速电信号发送出去。接收端则是反向过程。建链过程链路的初始化和训练由 APHY 主导通过 Sideband 和 Mailbox 与对端 SPHY 进行协商和配置。7.4 核心区别总结8. UCIe Instance 概念在UCIe架构中UCIe Instance 是一个核心的逻辑抽象概念你可以把它理解为一个独立、完整的UCIe链路实例它代表了Die之间一条或多条物理Lane组成的互联通道以及运行在这条通道上的完整协议栈。下面我从定义、组成、作用和典型场景四个方面为你详细拆解1. 核心定义UCIe Instance 一条独立的UCIe链路由一组物理Lane、对应的APHY/SPHY、协议栈链路层、事务层和控制逻辑Sideband、Mailbox组成。一个Die上可以同时存在多个UCIe Instance每个Instance对应一条独立的互联链路连接到不同的Die或同一Die的不同功能区。每个Instance都有自己独立的状态机、配置空间和错误管理机制互不干扰。2. 一个UCIe Instance的完整组成一个UCIe Instance不是单一的硬件模块而是由多个协同工作的子系统构成的完整链路3. UCIe Instance的核心作用资源隔离每个Instance是独立的资源单元拥有自己的带宽、Lane和协议栈避免不同业务流之间的干扰。例如一个Instance用于PCIe存储另一个用于CXL内存扩展两者互不影响。灵活组网支持一个Die通过多个Instance连接到多个Chiplet构建复杂的多Die系统。例如一个主SoC可以通过Instance 1连接IO Die通过Instance 2连接HBM Die通过Instance 3连接AI加速Die。独立管理每个Instance可以独立进行链路训练、电源管理和错误处理。例如可以单独关闭某个空闲的Instance以节省功耗而不影响其他Instance的运行。互操作性基础UCIe标准定义了Instance的行为规范确保不同厂商的Die在同一Instance下能够正确互联和通信。4. 典型场景举例单Die多Instance一个高性能SoC Die上集成3个UCIe InstanceInstance 0连接到IO Die用于PCIe 5.0扩展。Instance 1连接到HBM3 Die用于高带宽内存访问。Instance 2连接到NPU加速Die用于AI推理。多Die对等互联两个计算Die通过一个UCIe Instance进行对等通信实现缓存一致性和任务分发。分层互联在2.5D封装中中介层上的多个UCIe Instance分别连接不同的Top Die和Base Die形成分层的互联网络。5. 与其他概念的关系UCIe Instance vs. Lane一个Instance由1条或多条物理Lane组成如4、8、16条Lane是Instance的物理带宽资源。UCIe Instance vs. APHY/SPHY每个Instance对应一对APHY/SPHY或APHY/APHY负责该Instance的物理层信号收发。UCIe Instance vs. Mainband/Sideband每个Instance都有独立的Mainband数据通道和Sideband控制通道确保控制面和数据面的隔离。9. PCS 是啥在 UCIe 规范中PCS (Physical Coding Sublayer物理编码子层) 是物理层中的“逻辑大脑”。如果说 PMAPhysical Medium Attachment负责的是电信号怎么发电压、驱动、电线那么 PCS 负责的就是这些电信号代表什么意思以及怎么排队。对于固件工程师来说PCS 是你打交道最多的物理层模块因为它直接对接 RDI 接口是链路状态机跳转的核心实现者。9.1 PCS 在架构中的位置UCIe 的物理层Physical Layer其实分为两部分Logical PHY (即 PCS) 负责逻辑处理编码、分帧、状态机。Electrical PHY (即 PMA) 负责模拟电路驱动器、接收器、时钟。9.2 PCS 的核心功能它到底在做什么PCS 的工作可以总结为以下四个“任务”① 数据加扰 (Scrambling)原理 使用伪随机序列对发送的数据进行异或处理。目的 防止信号中出现长时间的连“0”或连“1”。如果电线上全是 1电流会非常大且产生严重的电磁干扰EMI。加扰能让信号看起来很“乱”从而保护电路并维持直流平衡。② 帧对齐与同步 (Framing Alignment)原理 在发送数据流中插入特定的“同步头Sync Header”或特殊字符。目的 接收端的 PCS 会寻找这些特殊标志从而知道一帧数据的开头在哪里。如果没有 PCS 的对齐接收端收到的就是一堆乱码。③ 链路训练状态机 (Link Training State Machine)这是固件开发的重头戏。 PCS 内部实现了 UCIe 定义的状态机从 Reset - Search - Calibration - Active。功能 PCS 负责执行 Sideband 谈好的参数并在主频带Mainband上发送训练序列Training Sequences检查每一条 Lane 是否跑通。④ 通道修复与反转 (Lane Repair Reversal)Lane Reversal 如果封装布线时Die A 的第 0 号线连到了 Die B 的第 63 号线反了PCS 可以逻辑上把顺序倒过来。Lane Repair 在高级封装里如果第 5 条线坏了PCS 会把数据挪到备用通道Spare Lane上跑。9.3 PCS 与 RDI 接口的关系作为固件工程师你通常通过 RDI (Raw Die-to-Die Interface) 与 PCS 沟通你的视角 你往寄存器里写“进入 Active 状态”。适配层的动作 适配层通过 RDI 接口告诉 PCSlp_state_req ACTIVE。PCS 的动作 PCS 开始在物理线上发训练信号等对面回应成功后通过 RDI 回复pl_state_sts ACTIVE。9.4 为什么 BMC 工程师需要关注 PCS在 BMC 管理服务器时如果你发现 PCIe 设备丢失通常是因为物理层没起来。在 UCIe 中如果 PCS 状态卡住比如停在 MBTrain意味着物理链路训练失败。你可以通过读取 PCS 的 Error Status 寄存器 发现是“加扰不同步”还是“找不到同步头”。调试工具 很多芯片支持 PCS 内部的 PRBS (伪随机位序列) 生成器你可以开启它来进行 Loopback 测试验证 PCS 层是否能自发自收。