1. DBI(数据总线反转)是什么?
DBI 是一种优化技术,在写入和读取数据时,可以对数据进行反转,以减少电力消耗。在 DDR 存储器中,写数据和读数据传输会经过多个电路和信号线,DBI 通过反转数据,可以减少传输中的噪声和功耗。
2. phydbi_mode 参数
phydbi_mode
参数控制 DBI 的生成和数据反转是由 MC(Memory Controller 内存控制器) 还是 PHY(Physical Layer 物理层) 来执行的。该参数的值有两种情况:
- phydbi_mode = 0:MC 控制 DBI 的功能,
dfi_rddata_dbi_n
信号是必须的。在这种模式下,内存控制器负责产生并管理 DBI 数据和反转操作。 - phydbi_mode = 1:PHY 控制 DBI 的生成和数据反转。在这种模式下,物理层(PHY)负责处理所有的 DBI 生成和数据反转。
3. MC 和 PHY 的角色
- MC(内存控制器):内存控制器可以启用 DBI 功能,负责在写数据时反转数据,并且支持
phydbi_mode
的两种模式(即 MC 可以生成 DBI 也可以接受由 PHY 处理的 DBI 数据)。 - PHY(物理层):物理层是处理实际的数据传输的硬件层。在
phydbi_mode = 1
时,PHY 负责生成和反转数据。但如果 PHY 不支持 DBI,内存控制器依然需要能够生成并处理 DBI 数据。
4. DBI 的作用
- 写数据反转:DBI 功能会对写入数据进行反转。这意味着在数据传输到 DRAM 时,数据可能被反转过来。根据 DBI 模式,反转操作可以由 MC 或 PHY 来执行。
- 读数据反转:在数据从 DRAM 读取出来时,也可能需要对读数据进行反转操作。
5. DBI 和 CRC 一起启用时的注意事项
如果系统同时启用了 DBI 和 CRC(循环冗余校验),需要特别小心,确定在正确的阶段进行 CRC 校验和 DBI 反转操作,以确保两者能够正常配合工作。DBI 和 CRC 在系统中的操作顺序和位置非常重要,必须确保它们不会相互干扰。
6. 不同模式下的信号
- 当
phydbi_mode = 0
时:- PHY 通过
dfi_rddata_dbi
信号传输读取的 DBI 数据,和dfi_rddata
信号同时发生。 - 内存控制器通过
dfi_wrdata_mask
信号传输写入的 DBI 数据,和dfi_wrdata
信号同时发生。
- PHY 通过
- 当
phydbi_mode = 1
时,PHY 负责生成和管理数据的反转操作。
相关寄存器
uMCTL2
- DFIMISC.phydbi_mode(0x190)
- DBICTL.rd_dbi_en/wr_dbi_en(0x1c0),需要注意的是写的dbi开启了和dm功能好像是只能是二选一。
PUB
- PGCR3.RDBI/WDBI(RDBICLSEL和RDBICL需要配合一下)
- 相关的模式寄存器MR5
本文作者:
ICXNM-ZLin
本文链接: https://talent-tudou.github.io/2024/12/28/DFI/DFI Spec-Data Bus Inversion/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
本文链接: https://talent-tudou.github.io/2024/12/28/DFI/DFI Spec-Data Bus Inversion/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!