阻抗校准
(1) GDDR6给输出提供自动校准阻抗和对输入提供ODT。方便用户在给定的一个范围内调节外部ZQ连接一个120欧姆的电阻连接到地。相当于40欧姆下拉电阻和60/48欧姆的上拉电阻。
(2)输出驱动和ODT可以在REFab期间进行更新。
(3)GDDR6提供的阻抗偏移值,包括PD PU,DQ/DBI/WCK ODT和 CA ODT
(4) 阻抗偏移值不是线性的。对于驱动来讲,负向偏移是增大阻抗,正向偏移是降低阻抗。但对于ODT来讲,负向偏移是降低阻抗,正向偏移是增加阻抗。
EDC
GDDR6存在CRC校验,通过EDC信号反馈给控制端判断。
(1)存在两种检测方式,一种是全速率采样,一种是半速率采样。
(2)关于使能DBI时,如下图所示,绿色箭头表示写,可以得知写的EDC,在DBI解码之前进行CRC的。红色箭头表示读,可以得知读的EDC,在DBI编码知乎进行CRC校验的。
REFRESH
讲一下 GDDR6的refresh吧。
(1)跟LPDDR5一样,有16个bank,所以支持pre-2-bank refresh。
(2)跟常见DDR一样,最大能延迟9*tREFI,也就是9*tREFI中要将每个bank refresh 9次。所以对于per-bank要发送9*16 per-bank
(3)比较特别的一点,GDDR6允许在REFab期间发送WRTR,RDTR,LDFF,可以实现读写training操作。
(4)GDDR6在REFab期间,也可以设置MR3 OP[7:6]=10,可以将颗粒内部的温度读出。
REFRESH MANAGEMENT
(1)为了降低row hammer 的危害,所以对多次ACT 的bank进行refresh,保护数据完整
(2)控制器端会对每个bank 的ACT进行计数,当达到RAAIMT时,需要发送RFM命令,刷新该bank。
(3)RFM包括RFMab ,RFMpb和RFMp2b。相关时序和REF一致。
(4)每次RFM会将ACT计数器减少RAAIMT
(5)RFM是支持提前和延后的,只要计数器不要超过RAAMMT
(6)REF也会减少计数器的值,减少多少具体看颗粒厂商要求。
(7)当颗粒进入self-refresh至少tRAASRF后,计数器清空。少于这个时间不变。
切频操作
(1)颗粒所有命令已完成,所有bank处于idle状态
(2)新的频率,如果频率低于PLL/DLL-on mode下的最小频率,那么需要将PLL/DLL关掉;如果频率在低频模式的最大频率以上,通过配置MR将低频模式关掉。如果新的频率需要ODT,那么在切频之前将ODT打开。
(3)进入self-refresh
(4)改变频率
(5)退出self -refresh
(6)如果需要,执行CA training
(7)如果新的时钟频率在PLL/DLL的工作范围内,并且希望启用PLL/DLL状态,如果它尚未启用,那么通过MRS命令启用PLL/DLL。同样,如果新的时钟频率在低频模式的工作范围内,并且希望使用低频模式,如果它尚未启用,那么通过MRS命令启用低频模式。如果新的时钟频率不需要终端,现在可以安全地禁用终端。
(8)执行WCK2CK训练,如果PLL/DLL打开,那么需要重启PLL/DLL。(正常的WCK2CKtraining)
(9)如果需要,执行读写训练
(10)结束
注意:对于RLmrs, WLmrs, LP2, LP3 or RDQS mode, etc这些需要change的参数,在(2)或者(7)时配置。
DCC占空比修正
主要针对PLL/DLL关闭的情况
需要在WCK2CK training完成前完成。