ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

UCIe基础学习4:协议栈全景——三层栈与双连接

UCIe基础学习4:协议栈全景——三层栈与双连接 UCIe 协议深度精讲 · 第 04 篇 | 基准UCIe 2.0系列主线20 篇 4 卷一篇一个主题——是什么、为什么、怎么工作、怎么测、坑在哪UCIe基础学习4协议栈全景——三层栈与双连接一、篇头速通先钉住定义UCIe 是封装内 die 间互连die 即裸片制造出来还未封装的单片电路的分层协议栈从上到下三层——Protocol Layer协议层承载四类协议PCIe、CXL、Streaming、MTPD2D Adapterdie 间适配层把数据整理成固定长度的数据块flit并负责可靠性PHY物理层按封装形态提供电气互联。物理连接分两路sideband边带常开干协商和调试和 mainband主带跑数据。三层之间还夹着两个标准接口FDI 和 RDI。本篇就是全景图每层管什么、两个接口怎么衔接、双连接怎么分工、官方 KPI关键性能指标数字是多少。把这张图钉进脑子里后面所有机制都能对号入座。图全系列 20 篇 4 卷导航第 04 篇高亮图源自绘读之前先自查三条你懂 chiplet 为什么拆、die 间互连的基本动机不懂回第 1 篇速通你知道 UCIe 是开放联盟标准、与 PCIe 的分工边界不懂回第 3 篇本篇是全景图——三层各自的细节是后续篇的事Adapter 机制和两个接口的信号清单第 9 篇、PHY第 11-15 篇、Sideband第 8 篇二、三层栈逐层看任何协议栈设计本质上都在回答同一个问题把跑什么和怎么传切开。UCIe 切得比 PCIe 更干净——协议层管跑什么PHY 管怎么传中间夹一个 Adapter 做翻译和质检。图UCIe 三层栈全景——Protocol / D2D Adapter / PHY 三层FDI / RDI 两个接口Sideband / Mainband 双连接图源自绘规范里配合一张官方的分层全景图和上面那张自绘图画的是同一件事官方视角更直观图UCIe 官方给出的分层栈与各层功能划分图源UCIe Spec 2.0Protocol Layer协议层跑什么协议层承载四类协议PCIePCIe 基础规范定义的协议Flit 模式、non-Flit 模式都支持CXLCXL 规范定义的协议缓存、内存、IO 三类语义都在里面Streaming用户自定义协议的通用模式PCIe/CXL 都不通告时它是默认协议MTP管理传输协议Management Transport protocol管理网络报文的传输机制设计上的关键决策是把协议特性和传输格式解耦UCIe 提供好几种 Flit 格式协议层选哪种格式来装数据是另一回事——比如 PCIe non-Flit 模式的包规范允许用 CXL.io 的 68B Flit 格式来装。格式跟协议松绑组合空间就大了。顺带排个雷CXL 的 RCD/RCH/eRCD/eRCH 这几类内存缓冲变体在 UCIe 上不支持。做 CXL 内存场景选型时先记住这条。D2D Adapterdie 间适配层中间人Adapter 是 UCIe 栈里最有软件味的一层职责有四条flit 化传输把协议层的数据整理成固定长度的数据块往下送该加的头、该加的校验都由它管可靠性raw BER原始误码率bit 在物理通道上翻转的概率高于 1e-27 的档位提供 CRC循环冗余校验加 Retry重传低于这个门限可以退化成轻量校验多协议复用同一时刻跑多个协议比如 CXL 的 io/cache/mem 并存时做仲裁和选路术语叫 ARB/MUX仲裁/多路复用链路状态与参数协商跟对端的 Adapter 交换能力、定最终配置再把结果通知协议层这里有一个硬约束也是理解 UCIe 的灵魂主数据通路上的逻辑必须尽量少。时延预算是 2ns 量级数据路径上多放一个转发环节、多存一拍数据预算就超了。所以直连场景封装内两颗 die 面对面主数据通路没有 credit 流控——转发时钟把两侧锁成同频产出的速度就是消费的速度没有缓冲池也就不存在缓冲满的问题。拿它跟 PCIe 的数据链路层Data Link Layer缩写 DLL比一下层的位置很像骨子里完全不同功能PCIe 数据链路层UCIe D2D Adapter数据封装TLP事务层包成帧 / flitflit 直传协议层交下来就是 flit可靠传输LCRC链路 CRC Ack/Nak收对确认、出错重传强制CRC Retry条件性raw BER 高于 1e-27 才上流控VC虚拟通道credit强制直连场景无流控协议复用不归它管ARB/MUX 多协议复用参数协商链路训练时顺带sideband 上专门做一句话Adapter 是精简版 DLL 加协议复用加协商的三合一还在时延上做了极限压缩。PHY物理层怎么传PHY 是三层里唯一硬件味十足的一层管电气互联模拟前端AFE信号的发射接收电路、微凸块bumpdie 和封装之间的小金属凸点、时钟、建链训练、lane数据线修复。逻辑上它分两块逻辑 PHY 管训练状态机、字节到 lane 的映射、修复动作电气部分管收发器电路和电参数。图规范给出的 PHY 三个子组件——逻辑 PHY、电气部分与 sideband训练、映射、修复都在逻辑 PHY 里图源UCIe Spec 2.0这里要拎清一个点也是网上文章翻车最多的地方UCIe 的 PHY 是并行转发时钟架构UCIe-S 和 UCIe-A 都没有 serdes PHY。数据线一根线一个 bit几十上百根并排走时钟线跟数据线一起发接收端拿转发时钟直接采样不需要 serdes串行器/解串器把信号串成一对差分线跑高速、接收端再用 CDR 从数据流里抠时钟那套。serdes 这个词在 UCIe 语境里只出现在对比场景——UCIe 替代的就是 PCIe 这类 serdes 架构。谁要是跟你说UCIe-S 走 serdes基本可以判断他没读过规范。并行架构的账电路简单、时延低、能效好代价是线多、距离近——die 间走线就封装内那点长度出了封装得靠 Retimer中继器接力。建链训练也跟 PCIe 不是一套UCIe 没有 PCIe 的 LTSSM链路训练状态机它的训练状态机叫 LTSMLink Training State Machine挂在逻辑 PHY 里由 sideband 驱动的 MBINIT主带初始化训练流程推进。顺序是 sideband 先起、再训 mainband、最后 Adapter 初始化逐层拉起。三、两个接口FDI 与 RDI三层之间不是拿胶水随便粘的规范定义了两个标准接口这是开放二字的落点。FDIFlit-Aware D2D InterfaceAdapter 面向协议层的接口在 Adapter 和协议层之间走 flit 化数据协议感知——Adapter 把协商好的运行模式通过 FDI 通知协议层协议层按这个模式收发flit 里哪些位归哪层填都在这个边界上分清RDIRaw D2D InterfaceAdapter 面向 PHY 的接口在 Adapter 和 PHY 之间走 raw bit流协议无关——PHY 不关心上面跑的是什么协议它只负责电气传输、训练、加扰这些体力活记起来很省事F 在上协议侧R 在下电气侧。打个比方FDI 是货单交接双方都懂货RDI 是传送带交接只管搬不认货。接口标准化值得多说一句因为这是生态思维的体现三层被接口切开A 厂的协议层、B 厂的 Adapter、C 厂的 PHY只要对上接口握手就能拼到一颗封装里集成成本低、上市快。对验证工程同样重要——接口固定总线功能模型BFM好开发片后互操作测试的代价能压下来。没有这两条标准接口UCIe 就退化成几家大厂内部的私有互连开放联盟的意义就没了。四、双连接Sideband 和 Mainband任何互连系统都有数据面和控制面。UCIe 的做法是把控制面物理隔离出来单独走一路常开的低速通道这就是双连接。Sideband边带常开的后门每个模块一组 sideband挂在辅助电源的常开域上——mainband 没起来、甚至主电源还没上它也活着。构成很简单每个方向 1 根转发时钟线 1 根数据线时钟固定 800MHz跟 mainband 速率完全无关先进封装配一对冗余时钟/数据线坏了能顶上sideband 干三件事参数交换谁支持什么速率、什么宽度、什么协议都在这条路上谈、寄存器访问调试和合规测试全靠它、建链与电源管理协调。我的判断sideband 常开这个设计本质是给链路留一扇永远开着的后门。干过调试的都懂链路起不来时最绝望的是没有任何手段去看里面发生了什么。sideband 保证 mainband 烂成什么样寄存器都还能读——这个能力在硅片调试阶段值回票价。Mainband主带主数据通路mainband 才是真正跑数据的路。每个模块由四样东西组成转发时钟、data valid数据有效信号告诉接收端这一拍算数、track跟踪信号接收端拿它做运行时校准补偿电压温度漂移对采样相位的影响、加 N 条数据 lane。宽度按封装形态分先进封装2.5Ddie 并排贴在硅中介层上x6464 条数据 lane或 x3232 条另配 4 根修复线标准封装2Ddie 平贴传统基板x1616 条或 x88 条没有修复线x8 只允许单模块配置主要给出厂前预键合pre-bonddie 还没贴到封装基板上时测试用图规范给的先进封装单模块结构——x64 数据 lane 时钟/valid/track 4 根修复线 sideband图源UCIe Spec 2.0图标准封装单模块结构——x16 数据 lane时钟/valid/track无修复线图源UCIe Spec 2.0lane 在 mainband 里按模块Module组织。模块是模拟前端结构设计的原子单位——版图、功耗、面积都按一个模块的规模来算。想加带宽就并联 2 个或 4 个模块但共享一个 Adapter 的模块必须同速率同宽度这是硬约束。五、模块配置与 Retimer 场景配置形态单模块先进封装 x64/x32标准封装 x16/x8。多个单模块实例各自带专属 Adapter 时互相独立——两对 die 各跑各的速率和宽度互不绑架多模块2 个或 4 个模块共享一个 Adapter喂同一份协议数据必须同速率同宽度用途是带宽扩展。这个同速同宽约束是协商阶段最常出问题的地方——协商结果跟通告能力对不上建链直接失败Sideband-only标准封装允许只带 sideband 的配置1/2/4 个端口给测试或 manageability可管理性用。这条路的语义是不跑数据只挂管理面和调试面图规范给的两模块共享一个 Adapter 的示例结构图源UCIe Spec 2.0图规范给的 Sideband-only 配置示例——只挂管理面不跑数据图源UCIe Spec 2.0Retimer出了封装的接力die 间互连本来跑的是封装内几毫米要跨封装、上机架就得用 Retimer中继器接力介质可以是光、电缆、毫米波。Retimer 是存储转发节点数据进来要缓冲、要重新计时可靠性不能指望两端的 die 直接管规范给了三条路图规范给的 Retimer 连接全景——两颗 die 各带一个 Retimer中间是 off-package 互连图源UCIe Spec 2.0隧道底层协议的原生 FEC前向纠错/CRCRaw 格式场景外部互连的错误模型符合底层协议PCIe/CXL的假设时把协议的原生比特原样隧道过去纠错和重传由协议层自带的机制管。前提是外部互连的误码特性得达标不然原生纠错扛不住Retimer 自带 CRC Retry整条链路变成三段独立链路——die 到 Retimer、Retimer 到远端 Retimer、远端 Retimer 到对端 die每段各自做独立确认ACK/NAK收到对的回确认、收到错的要重传。三段各管各的账任何一段出错不影响另外两段的可靠性记账Retimer 自备 FEC复用底层 CRC/Replay纠错码自己定替换或叠加原生 FEC校验和重放机制借用底层协议内置的那套为什么 Retimer 场景要多一套 credit 流控直连场景没有流控理由前面说过转发时钟同步、无缓冲、无溢出条件。Retimer 场景必须加因为它是存储转发节点规范要求每个 Retimer 必须实现接收 buffer缓冲buffer 就有被灌满的风险。所以 die 到 Retimer 这个方向要做 credit 流控——credit 就是发送额度接收方给发方一个额度代表我这还能收多少发一块扣一块1 个 credit 对应 256B 数据含 FEC、CRC 等开销die 手上没有 credit 就不许发。credit 返回复用在 valid 信号上不占额外带宽。反向Retimer 到 die在 Adapter 层不流控。六、KPI官方钉死的数字UCIe 是少数把性能目标直接写进规范正文的互连标准。白皮书开篇就强调一份带实打实 KPI 的规范是健康生态的前提。下面的数字一律以 Spec 2.0 原文为准。先说带宽密度沿 die 边缘每毫米能挤出多少 GB/s速率单位 GT/s 即每秒十亿次传输。UCIe 的带宽是贴边堆出来的这个指标最能说明问题速率GT/s先进封装 x64GB/s/mm标准封装GB/s/mm41652883295612494841665811224988168321317224表里基准是 bump pitch微凸块间距先进封装 45µm、标准封装 110µm先进封装 x32 的带宽密度是 x64 的一半。能效单位 pJ/bit每传 1 bit 消耗的皮焦耳能量统计范围是从 FDI 到 bump 再回到 FDIAdapter 和 PHY 全部电路都算进去电压先进封装标准封装0.7V0.5≤12 GT/s、0.6≥16 GT/s0.54 GT/s、1.0≤16 GT/s、1.2532 GT/s0.5V0.25≤12 GT/s、0.3≥16 GT/s0.5≤16 GT/s、0.7532 GT/s注意标准封装跑高速的代价32 GT/s0.7V是 1.25 pJ/bit先进封装对应档 0.6——差一倍多。这就是 2D 用宽松 bump pitch100-130µm换成本、2.5D 用密集 pitch25-55µm换能效的差价选型时这笔账要算清。时延目标≤2ns从 FDI 到 bump 往返16 GT/s 基准。3D 垂直堆叠是另一本账带宽密度 4000 GB/s/mm²9µm pitch、能效 0.05 pJ/bit0.65V、时延 ≤125ps。1ns 是十亿分之一秒125ps 是它的八分之一——die 摞起来才能拿到这种账。拿 1.0 时代的官方白皮书对照数据率、宽度、pitch、信道可达距离channel reach、带宽密度28-224 / 165-1317、能效目标0.5 / 0.25 pJ/b、低功耗进出时间、时延、可靠性 FIT全部逐项一致——1.0 到 2.0 的 KPI 零变化2.0 的增量只在 UCIe-3D 这一列。对选型的人这条信息很值钱1.0 时代定的账2.0 没改口。跟 PCIe 的 serdes 架构对比白皮书给了一组硬数字能效PCIe 那类 serdes PHY 现在约 10 pJ/bUCIe 最多低 20 倍——标准封装 0.50 正好是 10 的 1/20先进封装再压一半到 0.25带宽密度先进封装 1300 GB/s/mm 量级大约是最高效 PCIe serdes 的 20 倍密度弹性bump pitch 从 45µm 收紧到 25µm带宽密度还能再升约 3.24 倍低功耗进出serdes 那类链路进出低功耗要多个微秒UCIe 按速率档是 0.5ns≤16 GT/s到 0.5-1ns≥24 GT/s配合空闲关断能省 90% 以上的功耗可靠性FITFailure In Time1 FIT10^9 小时发生 1 次失效目标 0 FIT 1期望在 1e-10 量级——封装内互连把可靠性目标定得极高版本口径2.0 基准、1.0 基线、3.0 边界写 UCIe 绕不开版本问题先把版本基线定准UCIe 1.0规范文件落款 2022 年 2 月 17 日联盟 2022 年 3 月 2 日官宣面世。两个日期差不到两星期网上常混着写认准落款日和公开日两个时间点。白皮书2022 年的 KPI 表就是 1.0 的基线UCIe 2.02024 年 8 月 6 日发布本系列全篇基准。本篇第六节的 KPI 数字全以 2.0 为准1.0 到 2.0 的 KPI 零变化增量在 UCIe-3D 列和协议模式的细化上UCIe 3.0已于 2025 年 8 月发布。本系列不引用 3.0 的内容——3.0 的技术细节还没逐条对着原文核对过写数字要对读者负责。看别人的 UCIe 文章也先认版本2.0 和 3.0 的数字混着写的大有人在七、三张表照着干活故障模式症状根因定位与证据sideband 起不来辅助电源域没供上、800MHz 时钟没起问题在 PHY 的 sideband 路径sideband 寄存器读不到mainband 建链卡住MBINIT 参数/校准阶段失败速率或宽度协商不匹配问题在 PHY 训练流程或 Adapter 协商训练状态机停在参数/校准阶段多模块协商不一致共享 Adapter 的模块不同速不同宽问题在配置阶段协商结果与通告能力不符建链失败或降速误码与 Retry 开关不匹配raw BER 高于 1e-27 档位但 Adapter 没使能 CRC/Retry问题在 Adapter 的可靠传输配置retry 计数飙升、时延劣化、吞吐掉档时钟域异常两端 REFCLK 不同源sideband 与 mainband 电源域纠缠问题在时钟与电源管理训练不稳定、调试通道失联测试方法手段前置预期sideband 握手观测逻辑分析仪抓 sideband 消息序列参数交换顺序符合规范UP上游端口侧等 DP下游端口侧先发通告是硬顺序MBINIT 流程验证抓 mainband 训练状态机推进参数交换→校准→修复→Active 全流程走通修复动作符合预期宽度速率档位遍历设备支持的最高档确定4 GT/s 到最高档全档建链加灌流量缺档即违例能效实测功耗测量环境就绪FDI 到 bump 往返能耗对照第六节 KPI 表目标档位判断依据判据特征机制定位拿到一个 UCIe 问题先问这是哪一层的事协议语义归协议层flit 格式/可靠性/协商归 Adapter电气/训练/时钟归 PHY接口区分FDI 上跑 flit 且协议感知懂货RDI 上跑 raw 且协议无关只管搬速率档与封装匹配bump pitch 分组决定期望最高速率25-30µm 组到 12 GT/s、31-37µm 组到 16、38-44µm 组到 24、45-55µm 组到 32 GT/s八、文末声明本文技术数据主要依据 UCIe Spec 2.02024-08与 UCIe 官方白皮书2022UCIe 3.0 已于 2025-08 发布本文不涉及 3.0 内容。系列首发CSDN「UCIe 协议深度精讲」| 基准 UCIe 2.0数字均以 UCIe Spec 2.0 为准错误欢迎评论区指出勘误会更新在文末。图片版权归 UCIe Consortium仅用于技术学习交流。
返回列表