CXL RCD/VH Mode

阅读: 评论:0

CXL RCD/VH Mode

CXL RCD/VH Mode



🔥点击查看精选 CXL 系列文章🔥
🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥


📢 声明

  • 🥭 作者主页:【MangoPapa的CSDN主页】。
  • ⚠️ 本文首发于CSDN,转载或引用请注明出处【】。
  • ⚠️ 本文目的为 个人学习记录知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
  • ⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
  • 😄 欢迎大家指出文章错误,欢迎同行与我交流 ~
  • 📧 邮箱:mangopapa@yeah
  • 💬 直达博主:loveic_lovelife 。(搜索或点击扫码)

文章目录

  • RCD Mode
  • VH Mode
  • PCIe/VH/RCD Mode 举例
  • RCD 与 VH Mode 协商
  • 如何防止 Hot-Plug 场景下训练到 RCD Mode?
  • 参考


  Flex Bus 可以工作在 PCIe Mode 或 CXL Mode,CXL Mode 又可以进一步细分为 RCD ModeVH Mode ,其中 RCD Mode 仅支持 CXL 1.1 相关特性,不支持 CXL 2.0 及以上新出现的 CXL 特性。

  CXL 协议更迭较快,每一代都有较多新的特性引入。当不同 CXL 版本的 Upstream Port (UP)及 Downstream Port (DP) 出现在同一 CXL 链路上时,为了避免非预期的软件行为,链路两端的组件需协商工作在同一 Link Mode 下。



RCD Mode

  RCD Mode,全称 Restricted CXL Device Mode,是一种功能有限的 CXL Mode。RCD Mode 可认为是工作在 CXL 1.1 下的 CXL 链路。

  RCD 对外显示为 RCiEP,其存在以下约束:

  • 不支持 Hot-Plug;
  • 不支持 68B Flit Mode 之外的其他 Flit Mode;
  • 不支持基于 PBR (Hierarchy Based Routing) 之外的其他路由方式;
  • 链路对 CXL-unaware 软件不可见。


VH Mode

  VH Mode,全称 Virtual Hierarchy Mode,可认为是工作在 CXL 2.0 或更高版本的 CXL 链路。

  有别于 RCD Mode,VH Mode 支持以下特性:

  • VH-capable Device 支持 Hot-Add 及 Switching 功能;
  • 支持 68B Flit Mode、256B Flit Mode 及 Latency-Optimized 256B Flit Mode;
  • 支持 PBR (Port Based Routing)、HBR 等路由方式;
  • 链路对 CXL-unaware 软件可见。


PCIe/VH/RCD Mode 举例

  CXL VH 是一个虚拟的层级,是软件视角的层级,不一定跟物理拓扑完全一致(物理拓扑中的 eRCD 独立于该 VH)。CXL VH 内既可以包含 CXL 组件也可以包含 PCIe 组件。在 CXL VH 内,CXL RP 是 VH 的根节点, 至少应包含 1 个非 eRCD 的 CXL Device ,此外还可以包含 0 到多个 CXL Switch、0 到多个 PCIe Switch 或 0 到多个 PCIe Device。

  上图中,Host 内有 4 个 RP,其中 RP1(不存在 CXL Device)、RP2(不存在 Device)、RP4(不存在 Non-RCD Device)均不符合 CXL VH 定义要求的条件,只有 RP3 作为 Root 物理拓扑可以形成 VH。RP3 作为 Root 的物理拓扑内,DSP1 下的 eRCD 对软件不可见,将其扣除后所形成的 Hierarchy 即为 RP3 作为 Root 的 VH。

  按照工作模式进行分类,上图所示物理拓扑中链路分类如下:

  • PCIe Mode: RP1-PCIe Device1、DSP3-PCIe Device2
  • RCD Mode: DSP1-eRCD1、RP4-eRCD2
  • VH Mode: RP3-USP、DSP2-CXL_Device


RCD 与 VH Mode 协商

  CXL 链路训练期间 UP 及 DP 通过 Modified TS 进行 Link Mode 的协商,若 UP 及 DP 无法就链路工作模式达成一致,则 CXL 链路训练失败。

  对于只支持 CXL 1.1 的 Host 及 Device 称为 eRCH、eRCD,其通过 Modified TS 中的 Alternate Protocol ID/Vendor ID=0x8086 来指示当前为 CXL 1.1;对于 CXL 2.0 及以上版本的 CXL Component,其 Modified TS 中的 Alternate Protocol ID/Vendor ID=0x1e98,同时有相关字段指示 VH Capable。

  UP 及 DP 支持的能力及 Link Mode 协商结果如下表所示。(TODO:下表 UP/DP 有误,写反了。)

  从上表可见:

  • 只有 CXL 链路两端的 UP 及 DP 均为 VH Capable 时才为 VH Mode;
  • 若 Device 为 eRCD 且在初始上电前就已与 CXL Host 硬件连接则为 RCD Mode,通过 Hot-Plug 上接 Host-VH 或 CXL Switch 时,链路训练失败;
  • EP-VH 上接 eRCH 则为 RCD Mode,上接 Host-VH 或 Switch 则为 VH Mode;
  • Switch 上接 Host-VH 则为 VH Mode,上接 eRCH 则训练失败,上接 Switch 不会独立触发链路训练。

  以上 CXL Link Mode 协商过程中,Link Mode 协商失败即意味着 Flex Bus CXL Mode 训练失败,不能直接切换到 PCIe Mode。若想重新针对 PCIe Mode 进行训练,需要关闭 APN 机制后重新触发链路训练。



如何防止 Hot-Plug 场景下训练到 RCD Mode?

  RCD Mode 不支持 Hot-Plug,准确说是不支持 Hot-Plug 后链路训练到 RCD Mode。为了防止 Hot-Plug 后训练到 RCD Mode,有以下两者途径:

  • 对于 eRCH,无论 Device 是否为 RCD 该链路都不支持 Hot-Add。BISO 会在上电后 RCD Mode 训练成功之后关闭 CXL APN 协商,以阻止 CXL Hot-Add。
  • 对于支持 VH 的 DP,不支持 RCD 的 Hot-Plug。BIOS 会在上电后初次 VH/RCD Mode 训练成功之后把 DP DVSEC Flex Bus Port Control 寄存器里的 Disable_RCD_Training Bit 置一。Host 在启动链路训练前依据该字段来判断当前是否为初始上电状态,若非初始上电则为 Hot-Add 进来的,一次关闭后续 RCD Mode 的训练。Disable_RCD_Training 对后续 Non-RCD 的 Hot-Plug 无影响。


参考

  1. CXL Base Spec, r3.0

— END —


🔥 精选往期 CXL 协议系列文章,请查看【 CXL 专栏】🔥

⬆️ 返回顶部 ⬆️

本文发布于:2024-02-05 01:43:45,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170721182461876.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:RCD   CXL   Mode   VH
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23