【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”








目录
相关文章
|
存储 缓存 测试技术
ZYNQ-AXI Interconnect IP介绍
ZYNQ-AXI Interconnect IP介绍
1052 0
ZYNQ-AXI Interconnect IP介绍
|
9月前
|
异构计算 SoC
深入理解AMBA总线(三)APB interconnect的补充
深入理解AMBA总线(三)APB interconnect的补充
104 0
|
9月前
|
网络性能优化
深入理解AMBA总线(十九)AXI4新增信号以及AXI4-lite
深入理解AMBA总线(十九)AXI4新增信号以及AXI4-lite
274 0
|
9月前
|
存储 数据处理 计算机视觉
深入理解AMBA总线(十五)AXI-stream
深入理解AMBA总线(十五)AXI-stream
272 0
|
缓存 网络性能优化 SoC
ZYNQ-AXI_GP接口和AXI_HP接口的异同
ZYNQ-AXI_GP接口和AXI_HP接口的异同
509 0
ZYNQ-AXI_GP接口和AXI_HP接口的异同
|
定位技术 芯片
UART子系统(二) UART协议层 物理层
UART子系统(二) UART协议层 物理层
300 0
UART子系统(二) UART协议层 物理层
|
数据格式 内存技术
【UCIe】UCIe Sideband 介绍
【UCIe】UCIe Sideband 介绍
686 0
【UCIe】UCIe Sideband 介绍
|
芯片 流计算 内存技术
【UCIe】初识 UCIe
【UCIe】初识 UCIe
1426 1
【UCIe】初识 UCIe
【UCIe】UCIe Lane Reversal 介绍
【UCIe】UCIe Lane Reversal 介绍
263 0
【UCIe】UCIe Lane Reversal 介绍
|
测试技术
【UCIe】UCIe PHY 接口信号
【UCIe】UCIe PHY 接口信号
322 0
【UCIe】UCIe PHY 接口信号