技术 | 关于存储中的DDR纠错码

原创: 闪德资讯 2020-12-11
阅读量 8784

与任何电子系统一样,由于任何一个组件中的设计故障/缺陷或电气噪声,可能会导致存储子系统出现错误。这些错误分为硬错误(由设计失败引起)或软错误(由系统噪声或由于alpha粒子等引起的存储阵列位翻转引起)。


要在运行时处理这些内存错误,内存子系统必须具有高级RAS(可靠性,可用性和可维护性)功能,以在出现内存错误时延长整个系统的正常运行时间。没有RAS功能,系统很可能会由于内存错误而崩溃。但是,RAS功能允许系统在存在可纠正错误的同时继续运行,同时记录不可纠正错误的详细信息以供将来调试之用。


内存子系统中使用的最流行的RAS方案之一是纠错码(ECC)内存。通过为实际数据生成ECC SECDED(单比特错误纠正和双比特错误检测)代码并将其存储在其他DRAM存储中,DDR控制器可以纠正单比特错误并从接收到的数据中检测双比特错误。


ECC代码是由控制器根据实际WR(WRITE)数据生成的。存储器同时存储WR数据和ECC代码。在RD(读取)操作期间,控制器从存储器读取数据和相应的ECC代码。控制器从接收到的数据中重新生成ECC代码,并将其与接收到的ECC代码进行比较。


如果存在匹配项,则不会发生任何错误。如果存在不匹配,则ECC SECDED机制允许控制器纠正任何一位错误并检测到两位错误。这种ECC方案可提供端到端保护,以防止可能在控制器和内存之间的内存子系统中任何位置发生的单位错误。


基于ECC代码的实际存储,ECC方案可以是两种类型:边带ECC或在线ECC。在边带ECC中,ECC代码存储在单独的DRAM中,而在串联ECC中,代码与实际数据存储在相同的DRAM中。


由于DDR5和LPDDR5支持的数据速率远高于其前代产品,因此它们支持附加的ECC功能,以增强存储子系统的鲁棒性。DDR5中的片上ECC和LPDDR5中的Link-ECC是两种这样的RAS方案,可以进一步增强内存子系统RAS的功能。


边带ECC


边带ECC方案通常在使用标准DDR存储器(例如DDR4和DDR5)的应用中实现。顾名思义,ECC代码作为边带数据与实际数据一起发送到内存。例如,对于64位数据宽度,将8个附加位用于ECC存储。因此,当今企业级服务器和数据中心常用的DDR4 ECC DIMM为72位宽。这些DIMM具有两个额外的x4 DRAM或一个x8 DRAM,用于额外的8位ECC存储。因此,在边带ECC中,控制器将ECC代码与实际数据一起写入和读取。此ECC方案不需要其他的WR或RD开销命令。


图片

WR和RD操作与边带ECC一起流动


串联ECC


串联ECC方案通常在使用LPDDR存储器的应用中实现。由于LPDDR DRAM具有固定的通道宽度(LPDDR5 / 4 / 4X通道为16位),因此使用这些存储器的边带ECC成为昂贵的解决方案。例如,对于16位数据宽度,需要为7位或8位ECC代码字的边带ECC分配一个额外的16位LPDDR通道。此外,7位或8位ECC代码字仅部分填充16位附加通道,导致存储效率低下,并给地址命令通道增加了额外的负载,可能会限制性能。因此,内联ECC成为LPDDR存储器的更好解决方案。


内联ECC的控制器不需要为ECC存储提供额外的通道,而是将ECC代码存储在存储实际数据的同一DRAM通道中。因此,存储通道的总数据宽度与实际数据宽度相同。在串联ECC中,对16位通道内存进行分区,以便将内存的专用部分分配给ECC代码存储。当未将ECC代码与WR和RD数据一起发送时,控制器会为ECC代码生成单独的开销WR和RD命令。因此,用于实际数据的每个WR和RD命令分别伴随有用于ECC数据的开销WR和RD命令。高性能控制器通过将几个连续地址的ECC数据打包在一个开销ECC WR命令中,减少了此类开销ECC命令的代价。类似地,控制器在一项开销ECC RD命令中从内存中读取几个连续地址的ECC数据,并将读取到的ECC数据应用于来自连续地址的实际数据。因此,流量模式越连续,由于此类ECC开销命令,延迟损失较少。


片上ECC


随着每一代DDR的出现,DRAM容量增加是很常见的。DRAM供应商通常会收缩处理技术,以实现更高的速度和更好的生产规模经济。随着更高的容量和速度以及更小的处理技术,DRAM存储阵列上单位错误的可能性增加。为了进一步增强存储通道,DDR5 DRAM仅具有用于ECC存储的额外存储。片上ECC是DDR5系统可以实现更高速度的高级RAS功能。对于每128位数据,DDR5 DRAM有8个附加位用于ECC存储。


DRAM在内部为WR数据计算ECC,并将ECC代码存储在附加存储中。在读取操作中,DRAM读取实际数据以及ECC代码,并且可以纠正任何读取数据位上的任何一位错误。因此,片上ECC提供了进一步的保护,以防止DDR5存储器阵列内的单位错误。由于此方案无法提供任何针对DDR通道上发生的错误的保护,因此将片上ECC与边带ECC结合使用以增强内存子系统上的端到端RAS。


Link-ECC


Link-ECC方案是LPDDR5功能,可防止LPDDR5链路或通道上的单比特错误。存储器控制器为WR数据计算ECC,并在特定位上将ECC与数据一起发送。DRAM在接收到的数据上生成ECC,将其与接收到的ECC数据进行比较,并纠正所有单位错误。对于读取操作,控制器和DRAM的作用相反。请注意,link-ECC不能对内存阵列上的单位错误提供任何保护。但是,内联ECC与链接ECC结合使用,可提供针对单比特错误的端到端保护,从而增强了LPDDR5通道的鲁棒性。


广泛使用的存储器RAS功能之一是纠错码(ECC)方案。使用标准DDR存储器的应用程序通常实现边带ECC,而使用LPDDR存储器的应用程序则实现嵌入式ECC。由于具有更高的速度,因此对DDR5和LPDDR5通道具有明显的SI影响,现在甚至分别以裸片上和链接ECC的形式在DDR5和LPDDR5 DRAM上也支持ECC。Synopsys的DesignWare DDR5 / 4和LPDDR5 / 4 IP解决方案提供了高级RAS功能,包括本文重点介绍的所有ECC方案。(作者简介:Vadhiraj Sankaranarayanan是Synopsys的高级技术营销经理。在加入Synopsys前,Sankaranarayanan在Dell,Rambus,Apple和Kawasaki Microelectronics担任过工程师。)

点击此处关注获取最新资讯!

f328f6db93164f84bb23c090c28e7db.png88c1a0acd98aa6023fcbfa1f2ebf421.png

所刊原创内容版权归【闪德资讯】所有,

欢迎转发分享,如需转载,请标明来源。

我的评论

登录后评论

最新评论

180****1279
为了方便交流,大家加老师微信【1379171845】备注(33),免費解疑答惑,朋友圈每日好股分享!

2020-12-17

180****1279
为了方便交流,大家加老师微信【1379171845】备注(33),免費解疑答惑,朋友圈每日好股分享!

2020-12-17

渠道报价
查看更多

DDR3

  • 一年
  • 半年
  • 三个月
  • 一个月

微信订阅

APP下载

存储未来,赢得先机

18126200184

Copyright©2008-2024 闪德资讯 版权所有 粤ICP备18080549号-1

粤公网安备 44030402002744号