【UCIe】UCIe Clock Gating



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


📢 声明

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


1. 简介


  FDI 或 RDI 接口两侧的模块同属于同一时钟域(Clock Domain),且 Sideband 相关信号(*cfg*)跟 Mainband 信号属于同一时钟域(lclk,Sideband Clock 在 FDI、RDI 上还不是 800 MHz)。

  为了降低功耗,UCIe 提供了一种 可选的 Dynamic Clock Gating 机制 ,来动态关闭或开启协议层、适配层及物理层内的时钟。根据触发 Clock Gating 的条件,UCIe Clock Gating 可以分为 3 种:

  • 依赖于 FDI 状态的 Clock Gating。 当 pl_state_sts 显示 FDI 状态为 Reset、LinkReset、Disable 或 PM 状态时,协议层及 Adapter 中的部分逻辑可以进行 粗粒度 的 Clock Gating。这种情况下进行的 Clock Gating,需要 FDI 上的握手信号来 Ungating。考虑到 LinkError 状态下 Error Handler 还要来处理错误,在 LinkError 状态下禁止 Clock Gating。
  • 依赖于 RDI 状态的 Clock Gating 。 当 pl_state_sts 显示 RDI 状态为 Reset、LinkReset、Disable 或 PM 状态时,Adapter 及物理层中的部分逻辑可以进行 粗粒度 的 Clock Gating。这种情况下进行的 Clock Gating,需要 RDI 上的握手信号来 Ungating。考虑到 LinkError 状态下 Error Handler 还要来处理错误,在 LinkError 状态下禁止 Clock Gating。
  • PHY LSM Active 时的 Clock Gating 。 这是一种 细粒度 的 Clock Gating 机制,发生于 PHY LSM Active 状态,是一种 FDI/RDI Clock Active 状态下的 Clock Gating,其关闭的是 Logical Clock Lane 及 Physical Clock Lane,而非 RDI 上的 lclk。

  FDI 及 RDI 接口上的 Clock Gating/Ungating 具有较大的相似性,下文我们合并介绍。



2. FDI/RDI Clock Gating


  FDI、RDI 进入 Clock Gating 的触发条件即 FDI/RDI 进入了 Reset、LinkReset、Disable 或 PM 状态,此时相关模块无需工作,可以进入 Clock Gating。至于要 Gating 哪些模块,UCIe Spec中并未明确指出。若 RDI 处于 PM 状态且 RDI Clock Gated,PHY 中的 Sideband PLL 仍需保证正常工作,SB PLL 的 800 MHz Clock 是 Always On 的(L2 呢?待议。L2 退出到 Reset)。

  ① FDIRDI Bring Up ,或者 ② FDI、RDI 进入 Clock Gating 后通常 需要在对应接口上进行握手才能启动 Clock(Clock Ungating),使得模块开始工作或继续工作。这里说 “通常”,是因为 “握手” 只是开启时钟的常用方法,除了 “握手” 也需要参考 pl_state_sts 状态及其他模块内或链路的需求。Clock Ungating 的过程往往伴随着 FDI、RDI 状态转移,此处我们不谈状态转移,仅谈握手的部分。

  FDI 及 RDI 接口上均有两对用来 Clock Ungating 的握手信号,分别为:

  • lp_wake_req/pl_wake_ack 。上层* 作为请求的发起方,请求下层* 进行 Clock Ungating。上层通过 lp_wake_req 信号向下层发起请求开启时钟,下层开启时钟后通过 pl_wake_ack 信号进行响应。(Note: 本文中的上层指靠近协议层的部分,下层指该接口靠近物理层的部分。下同。)
  • pl_clk_req/lp_clk_ack 。下层作为请求的发起方,请求上层进行 Clock Ungating。下层通过 pl_clk_req 信号向上层发起请求开启时钟,上层开启时钟后通过 lp_clk_ack 信号进行响应。这组握手动作可以在 任意时刻发起,不依赖于 FDI RDI 的状态

  部分握手规则如下:

  • *_req 应比 *_ack 先行 de-assert,否则会被认为是第二次请求。
  • 若需要 Clock Ungating 来进行 lp_state_req/lp_linkerror 状态转换,上层 lp_wake_req 发出后可以不等待 pl_wake_ack 直接切换 lp_state_req/lp_linkerror 的状态。
  • 若 Clock Gating 时要发送 Sideband 请求到接口另一端,必须先完成握手确保 lclk 起来之后才能通过 RDI/FDI *_cfg_* 发送 Sideband 请求。
  • 若处于 Reset 或 PM 状态下的 FDI/RDI 下一步要转移到 LinkError 状态,其需要在进入 LinkError 状态之前通过 pl_clk_req/lp_clk_ack 握手信号来开启 Clock。 当然也可以在进入 LinkError 之后再置起 pl_clk_req,但必须收到 lp_clk_ack 确保其 Clock 起来后才能进行进一步的状态转移。


3. PHY Clock Gating


  这里的 PHY Clock Gating 仅限于 Lane 上的 Clock Gating。Lane 上的 Clock Gating 是一种可选的能力,该能力在 MBINIT.PARAM 状态下进行协商。

  在 Mainband 数据传输过程中,若数据发送完毕后 Valid 持续拉低 16UI (8 Cycles),就需要对 Clock 进行 Gating 操作。待需要发送数据时,重新启动 Clock。Clock Gating、Ungating 及过程中 Clock、Data、Valid 的值的变化如图 1 所示。


在这里插入图片描述

▲图 1:UCIe PHY Mainband Clock Gating

  Clock Gating -> Ungating 大致分为以下几个阶段:

  1. Normal Operation 。本阶段 Mainband 的 Clock、Valid 及 Data 均正常变化及传输。
  2. Clock Postamble 。MB Data 最后 1 bit 发送完毕之后,若 Valid 持续拉低 16UI,则准备对 Clock 进行 Gating。这 16 UI 称为 Clock Postamble,期间 Clock 正常 Runing:
    • 对于没有阻抗匹配的 UCIe Link,Data 值保持最后一个 UI 时的 Data 值,Valid 为低。
    • 对于存在阻抗匹配的 UCIe Link,前 8 UI 时 Data 保持最后一个 UI 时的 Data 值,后 8 UI Data 值为 High-Z,Valid 始终为低。
  3. Clock Gated 。无固定时长,本阶段 Clock 被关闭,Clock Lane 的值保持 Parking 不变。
  4. Preamble 。时长 1~8 UI。本阶段准配开启 Clock。期间:
    • 对于没有阻抗匹配的 UCIe Link,Data 值保持此前的值不变,Valid 为低。
    • 对于存在阻抗匹配的 UCIe Link,Data 值由此前的 High-Z 给个 0 或 1,Valid 始终为低。
  5. Normal Operation 。Clock 重新开启,重新进行 Mainband 的数据传输。


4. 参考


  1. UCIe Spec r1.0, Chapter 4, 5, 8
  2. UCIe 物理层介绍(逻辑物理篇)




— END —


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

⬆️ 返回顶部 ⬆️

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MangoPapa

请作者喝瓶可乐吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值