文章来源:https://zhuanlan.zhihu.com/p/
本期我们将讨论 DDR4 的 DBI 数据总线翻转(Data Byte Inversion)特性。
基于 JESD79-4B(4C) / 4.11 节
DDR4 POD IO 标准
在 POD 中,接收器将信号终结(terminated)到 VDD 的高电平,而不是像前代一样终结到一半的 VDD 电压。在低电平状态下,SSTL 和 POD 都有电流消耗,如下图中的绿线所示。实际上,POD 可能会消耗略高的电流,因为其终结电压是 VDD 电压,而SSTL的终结电压仅为 VDD 电压的一半。这在一定程度上被 DDR4 稍低的电源电压所抵消,DDR4 VDD 电压为 1.2V,比 DDR3 的 1.5V 显著降低。
这两种驱动选项之间的主要区别在驱动高电平时突显出来。当驱动高电平时,SSTL 继续以大约等于驱动低电平时的速率消耗电流,电流方向为接收端的 GND 到发送端的 VDD/2,如下图中的红线所示,而 POD 在驱动高电平时不消耗功率,因为收发两端的电压都是 VDDQ。
因此,降低 DDR4 系统功耗的方法是最大化驱动高电平的数量。这时,数据总线反转(DBI)功能就派上了用场。
显然,发送方进行极性翻转后,需要通知接收方此次传输的数据已经经过翻转,不然接收方将接收到错误的数据。DDR4 为每个数据通道(8 或 16 比特)引入一个 DBI 引脚,当发送方将数据翻转为 0b1110_1100 后,DBI 引脚被拉低以指示数据已经经过翻转,接收方需要将数据再次翻转然后使用。
在驱动 DRAM 的 SoC 这一侧,DBI 功能一般由 DDR 控制器实现,DDR PHY 一般不负责此事。写操作时,控制器完成比特翻转后通过 DFI DBI 信号送给 PHY,PHY 只负责原样输出 DQ 和 DBI 信号给 DRAM。读操作时也是同理,PHY 在 DBI 特性上是甩手掌柜。
通过 MR5 使能或者关闭读写 DBI 功能,读写 DBI 功能分别由 1 比特控制。
首先,DBI 省电多少取决于具体数据间的比特翻转情况,也就是平均每次传输中,DBI 能够减少多少次低电平比特传输。以 x8 器件为例,可能的排列组合如下,表格中的 +1 表示算上了此时为低电平的 DBI 引脚:
假设所有比特出现低电平的概率完全随机,那么平均低电平比特数量减少的数学期望为
1/256 x 7 + 8/256 x 5 + 28/256 x 3 + 56/256 x 1 = 187/256 = 0.73
由于完全随机情况下,发生比特跳转的数学期望是 4 次,因此 DBI 平均能够减少 0.73/4 = 18.25% 的比特跳转。
援引美光 DDR4 功耗计算示例中的数据,这大致相当于每个器件节省 18.25% 的读写 IO 动态功耗,大约 28mW,占 DRAM 整体功耗的 7%。具体计算的方法以及场景请参考参考文献中的美光 DDR4 功耗计算 PDF。
另外,DBI 特性也可以节省 SoC 端的 IO 跳转功耗,这个需要另行计算,但笔者个人认为大致和 DRAM 节省的 IO 动态功耗相同。
Read DBI 导致读延迟显著增加
当 read DBI 使能时,读数据返回会有额外 tDBI 个时钟周期延迟。Spec 中在规定 CL 的时候,额外规定了 read DBI 使能时的 CL,比正常 CL 数值大 2 - 4,所以笔者认为这里额外的 tDBI 是 2 - 4 个周期。
Write DBI 与 DM 不可兼得
事实上,DDR4 并没有为 DBI 新增引脚,而是让他和 DM (Data Mask)功能复用同一个引脚。那么在写数据时,DM 和 DBI 只能选择其一。因为 DM 功能只在写数据时会用到,所以读数据时没有这样的困扰,可以同时使能写 DM 和读 DBI 功能。
如果一定要使用写 DBI,并且也要使用写 Mask 功能,也有办法。可以通过控制器的 RMW (Read-Modify-Write)功能,先读回数据,修改要写的比特再写回去,来替代 DM 引脚功能。
增大 DDR 控制器 DFI 逻辑深度
写 DBI 使能时,DDR 控制需要增加相应逻辑判断高电平比特数,以及实现比特翻转的逻辑。读 DBI 时,DDR 控制器也需要根据 PHY 送回来的 dfi_dbi_xxx 信号,翻转读数据比特逻辑。因此 DBI 功能会增加 DDR 控制 DFI 通路逻辑深度,影响 DFI 通路时序收敛。
DFI 作为一组高频率、超大比特位宽的总线,它的时序收敛一般都是 DDR 子系统,甚至 SoC 时序收敛的要点。解决办法也比较直观,在 DDR 控制器输出输入级增加 DFI Pipeline,但这又增加了 DDR 访问的时延,而 DDR 时延又是整个系统时延的关键...
- DDR4 DQ IO 标准变化
- DBI 功能的作用
- DBI 功能原理
-
在一项功耗敏感的应用,可以使用 DBI 功能来节省 DRAM IO 动态功耗,节约的功耗大约在 50mW 量级 (DRAM+SoC/PHY),具体节约的功耗大小取决于数据比特跳转的频率。但 DBI 的开销主要是写方向不能使用 DM 引脚,读方向会增加 2-4 个周期延迟。
TN-40-07: Calculating Memory Power for DDR4 SDRAM
- DDR IP 硬化 - 概览和建议
- DDR 学习时间 (Part B - 6):DRAM ZQ 校正
- DFI 协议功能- LPDDR4 多通道模式
版权归原作者所有,如有侵权,请联系删除
安芯教育是聚焦AIoT(人工智能+物联网)的创新教育平台,提供从中小学到高等院校的贯通式AIoT教育解决方案。
安芯教育依托Arm技术,开发了ASC(Arm智能互联)课程及人才培养体系。已广泛应用于高等院校产学研合作及中小学STEM教育,致力于为学校和企业培养适应时代需求的智能互联领域人才。
到此这篇nvme接口引脚定义(nvme接口长什么样子)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/23849.html