中文 英语

DDR存储器中需要了解有关纠错码(ECC)的设计师

边带、内联、模上和链路纠错方案的工作方式和它们最适合的应用。

人气

与任何电子系统一样,内存子系统中的错误可能是由于设计失败/缺陷或任何组件中的电子噪声造成的。这些错误被归类为硬错误(由设计失败引起)或软错误(由系统噪声或由alpha粒子引起的内存阵列位翻转等引起)。

为了在运行时处理这些内存错误,内存子系统必须具有高级RAS(可靠性、可用性和可服务性)特性,以便在出现内存错误时延长整个系统的正常运行时间。如果没有RAS特性,系统很可能会由于内存错误而崩溃。然而,RAS特性允许系统在存在可纠正错误时继续运行,同时记录不可纠正的错误细节以供将来调试之用。

ECC概论

存储器子系统中使用的最受欢迎的RAS方案之一是纠错码(ECC)存储器。通过为实际数据生成ECC Secded(单比特纠错和双位错误检测)代码并将其存储在额外的DRAM存储中,DDR控制器可以校正单位错误并检测来自所接收的数据上的双位错误DRAMS。

ECC产生和检查顺序如下:

  • ECC码由控制器根据实际的WR (WRITE)数据生成。该存储器既存储WR数据,又存储ECC代码。
  • 在RD (READ)操作中,控制器从内存中读取数据和相应的ECC代码。控制器从接收到的数据中重新生成ECC码,并与接收到的ECC码进行比较。
  • 如果有匹配,则没有错误发生。如果有不匹配,ECC SECDED机制允许控制器纠正任何单比特错误和检测双比特错误。

这种ECC方案提供了针对可以在控制器和存储器之间的存储器子系统中的任何位置发生的单比特错误的端到端保护。

基于ECC代码的实际存储,ECC方案可以是两种类型:侧带ECC或内联ECC。在侧面带ECC中,ECC码存储在单独的DRAM上,并且在内联ECC中,该代码存储在与实际数据相同的DRAM上。

由于DDR5和LPDDR5比它们的前辈支持更高的数据速率,它们支持额外的ECC特性,以增强内存子系统的健壮性。DDR5中的On-die ECC和LPDDR5中的Link-ECC是两个这样的RAS方案,以进一步加强内存子系统RAS能力。

不同的ECC方案

边带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开销命令。图1描述了WR和RD操作与侧带ECC流动。当接收数据中没有错误时,与内联ECC相比,侧带ECC遭受最小的延迟损失。


图。1: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代码存储在实际数据存储的DRAM通道中,而不是需要一个额外的通道进行ECC存储。因此,内存通道的总体数据宽度与实际数据宽度保持一致。

在内联ECC中,对16位通道内存进行分区,以便将内存的专用部分分配给ECC代码存储。当ECC码不随WR和RD数据一起发送时,控制器对ECC码分别生成开销的WR和RD命令。因此,对于实际数据的每一个WR和RD命令,都伴随着一个针对ECC数据的开销WR和RD命令。高性能控制器通过将多个连续地址的ECC数据打包到一个开销型ECC WR命令中来减少这种开销型ECC命令的损失。同样,控制器通过一个开销ECC RD命令从内存中读取多个连续地址的ECC数据,并将读出的ECC数据应用到连续地址的实际数据中。因此,流量模式的顺序性越好,这种ECC开销命令造成的延迟损失就越小。图2描述了带有内联ECC的WR和RD操作流程。


图2:采用内联ECC的WR和RD操作流程。

On-Die ECC
随着每一代DDR的出现,DRAM容量的增加是很常见的。DRAM厂商通常会缩小工艺技术,以实现更高的速度和更好的规模经济。随着更高的容量和速度加上更小的处理技术,DRAM存储器阵列上出现单比特错误的可能性增加了。为了进一步支持内存通道,DDR5 dram有额外的存储空间,仅用于ECC存储。On-die ECC是一种先进的RAS功能,DDR5系统可以实现更高的速度。对于每128位数据,DDR5 dram有8位额外的ECC存储。

DRAM在内部计算ECC的WR数据并将ECC代码存储在额外的存储中。在读取操作上,DRAM读出实际数据以及ECC代码,并且可以在任何读取数据比特上校正任何单位错误。因此,导在DDR5内存阵列内的单比特错误提供进一步保护。由于该方案不提供任何防止DDR通道上发生的错误的保护,因此模具ECC与侧面带ECC一起使用,以便在存储器子系统上增强端到端RAS。图3描述了WR和RD操作与导通ECC流动。


图3:带On-die ECC的WR和RD操作流程。

Link-ECC
link - ecc方案是一种LPDDR5特性,可以防止LPDDR5链路或信道上的单比特错误。内存控制器为WR数据计算ECC,并随数据一起发送特定位的ECC。DRAM对接收到的数据生成ECC,对接收到的ECC数据进行检查,并纠正任何单比特错误。控制器和DRAM的角色在读取操作时颠倒。请注意,link-ECC不提供任何保护,以防止内存阵列上的单比特错误。然而,内联ECC与链路ECC结合,通过提供端到端保护,防止单比特错误,增强了LPDDR5信道的健壮性。图4描述了使用link-ECC的WR和RD操作流程。


图4:采用Link-ECC的WR和RD操作流程。

结论

其中一个广泛使用的内存RAS功能是纠错码(ECC)方案。使用标准DDR存储器的应用通常实现侧带ECC,而使用LPDDR存储器的应用实施内联ECC。因此,速度较高,因此在DDR5和LPDDR5通道上发音为SI效果,即使在导芯和链接-ECC的形式的DDR5和LPDDR5 DRAM上也支持ECC。Synopsys'设计软件DDR5 / 4和LPDDR5 / 4 IP解决方案提供高级RAS功能,包括本文突出显示的所有ECC方案。



1评论

re 说:

精彩的解释。感谢您提供此信息!

发表评论


(注意:此名称将公开显示)