【UCIe】UCIe D2D Adapter 介绍

简介: 【UCIe】UCIe D2D Adapter 介绍

1. UCIe D2D Adapter 基本介绍


 UCIe D2D (Die-to-die) Adapter 位于 Procotol Layer 及 Physical Layer 之间,如图 1 所示。Adapter 往上通过 FDI (Flit-Aware D2D Interface) 接口连接 Protocol Layer,往下通过 RDI (Raw D2D Interface) 接口连接 Physical Layer。


0d6ad7b1bb7b4fdfbaa136f24cda29da.png


▲图 1:UCIe D2D Adapter 在 UCIe 分层协议中的位置



 在 UCIe 分层协议中,D2D Adapter 主要承担以下几项工作:


   UCIe Die 间的参数协商。


   链路状态管理。


   确保数据可靠传输。相关机制有 CRC、Parity 及 Retry 等。


   多协议栈的多路仲裁及选择。


 以上几大工作中,D2D Adapter 必须实现链路状态管理及参数协商,根据使用场景及需求可以支持数据可靠传或多路仲裁选择。




2. UCIe D2D Adapter 主要作用


2.1 Die 间参数协商


 UCIe Die 间参数协商主要发生在链路初始化及 Retrain 期间,接下来主要讲讲 Adapter 在链路初始化中的作用。



2.1.1 链路初始化中的 Adapter 初始化


 在 UCIe Mainband 传输 Protocol 发来的 Flit 之前,必须对 UCIe 链路进行初始化。UCIe 链路初始化分为 4 个阶段,如图 2 所示,其中,链路初始化最后一个阶段(Stage3)便是 Adapter 初始化。

8b7037c2ca884dedb14eff44dc5de059.png

▲图 2:UCIe 链路初始化的 4 个阶段



 RDI 状态机进入 Active 状态后,链路初始化进入 Stage3 的 Adapter 初始化。Adapter 初始化期间主要进行以下 3 项工作:


  •    查询 Local UCIe 的能力(Capability)。比如支持哪些操作模式、是否支持多协议栈、是否开启 Retry、PCIe Port Type 及 Retimer 相关能力等等。注意:若 Local UCIe 的链路速度为 8GT/s 以上,应该使能 Retry 能力,并在接下来跟对端进行参数交换时请求对端也开启 Retry 能力。


  •    跟对端 UCIe 进行参数交换。在查询完 Local UCIe 具备的能力后,通过 Sideband Message {AdvCap.*} 将自身能力告知对方,这一过程称为 Adapter 的参数交换。双方通过交换参数来获知对方信息并进行协商,协商一致后发送 {FinCap.*} 形成最终结论对链路最终工作状态进行配置。参数交换有个时间限制,从 RDI Active 开始,若 8ms 内没有完成参数交换也没有收到 {Adv/FinCap.*.Stall} 的 Message 来复位 Timer,则触发参数交换的 Timeout 机制。


  •    FDI Bring Up。FDI Bring Up 是指 UCIe Link 两侧的 UCIe 协议层之间经过一系列握手协商,使 FDI 状态机进入 Active 状态。FDI Bring Up 的过程如图 3 所示,这里不作展开,以后会详细讲(TODO)。对于有多组 FDI 接口的情况,每个 FDI 独立进行 Bring Up。



1c2f905b94154a34a9b08bc6dff6725e.png



▲图 3:UCIe FDI Bring Up



2.2 链路状态管理


 链路状态管理主要包括链路的 Power 状态等的管理 (Power Management, PM)。

 UCIe 协议层采用 PCIe、CXL 协议时必须支持 L1、L2 低功耗状态。Adapter 通过与 Protocol Layer 及 Phisical Layer 进行握手,使 UCIe 链路进入低功耗状态。L1、L2 状态下,① 可以对 Global Clock 进行 Gating,② 也可以在系统层面发送 Idle Package。


FDI 支持 L1、L2 Power 状态,握手规则跟 CXl 256B Flit Mode 相同。RDI 也支持 L1、L2,但在 L1、L2 状态下,RDI 内部可以将这两个状态映射为常规非低功耗状态。不作展开,后边会单独开一节讲 UCIe PM (TODO)。


 UCIe 采用 PCIe/CXL之外的其他 Streaming Protocol 时,对其 PM 能力未作要求。对于其他不支持 PM 的协议,在收到远端发来的 PM 请求后,可以回复 PMNAK 来拒绝 PM 请求。



2.3 数据可靠传输


2.3.1 插入信息


 Protocol Layer 发给 Adapter 的 Flit 中,有些给 Adapter 预留的 Reserved 位,比如 Flit_Hdr、DLP、CRC。这些信息需要 Adapter 来进行填充。


   Flit_Hdr:为了保证发出的 Flit 被正确传递到对端对应 Protocol Layer,在 Flit_Hdr 中携带有当前 Flit 的协议类型、协议栈 ID 等信息。对于支持 Retry 机制的 UCIe,Flit_Hdr 中还携带有 Sequence Number 及 Ack/Nak 等信息。


   DLP:对于 Standard 256B Flit 而言,Flit_Hdr 占用了原来 DLP0/DLP1 的位置,若没有 Flit Marker,Adapter 还负责在 DLP Bytes (DLP2:5) 插入 DLLP 信息。


   CRC:CRC 是循环冗余校验,在 D2D Adapter 中计算 CRC 并插入 Flit 适当位置,对端接收到 Flit 后能够通过解析 CRC 检测出最多 3 bit 随机错误。在接收端,若根据接收到的 Flit 计算出的 CRC跟 Flit 中标识的 CRC 不同,则 Invalid 当前 Flit 并请求重传。


 当协议层发送 64 Byte Flit 数据,适配层一般会在有效数据 Flit 的前面加上 2 Byte Flit Header,后面加上 2 Byte CRC值,对于256B Flit一般需要额外增加 2 Byte CRC,每 128B Flit 对应 2 Byte CRC。



2.3.2 可靠传输


 除了 CRC 机制,UCIe 还提供有 FEC、Parity、Retry、Flow Control 等机制来保证数据在链路上的可靠传输。


   FEC:从 Spec 来看,D2D Adapter 在 Flit Mode 下没有涉及到 FEC,在 Raw Mode 下由 UCIe Protocol Layer 来插入 FEC。


   Parity 机制:Parity 机制是一种在数据传输间隙检测物理链路健康状态的机制。若开启了 Parity 机制,在常规数据流之间周期性插入 Parity Bytes,对端解析 Parity Bytes 并判决链路是否出了问题。UCIe Parity 机制仅适用于 On-Package 的 UCIe 链路,对 UCIe Retimer 而言,Parity Bytes 并不占用其 Reciever Buffer Credit,Retimer Rx 也不能将 Rarity 数据写进其 Rx Buffer 中或传递给对端的 Retimer。


   Retry 机制:UCIe Retry 机制是 PCIe 6.0 Flit Mode Retry 机制的简化版。速率为 8GT/s 及以上时,BER 性能相对较差,此时必须有 Retry 机制。Retry 一旦打开,即使中途掉速,仍然使需使用 Retry。想关闭 Retry,需要重新 Link Training。


   Flow Control:流控时 Protocol Layer 通过 FDI 传输 Update_FC DLLP 来更新 Credit 信息,在 Adapter 中需要将其打包为 Optimized_Update_FC 的格式并加载到 Flit 中。在接收端,Adapter 从 Flit 中提取 DLLP 或 Optimized_Update_FC,然后驱动到 FDI 对应接口上。



2.4 多路复用及仲裁


 UCIe 支持多个协议栈共享同一个 D2D Adapter,各协议栈通过独立的一组 FDI 接口连接到 Adapter 上。当多协议栈共享同一 Adapter 时,需要在 Adapter 中实现 Arb/Mux、Stack Mux,通过 Arb/Mux 或 Stack Mux 的选通与否,实现多协议栈对 Adapter 及 PHY 的分时复用。示意图如图 4 所示。


a637994de7d242649b33eb44989486fd.png



▲图 4:UCIe Protocol -> Adapter 配置


 需要注意的是:


   多个协议栈的带宽需求不能超过 UCIe PHY 的带宽能力。


   若其中某个协议栈某段时间内没有 Protocol Flit 要发送,在选通该协议栈时需要插入 NOP Flit,防止出现 RDI 与 PHY 速率失配。



3. 参考


   UCIe Spec r1.0, Chapter 3


   深度解读Chiplet互连标准“UCIe”








目录
相关文章
|
芯片 流计算 内存技术
【UCIe】初识 UCIe
【UCIe】初识 UCIe
2309 2
【UCIe】初识 UCIe
|
物联网 数据安全/隐私保护
【蓝牙mesh】Lower协议层介绍
蓝牙Mesh中的Lower层主要的功能就是对网络数据包进行分片和组包,是位于Upper层和Network层之间,对蓝牙Mesh的分层加密起着非常重要的作用。
206 0
【蓝牙mesh】Lower协议层介绍
|
数据格式 流计算
【UCIe】UCIe 协议层介绍
【UCIe】UCIe 协议层介绍
1290 0
【UCIe】UCIe 协议层介绍
|
数据格式 流计算
【UCIe】UCIe 支持的协议及操作模式
【UCIe】UCIe 支持的协议及操作模式
2025 1
【UCIe】UCIe 支持的协议及操作模式
【UCIe】UCIe Clock Gating
【UCIe】UCIe Clock Gating
532 0
【UCIe】UCIe Clock Gating
|
DataX 图形学
【UCIe】UCIe 物理层介绍(电气物理篇)
【UCIe】UCIe 物理层介绍(电气物理篇)
1645 0
【UCIe】UCIe 物理层介绍(电气物理篇)
|
编解码
SATA系列专题之二: 2.2 Link layer链路层加扰/解扰/CRC解析
资料在进行8b/10b 编码之前,必须先行资料加扰(Scramble)的处理,目的是為了降低EMI(Electromagnetic Interference,电磁干扰)。
|
编解码
SATA系列专题之二:2.0 Link layer链路层概述
link layer的作用大致可以包括以下几点: • Frame flow control • CRC的生成与检测 • 对数据与控制字符的Scrmable/Descramble • 8b/10b编解码 • 将传输层进来的数据转为Frame
|
定位技术 芯片
UART子系统(二) UART协议层 物理层
UART子系统(二) UART协议层 物理层
367 0
UART子系统(二) UART协议层 物理层
【UCIe】UCIe Lane Reversal 介绍
【UCIe】UCIe Lane Reversal 介绍
432 0
【UCIe】UCIe Lane Reversal 介绍