概述
????点击查看精选 UCIe 系列文章????
????点击进入【芯片设计验证】社区,查看更多精彩内容????
???? 声明:
- ???? 作者主页:【MangoPapa的CSDN主页】。
- ⚠️ 本文首发于CSDN,转载或引用请注明出处【https://mangopapa.blog.csdn.net/article/details/126669055】。
- ⚠️ 本文目的为 个人学习记录 及 知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
- ⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
- ???? 欢迎大家指出文章错误,欢迎同行与我交流 ~
- ???? 邮箱:mangopapa@yeah.net
文章目录
- 1. UCIe D2D Adapter 基本介绍
- 2. UCIe D2D Adapter 主要作用
- 2.1 Die 间参数协商
- 2.1.1 链路初始化中的 Adapter 初始化
- 2.2 链路状态管理
- 2.3 数据可靠传输
- 2.3.1 插入信息
- 2.3.2 可靠传输
- 2.4 多路复用及仲裁
- 3. 参考
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。
在 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 初始化。
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。
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 所示。
需要注意的是:
- 多个协议栈的带宽需求不能超过 UCIe PHY 的带宽能力。
- 若其中某个协议栈某段时间内没有 Protocol Flit 要发送,在选通该协议栈时需要插入 NOP Flit,防止出现 RDI 与 PHY 速率失配。
3. 参考
- UCIe Spec r1.0, Chapter 3
- 深度解读Chiplet互连标准“UCIe”
|
???? 精选往期 UCIe 协议系列文章,请查看【 Chiplet 专栏】????
⬆️ 返回顶部 ⬆️
最后
以上就是忧伤小蘑菇为你收集整理的【UCIe】UCIe D2D Adapter 介绍1. UCIe D2D Adapter 基本介绍2. UCIe D2D Adapter 主要作用3. 参考的全部内容,希望文章能够帮你解决【UCIe】UCIe D2D Adapter 介绍1. UCIe D2D Adapter 基本介绍2. UCIe D2D Adapter 主要作用3. 参考所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复