中文 英语
18.luck新利
的意见

设计师需要了解什么纠错码(ECC)在DDR记忆

边带、内联、on-die和链接错误校正计划工作和他们最适合的应用程序。

受欢迎程度

对于任何电子系统,内存子系统中的错误可能是由于设计故障/缺陷或电噪音的任何一个组件。这些错误分为hard-errors(设计造成的故障)或软件出错(由系统噪声或数组内存位翻转由于阿尔法粒子,等等)。

来处理这些内存错误在运行时,内存子系统必须有先进的RAS(可靠性、可用性和可服务性)特性延长整个系统正常运行时间的内存错误。没有RAS特性,该系统将最有可能由于内存错误崩溃。然而,RAS特性允许系统继续操作时矫正错误,同时为未来的调试日志无法改正的错误的细节。

ECC概论

最受欢迎的RAS方案中使用的内存子系统是纠错码(ECC)的记忆。通过生成ECC secd(一位纠错和双刃错误检测)编码的实际数据和存储额外的DRAM存储,DDR控制器可以纠正一位错误和检测双刃错误收到后发展出的数据。

ECC生成和检查序列如下:

  • ECC代码生成的控制器是基于实际的或者说是(写)的数据。内存存储WR数据和ECC的代码。
  • 在RD(读)操作,控制器读取数据和各自的ECC代码的内存。控制器再生的ECC代码接收的数据并将它收到了ECC的代码。
  • 如果匹配,那么没有错误发生。如果有不匹配,ECC secd机制允许控制器纠正一位错误和检测双刃错误。

这样的ECC计划提供了一个端到端的保护一位错误可能发生在控制器和内存之间的内存子系统。

基于ECC的实际存储代码,选举投诉委员会计划的两种类型:边带ECC或内联ECC。边带ECC的ECC密码存储在单独的后发展出和内联ECC密码存储在同一个后发展出与实际数据。

DDR5和LPDDR5支持更高的数据速率比他们的前辈们,他们支持额外的ECC特性对于提高内存子系统的鲁棒性。On-die ECC DDR5和Link-ECC LPDDR5是两个这样的RAS计划进一步提高内存子系统RAS功能。

不同的ECC方案

边带ECC
边带ECC方案通常是在应用程序中实现的使用标准的DDR记忆(如DDR4和DDR5)。正如它的名字所示,ECC的代码发送边带数据以及实际数据到内存中。例如,对于一个64位的数据宽度,8位用于ECC存储。因此,DDR4 ECC dimm,常用在当今企业级服务器和数据中心,是72位宽。这些容量有两个额外的x4后发展出或一个×8 DRAM ECC的额外的8位存储。因此,边带ECC的控制器代码写入和读取的ECC和实际的数据。不需要额外的弯角或RD开销命令ECC方案。图1描述了WR和边带ECC和RD操作流。当接收的数据没有错误,边带ECC与内联ECC招致最小延迟代价。


图1:WR和边带ECC和RD操作流。

内联ECC
内联ECC方案通常使用LPDDR记忆中实现应用程序。随着LPDDR达利克有一个固定信道宽度(LPDDR5/4/4X通道16位),边带ECC与这些记忆成为一个昂贵的解决方案。例如,对于一个16位data-width,额外的16位LPDDR通道需要分配给边带ECC 7或8位ECC代码字母。此外,7或8位ECC代码字母填满16位额外的通道只有部分,导致存储效率低下和添加额外的负载的地址命令通道,这可能限制性能。因此,内联ECC对于LPDDR记忆变成了一个更好的解决方案。

而不需要额外的渠道ECC存储控制器在内联ECC ECC的代码存储在相同的DRAM通道实际数据的存储位置。因此,整体的data-width实际data-width内存通道仍然是一样的。

内联ECC的16位通道内存分区,这样一个专门的ECC代码分配比例的内存存储。ECC代码时不发送的车手和RD数据,控制器生成单独的开销WR和RD命令ECC密码。因此,每一个车手和RD命令实际数据是伴随着一个开销WR和RD命令分别选举投诉委员会的数据。高性能控制器减少惩罚这样的开销ECC命令包装ECC的数据在一个开销ECC中几个连续的地址或者说是命令。同样,控制器读取几个连续的ECC数据从内存地址在一个开销ECC RD命令,可以读出ECC数据应用于实际数据的连续地址。因此,连续的交通模式越多,延迟罚款少是因为这样的ECC开销的命令。图2描述了与内联ECC WR和RD操作流。


图2:与内联ECC WR和RD操作流。

On-die ECC
每一代DDR, DRAM的共同能力增加。也是常见的DRAM厂商缩小工艺达到更高的速度和更好的规模经济生产。以更高的容量和速度再加上小工艺,任何一点错误的可能性增加的DRAM内存数组。进一步巩固记忆频道,DDR5后发展出有额外的存储的ECC存储。On-die ECC DDR5系统是一种先进的RAS功能,可以使更高的速度。对于每一个128位的数据,DDR5后发展出有8额外比特ECC存储。

达利克内部计算的ECC WR数据和ECC的代码存储在额外的存储。读操作,达利克宣读的实际数据和ECC的代码,可以纠正一位错误的读数据位。因此,on-die ECC提供进一步的保护出现了错误在DDR5内存数组。这个方案没有提供任何防止错误发生在DDR频道,on-die ECC与边带ECC用于提高端到端RAS内存子系统。图3描述了WR on-die ECC和RD操作流。


图3:与On-die ECC WR和RD操作流。

Link-ECC
Link-ECC方案是一个LPDDR5特性提供保护一位错误LPDDR5链接或通道。内存控制器计算的ECC WR数据和发送ECC在特定比特的数据。接收的数据生成ECC的DRAM,检查它对ECC收到数据,并纠正任何一位错误。控制器和DRAM的角色是颠倒的读操作。注意,link-ECC并不提供任何保护一位错误内存数组中。然而,内联ECC加上link-ECC加强LPDDR5渠道的健壮性,提供一个端到端的保护一位错误。图4描述了与link-ECC WR和RD操作流。


图4:与Link-ECC WR和RD操作流。

结论

广泛使用的内存RAS特性之一是纠错码(ECC)计划。应用程序通常使用标准的DDR记忆边带ECC实现,而使用LPDDR记忆实现内联ECC的应用程序。与更高的速度,因此明显SI影响DDR5和LPDDR5频道,甚至现在支持ECC DDR5和LPDDR5后发展出的形式分别on-die和link-ECC。Synopsys对此“DesignWare DDR5/4和LPDDR5/4 IP解决方案提供高级的RAS特性,包括所有选举投诉委员会计划在本文中突出显示。

相关的
更多的错误,修正在记忆
新技术提高精度随着密度增加的成本。



2的评论

Rehan 说:

精彩的解释。谢谢你提供这些信息!

V 说:

link-ECC部分你说“但是,内联ECC加上link-ECC加强LPDDR5渠道的健壮性,提供一个端到端的保护一位错误”

端到端链接ECC(链接)保护对吧?和inline-ECC再次做同样的e2e保护。

你是想说on-die ECC加上link-ECC吗?

谢谢。

留下一个回复


(注意:这个名字会显示公开)

Baidu