【JESD79-5之】4 DDR5 SDRAM命令描述和操作-37(CRC)

4.37 CRC

在这里插入图片描述

4.37.1 CRC多项式和逻辑方程

在这里插入图片描述

CRC校验原理及步骤

https://blog.csdn.net/d_leo/article/details/73572373
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DDR5支持对写操作和读操作进行CRC校验。写CRC和读CRC可以通过单独的模式寄存器位进行启用。写CRC和数据屏蔽功能不能同时支持,也不能同时启用。

在这里插入图片描述

DDR5使用的CRC多项式是ATM-8 HEC,即X^8+X^2+X^1+1,与DDR4使用的相同。
一个用于64位数据的8位CRC的组合逻辑块实现包含TBD个两输入异或门,分布在八个深度为6的异或门树中。
364显示了DDR5 CRC的错误检测覆盖范围。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.37.2 x4设备的CRC数据位映射

在这里插入图片描述

4.37.3 x8设备的CRC数据位映射

在这里插入图片描述

131显示了x8设备的详细位映射。该位映射在写入和读取CRC操作之间通用的。x8设备具有两个DQ半字节,每个DQ半字节都有自己的八个CRC位来保护64个数据位。因此,x8设备将实现两个相同的CRC树。

在这里插入图片描述

4.37.4 x16设备的CRC数据位映射

在这里插入图片描述

132显示了x16设备的详细位映射。该位映射在写入和读取CRC操作之间通用的。x16设备具有四个DQ半字节,每个DQ半字节都有自己的八个CRC位来保护64个数据位。因此,x16设备将实现四个相同的CRC树。

在这里插入图片描述

4.37.5 x4, x8 and x16设备的写CRC

在这里插入图片描述

控制器根据第4.37.2节到第4.37.4节中所示的方式生成CRC校验和,并形成写入数据帧。

在这里插入图片描述

8设备中,可以独立地针对每个半字节(nibble)启用或禁用写入CRC功能。对于x8设备,定义了两个单独的写入CRC使能MR位(用于上半字节和下半字节)。当至少有一个写入CRC使能位在x8设备中设置为“1”时,写入CRC使能模式的时序将应用于整个设备(即两个半字节)。当在x8设备的一个半字节中启用写入CRC而在另一个半字节中禁用写入CRC时,DRAM不会对禁用的半字节进行CRC错误检查,因此禁用的半字节不会影响ALERT_n信号和与CRC错误相关的任何内部状态位。

在这里插入图片描述

对于x4或x16设备,根据MR表(图待定),只使用两个写入CRC使能位中的一个。未使用的写入CRC使能位在x4和x16中不起作用,即对于x4和x16设备,MR50 OP[2]设置为低电平。

在这里插入图片描述
在这里插入图片描述

DRAM会通过将接收到的校验和与计算得到的校验和进行比较,来检查每个启用写入CRC的半字节中的接收码字是否存在错误。如果任何半字节存在不匹配,DRAM将使用ALERT_n信号报告错误。
DRAM可以在不等待完整写入的CRC检查的情况下将数据写入DRAM核心。如果错误数据被写入DRAM核心,那么控制器将重试事务并覆盖错误数据。控制器负责数据的一致性。这意味着即使在未经CRC检查的情况下写入了错误数据,控制器会负责确保数据的正确性,并在必要时进行重试和修复。
当写入CRC启用时,不会添加写入延迟修正器。

4.37.6 写CRC自动禁用

在这里插入图片描述

在编程中设置写CRC自动禁用模式使能位MR50:OP[4]'1',即可启用写CRC自动禁用模式。启用此模式后,DDR5 SDRAM会计算每个设备的写CRC错误次数,无论配置是x4、x8还是x16。当写CRC错误次数超过在MR51:OP[6:0]中编程的写CRC自动禁用阈值(范围为0127)时,DDR5 SDRAM会禁用所有四位字节的写CRC错误检查,并将写CRC自动禁用状态位MR50:OP[5]设置为'1'。要超过写CRC自动禁用阈值,写CRC错误次数必须在此处描述的写CRC自动禁用窗口内发生。

在这里插入图片描述
在这里插入图片描述

除非设置了写CRC自动禁用状态位,否则在预定的写入次数之后,写CRC错误计数器将被重置。这个预定的写入次数可以在MR52:OP[6:0]中编程为0127之间的值,其中0表示无限窗口,因此在每个写CRC自动禁用窗口期间,写CRC错误计数将累积。一旦设置了写CRC自动禁用状态位,即使写CRC错误计数器在阈值以下被重置,写CRC错误检查也不会在写CRC自动禁用窗口结束时重新启用。

在这里插入图片描述
在这里插入图片描述

可以通过将写CRC自动禁用状态位MR50:OP[5]重置为'0'来重新启用写CRC错误检查。这将重置写CRC错误计数器并重新启动写CRC自动禁用窗口。

在这里插入图片描述

在更改写CRC自动禁用阈值(在MR51:OP[6:0]中编程)或写CRC自动禁用窗口(在MR52:OP[6:0]中编程)之前,主机应禁用写CRC自动禁用模式,即将MR50:OP[4]设置为0。一旦在MR51和/或MR52中编程了更新的值,可以(重新)启用写CRC自动禁用模式,即将MR50:OP[4]设置为1。如果已启用写CRC自动禁用模式,则禁用该模式将重置DRAM的写CRC错误计数器并重新启动写CRC自动禁用窗口。然而,如果先前已将写CRC自动禁用状态位设置为'1',则主机需要将MR50:OP[5]设置为'0'以恢复错误计数。

在这里插入图片描述

只有在CRC写自动禁用模式被禁用(MR50[4]=0)时,才允许更改写CRC自动禁用阈值(MR51)和窗口(MR52)的设置。
如果达到了CRC自动禁用阈值,并且由于当前或先前的写CRC错误,DDR5 SDRAM已经将ALERT_n置为低电平,则在满足CRC_ALERT_PW_min的条件下可以释放ALERT_n。
当写CRC自动禁用模式被禁用时,即MR50:OP[4]=0,即使发生写CRC错误,写CRC错误计数器可能仍保持重置值。

4.37.7 x4, x8 and x16设备的读CRC

在这里插入图片描述

DDR5 SDRAM根据第4.37.2节到第4.37.4节中所示的方式生成CRC校验和并形成读取的数据帧。控制器可以通过比较接收到的校验和与计算得到的校验和来检查每个半字中的代码字是否有错误,如果任何一个半字中存在不匹配,则控制器可能会重试事务。
当启用读取CRC时,读取延迟增加取决于数据速率,如表365所示。

在这里插入图片描述

4.37.8 CRC突发顺序

在这里插入图片描述

当启用写CRC时,CRC位是根据写命令的顺序突发地址顺序计算的。在BL16中,这个顺序是'0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F',而在BC8 OTF中,这个顺序是'0,1,2,3,4,5,6,7,T,T,T,T,T,T,T,T''8,9,A,B,C,D,E,F,T,T,T,T,T,T,T,T'

在这里插入图片描述

当启用读CRC时,DDR5 SDRAM的CRC生成器会覆盖CA突发顺序位C3和C2为'00',并且CRC位是根据读命令的顺序突发地址顺序计算的。在BL16中,这个顺序是'0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F',而在BC8 OTF中,这个顺序是'0,1,2,3,4,5,6,7,T,T,T,T,T,T,T,T''T,T,T,T,T,T,T,T,8,9,A,B,C,D,E,F'。覆盖值不会修改实际的数据突发顺序,只用于CRC计算。实际的数据突发遵循读命令中C3和C2指示的突发顺序。

在这里插入图片描述
在这里插入图片描述

4.37.9 写CRC错误处理

在这里插入图片描述

当DRAM在任何半字中检测到接收到的代码字的CRC错误时,它会将ALERT_n信号驱动为'0',持续TBD个时钟周期。
133中定义了到ALERT_n信号的延迟时间为tCRC_ALERT。
DRAM在检测到CRC错误时会将MR50的A[3]写入CRC错误状态位设置为'1'。直到主机使用MRW命令显式地清除它,写CRC错误状态位将保持在Group At '1'

在这里插入图片描述

当控制器检测到错误脉冲宽度时,它会重试写入事务。控制器了解ALERT_n(在初始化期间)的最坏情况延迟,并可以相应地备份事务,或者控制器可以更智能地尝试将写入CRC错误与特定的rank或事务相关联。控制器还负责打开任何页,并确保以一致的方式重试写入。
如果存在多个CRC错误,控制器可能会看到比TBD个时钟周期更长的脉冲宽度,因为ALERT_n是一个串联总线。

在这里插入图片描述
在这里插入图片描述

4.37.10 BC8模式CRC位映射

在这里插入图片描述

在BC8模式下,CRC位始终在第17和第18个UI上传输。当在BC8读取期间启用读CRC时,DRAM会在切割的数据突发期间将DQ位驱动为高电平,而DQS由DRAM进行切换。当在BC8写入期间启用写CRC时,DQ位必须驱动为高电平,而DQS必须由控制器在切割的数据突发期间进行切换。在BC8模式下,读取CRC和写入CRC位是通过将切割数据突发的输入替换为全为'1'的值来计算的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.37.11 BL32模式CRC位映射

在这里插入图片描述

在BL32模式下,CRC位分别针对数据的前半部分和后半部分进行计算。数据的前半部分的CRC位在第17和第18个UI上传输,而数据的后半部分的CRC位在第35和第36个UI上传输。
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值