DDR5 内存ECC

这篇具有很好参考价值的文章主要介绍了DDR5 内存ECC。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

针对DDR5,已经写了很多文章来分析,但最近工作中碰到一个问题,同一个channel里的CB是不是可以任意互换? 让我对DDR5的ECC功能有一些疑问,查了下资料发现这里面水挺深,ECC居然还有好几种?

DDR作为目前主板上带宽最高的设备和协议,误码率当然是其中最重要的参数之一,但普通工程师一般不会接触到误码率,在日常工作中往往是以ECC和SI(signal quality)来体现的,SI保证误码率量级不要超出要求,ECC则负责出现误码情况的时候进行修正。

ECC,全称Error Correction Code,是用来在DDR数据传输过程中出现误码的时候进行检查并且纠正的,它极大地增强了DDR设备的RAS(Reliability, Availability,and Serviceability)特性。

DDR5的ECC有很多种方式,这篇文章就会具体分析每种方式的实现方式及其功能,首先针对我的问题,出现在memory connector上的CB,也即check bit,是属于DQ的,但又独立于DQ,有专属于CB的DQS来配合使用,因此理论上CB在同一个channel内是可以任意互换的。

ddr5 协议,硬件工程,运维

不同的ECC方案

Side-band ECC 边带ECC

边带ECC,顾名思义是增加了边带ECC信号,对于DDR5来说,64bit的数据将会要求额外增加8bit side band ECC信号,也即总共72bit数据。当然DDR5内部有subchannel,所以也会有32+4的组合。

有side band ECC的DDR,也即默认是RDIMM,带有控制器。

读写过程中有些不同,对于读,控制器会根据数据产生ECC code,并且将ECC code与实际数据一同发送出去;对于写,控制器会读取ECC code与实际数据,并且根据实际数据再产生ECC code,将前后ECC code对比来确认收到的数据是否正确。 这种方式不会产生额外的读或者写命令,与inline ECC相比,在没有接收到错误数据的时候,延迟更小。

ddr5 协议,硬件工程,运维

Inline ECC 内联ECC

内联ECC一般用于LPDDR设计中,因为LPDDR颗粒位宽是固定的,LPDDR5/4都是16bit,边带ECC在这种情况下性价比就很低了,以64bit数据为例,需要8bit ECC,但因为没有8bit LPDDR,就还是需要增加一颗16bit的颗粒,并且即使增加颗粒,因为ECC只有8bit,反而会有额外的开销花在地址和命令通道上,影响性能。

在这种背景下,内联ECC变成了LPDDR的选择。这种方式不需要为ECC提供单独的芯片支持,而是就放在和数据同一颗颗粒内,没有额外开销,所以LPDDR的数据宽度和实际通道宽度相同。

在内联ECC里,会对每一个16bit内存分区,部分内存会用来分配给ECC code。对于ECC code,有两种处理方式,一种是将ECC和WR或者RD数据一块发送;另一种则是当不一起发送的时候,控制器会为ECC code单独生成WR和RD命令。高性能的处理器可以通过将几个连续地址的ECC打包在一块来降低这种ECC命令的开销,所以当数据流是连续地址的时候,延迟损失会更小。

ddr5 协议,硬件工程,运维

On-die ECC 片上ECC

以上两种方式,都是针对传输通道上的数据误码,也即发送和接收方(CPU和DRAM)总有一方是正确的,通过ECC code可以发现并且解决一部分误码;on die ECC则与它们不同,专门用于DRAM内部可能出现的误码。

On die ECC的实现方式是对于每128bit数据,DRAM会有8个额外的bit来进行ECC存储,根据ECC算法,这样可以用来纠正任何读取数据位上的任何一位错误。

需要注意的是,这是一种发生在DRAM内部的过程,是为了防止在高速情况下发生片上单位错误,对于DRAM到CPU之间的通道传输没有帮助,并且CPU也不会有感知这一过程。

实际应用中,On die ECC可以与其他方式,比如以上的任意一种结合使用,来增强端到端RAS。

ddr5 协议,硬件工程,运维

Link ECC

Link ECC方案是LPDDR的功能,提供单bit error的修正功能。

控制器会为WR数据计算ECC,并且在特定位上与数据一起发送,DRAM在接收端可以基于收到的数据再次产生ECC,并且和收到的ECC对比,这样来修正任意一位的bit error;对于RD,模式相反。但link ecc并不能修正片上的错误。

所以说,inline ecc和link ecc结合在一起使用可以提供单bit错误的端到端保护。

ddr5 协议,硬件工程,运维

四种方式对比

Compare Side-band ECC Inline ECC On-die ECC Link ECC
Memory Type DIMM LPDDR DRAM LPDDR5
Latency Penalty Low Higher Low High
Reliability High Lower-er High Lower
Cost High No cost Lower No cost
Protect Area Channel Channel DRAM Channel

结语

随着DDR速率的不断攀升,不管是片内还是通道,误码率也要求不断降低,这两者都为设计带来了很大挑战,因此ECC基本上变成了标配(当然其他高速接口也都有各自的ECC处理办法)。通过各种ECC的组合,对颗粒及通道上可能出现的误码进行修正,也算是为了高速所作出的努力。

因为不同厂商和设计方的考虑,现在一种功能往往以不同的方式实现,来增强某一协议中不同的方面,随着速率和复杂度提升,这也是不得已而为之的吧……不过不管如何,各种借口总是朝着更快更强的方向在努力,期待看到DDR突破10000MHZ的那天!文章来源地址https://www.toymoban.com/news/detail-608444.html

到了这里,关于DDR5 内存ECC的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 是否可以将笔记本电脑上的内存条从 DDR3 更换为 DDR4?

    通常情况下,将笔记本电脑上的内存条从 DDR3 更换为 DDR4 是不可行的。原因如下: 物理插槽不兼容:DDR3 内存和 DDR4 内存使用不同的物理插槽。DDR3 内存插槽与 DDR4 内存插槽的位置、引脚数目和接口设计都不同,因此 DDR4 内存条无法直接插入 DDR3 内存插槽。 电压不兼容:DDR

    2024年02月13日
    浏览(89)
  • 参考 | 辨别真假笔记本三星内存条 (ddr4)

    内存条贴张上面有两串值得注意的编码, 其中编码的具体意义参考三星官方文件 上面的那串编码 8GR 1Rx8 PC4-2666V-SA1-11 , 参考官方文档第十二页 编码 含义 8GB 内存条容量大小8GB 1Rx8 模组采用 1个rank , 位宽为8bits; 1个rank是64bits, 64/8=8, 代表共8个颗粒, 每个内存颗粒为1G; 关于rank解释

    2024年02月08日
    浏览(62)
  • DDR3协议(三)MR寄存器

    模式寄存器是用于定义SDRAM的各种可编程模式。 初始化过程中通过MRS命令进行设置; 在power-up后的任意时间来重新执行MRS命令,需要满足所有bank都处于precharge状态且满足tRP(precharge到下一次command的时间),同时没有读写操作。 对于MRS命令需要满足两个延迟参数, tMRD (MRS命

    2024年02月16日
    浏览(37)
  • 手把手教你学会 Xilinx PCIE/XDMA 读写DDR系列(三) ——XDMA读写DDR项目工程讲解和下板测试

    因最近想通过PCIE把数据从FPGA传到PC,借此机会和大家一起学习XDMA读写DDR 制作不易,记得三连哦,给我动力,持续更新!!! 完整工程文件下载:XDMA读写DDR工程   提取码:4sxh 在前两篇文章的学习中,我们已经成功配置了XDMA读写DDR所需的两个关键IP核,并深入学习了XDMA读写

    2024年03月12日
    浏览(42)
  • 超详细的FPGA使用MIG调用SODIMM DDR3内存条接口教程

    SODIMM 接口DDR3适配额外的内存条才能满足数据缓存的需求,这种需求一般用于高端项目,DDR3 SDRAM 常简称 DDR3, 是当今较为常见的一种储存器, 在计算机及嵌入式产品中得到广泛应用,特别是应用在涉及到大量数据交互的场合。 本文以XC7K325T-FFG900-2L为例,记录MIG的配置过程,

    2024年02月02日
    浏览(36)
  • 全志F1C200S嵌入式驱动开发(从DDR中截取内存)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         linux内核起来的时候,不一定所有的内存都是分配给linux使用的。有的时候,我们是希望能够截留一部分内存的。为什么保留这部分内存呢?这里面可以有很多的用途。 比如说,第一,

    2024年02月14日
    浏览(28)
  • 运维:硬件服务器BMC介绍

    BMC(Baseboard Management Controller)是硬件服务器上的一个专用子系统,它允许管理员通过独立于主操作系统、CPU和主内存的远程管理工具来监视和管理服务器的硬件状态。这种接口通常用于远程监控和管理服务器,特别是在数据中心和大规模服务器部署环境中。 BMC接口规格: 接

    2024年04月12日
    浏览(38)
  • DDR3协议(四)Self-Refresh&Power-Down

    在DDR3中几乎所有的状态都要求时钟必须处于稳定状态,只有在两个条件下,输入时钟可以进行切换, Self-Refresh mode Precharge Power-Down mode DDR为维持自身的数据,每隔固定时间必须要进行一次Refresh操作。 进行Refresh之前需要进行Precharge操作后处于Idle状态,并要满足tRP的最小时延

    2024年02月15日
    浏览(31)
  • 紫光FPGA DDR3 IP使用和注意事项(axi4协议)

    紫光DDR3 IP使用 对于紫光ddr3 IP核的使用需要注意事情。 阅读ddr ip手册: 1、注意:对于写地址通道,axi_awvalid要一直拉高,axi_awready才会拉高。使用的芯片型号时PG2L100H-6FBG676,不同的型号IP核接口和axi的握手协议也不一样(一定要注意),这点要注意,这也给我挖了一个很大的

    2024年04月12日
    浏览(39)
  • 内存条@种类@型号@插槽@电脑支持的最大内存@升级内存硬件

    确认电脑最大支持内存大小和频率规格上限通常可以通过以下几种方式: 查阅主板或电脑型号规格 : 确定您的电脑或主板的具体型号。 访问主板制造商的官方网站,查找对应型号的产品页面或用户手册,那里会有详细的硬件规格说明,包括最大支持内存容量和内存频率。

    2024年04月26日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包