文章目录

  • 1 ECC 内存
    • 1.1 ECC 内存与普通内存区别
  • 2 ECC 技术简介
    • 2.1 ECC 技术原理
    • 2.2 ECC 生成和校验顺序
    • 2.3 ECC 方案

1 ECC 内存

ECC内存,即应用了能够实现错误检查和纠正技术(ECC)的内存条。一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。ECC是“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”。

1.1 ECC 内存与普通内存区别

一、板载的内存颗粒数量区别:ECC内存为服务器内存,该类内存条多了一颗ECC错误校验储存芯片(储存芯片数为奇数),ECC的应用可以保证服务器在运转中更安全稳定。而普通内存条储存芯片数为偶数。
二、应用的技术区别:ECC内存条添置ECC错误校验技术,经过错误校验、纠正,可以有效的保证服务器系统的稳定性和可靠性。而普通内存条不配备校正错误技术,因此字检测到错误时,并不能确定错误位置,也无法修正错误。
三、应用领域的区别:由于ECC内存能有效的保存和维持数据的完整性,同时配备校验和纠正技术,ECC内存进一步减少了数据崩溃情况,因此多应用于在金融等行业以及科学界等服务器及图形工作站上,普通内存条只能用于家用台式机。

四、内存条的容量区别:由于服务器的内存应用对于其容量要求更高,因此ECC内存条容量通常是以4GB起步,而普通内存条容量通常是以2GB起步,家用电脑上标配均为4~8GB的内存。
五、价格的区别:由于ECC内存条的技术含量更高,内存容量也较普通内存大。因此ECC内存条比普通内存的价格要贵。

2 ECC 技术简介

纠错码(ECC)方案是一种获得广泛使用的内存RAS(Reliability, Availability and Serviceability)功能。DDR控制器通过为实际数据生成ECC SECDED(单位纠错和双位检错)数据并存储到附加DRAM存储器中,可以对DRAM发送的数据进行单位纠错和双位检错。

2.1 ECC 技术原理

此部分内容摘自百度百科ECC内存:
要了解ECC技术,就不能不提到Parity(奇偶校验)。在ECC技术出现之前,内存中应用最多的是另外一种技术,就是Parity(奇偶校验)。我们知道,在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号的。在数字电路中8个连续的比特是一个字节(byte),不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节中存储了某一数值(1、0、1、0、1、0、1、1),把这每一位相加起来(1+0+1+0+1+0+1+1=5)。若其结果是奇数,对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就会试图纠正这些错误,但Parity有个缺点,当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内存的主要功能仅仅是“发现错误”,并不能纠正部分简单的错误。
通过上面的分析我们知道Parity内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一种情况,一种新的内存技术应允而生了,这就是ECC(错误检查和纠正),这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。

在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且ECC具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正。

2.2 ECC 生成和校验顺序

1、ECC数据由控制器根据实际的WR(写入)数据生成。内存同时存储写命令的数据和 ECC数据。
2、在RD操作期间,控制器从内存读取数据和相应的ECC数据。控制器利用接收到的数据重新生成ECC数据,并将其与接收到的ECC数据进行比较。
3、如果两者匹配,则不会发生错误。如果不匹配,ECC SECDED机制允许控制器纠正任何单bit错误并检测双bit错误。

2.3 ECC 方案

ECC方案提供端到端的保护,以防止可能在控制器和内存之间的内存子系统中发生的单bit错误。基于ECC的实际存储,ECC方案可能有两种类型:side-band ECC或inline ECC。在side-band ECC中,ECC数据存储在单独的DRAM上;在inline ECC中,ECC数据与实际数据一起存储在同一个DRAM上。
DDR5和LPDDR5支持的数据速率远高于其前代产品,因此它们支持更多ECC功能,以增强内存子系统的稳定性。DDR5中的On-die ECC和LPDDR5中的Link ECC就是两种此类RAS方案,可进一步增强内存子系统 RAS 功能。
side-band ECC 方案通常在应用中使用标准 DDR 内存(如 DDR4 和 DDR5)实现。顾名思义,ECC 数据作为边带数据连同实际数据发送到内存。例如,对于 64 位数据宽度,增加 8 个数位用于 ECC 存储。因此,当今企业级服务器和数据中心常用的 DDR4 ECC DIMM 具有 72 位宽。这些 DIMM 有两个额外的 x4 DRAM 或一个 x8 DRAM,用于额外的 8 位 ECC 存储。因而在 side-band ECC 中,控制器会同时读写 ECC 数据和实际数据。此 ECC 方案不需要额外的 WR 或 RD 开销命令。图 2 描述了 side-band ECC 的 WR 和 RD 操作流程。如果接收的数据没有错误,side-band ECC 与 inline ECC 相比,延时损失更小。

Inline ECC 方案通常在使用 LPDDR 内存的应用中实现。LPDDR DRAM 具有固定信道宽度(LPDDR5/4/4X 信道宽度为 16 位),因此 inline ECC 对于此类内存而言是一种昂贵的解决方案。例如,对于 16 位数据宽度,需要为 7 位或 8 位 ECC 位宽的 inline ECC 额外分配 16 位 LPDDR 信道。此外,7 或 8 位 ECC 数据字段仅部分填充了 16 位额外的通路,导致存储效率低下,还给地址命令信道带来额外负载,可能会对性能有所影响。因此,inline ECC 成为更适合用作 LPDDR 内存的解决方案。
Inline ECC 中的控制器不需要额外的信道来存储 ECC,而是将 ECC 数据存储在存储实际数据的同一 DRAM 信道中。因此,内存信道的总体数据宽度与实际数据宽度相同。
在 inline ECC 中,16 位信道内存被分区,使得内存的专用部分被分配给 ECC 数据存储。当 ECC 数据未与读写数据一起发送时,控制器为 ECC 数据生成单独的开销 WR 和 RD 命令。因此,实际数据的每条 WR 和 RD 命令都伴有一条 ECC 数据的开销 WR 和 RD 命令。高性能控制器通过在一条 ECC WR 命令中封装几个连续地址的 ECC 数据,以此来降低此类 ECC 命令的损失。同样,控制器在一条 ECC RD 命令中读取内存发出的若干连续地址的 ECC 数据,并且可以将读出的 ECC 数据,应用于该连续地址产生的实际数据。因此,流量模式越有序,此类 ECC 开销命令造成的延迟损失越小。图 3 描述了 inline ECC 的 WR 和 RD 操作流程。

每一代 DDR 的发展,DRAM 容量通常都会增加。DRAM 供应商通常也会缩小工艺技术,以实现更高的速度和更经济的量产。面对更高的容量和速度以及更小的工艺技术,DRAM 内存阵列出现单位错误的可能性会增加。为进一步改善内存信道,DDR5 DRAM 配备额外的存储器,只用于 ECC 存储。On-die ECC 是一种高级 RAS 功能,可获得 DDR5 系统的支持以实现更高的速度。DDR5 DRAM 为每 128 位数据额外设置 8 位的 ECC 存储空间。
DRAM 内部计算 WR 数据的 ECC,并将 ECC 数据存储在额外的存储器中。在读取操作中,DRAM 读出实际数据以及 ECC 数据,并且可以纠正任何读数据位上的任何单位错误。因此,on-die ECC 进一步保护 DDR5 内存阵列免于产生单位错误。由于此方案无法针对 DDR 信道上发生的错误提供任何保护,所以 on-die ECC 会与 side-band ECC 结合使用,以增强内存子系统上的端到端 RAS。图 4 描述了 on-die ECC 的 WR 和 RD 操作流程。

Link-ECC 方案是一种 LPDDR5 功能,可保护 LPDDR5 链路或信道免受单位错误的影响。内存控制器计算 WR 数据的 ECC,并在特定位上发送 ECC 和数据。DRAM 基于接收到的数据生成 ECC,对照接收到的 ECC 数据进行校验,并纠正任何单位错误。控制器和 DRAM 在读取操作中的作用是相反的。请注意,link ECC 不针对内存阵列上的单位错误提供任何保护。然而,inline ECC 与 link ECC 相结合,通过提供端到端的单位错误防护,增强了 LPDDR5 信道的稳定性。图 5 描述了 link ECC 的 WR 和 RD 操作流程。

DDR3 ECC 应用总结相关推荐

  1. NEO共识节点推荐搭建步骤

    目录 共识节点推荐搭建步骤 远程访问 硬件 密码 SSH认证密钥 服务供应商具体配置 Linux服务器配置 使用su时 以管理员身份登录时 防火墙 自动安全更新 fail2ban 双因素认证 监控 登 ...

  2. 广东省广播电视网络股份有限公司佛山分公司BOSS系统容灾中心建设项目

    二.项目技术要求 技术需求明细 说明: 1.1         投标人应注意招标文件技术规格中指出的工艺.材料和设备的标准以及参照的品牌或型号仅起说明作用,并没有任何限制性.投标人在投标中可以选用替代 ...

  3. DIY服务器配置全方位详解

    其实说到服务器,目前最热点的利用无非就是做Web支撑和网游平台,海内大局部洽购服务器作为网游运用的都是私服,属于侵略常识产权的行为,固然短期内轻易盈利,然而是守法的,国内已经有架设私服被判刑的先例,所 ...

  4. 【入门】Markdown的高级应用、计算机硬件、linux基本命令

    #1月9日工作日志 #第二次笔记 时间:2020 1月9日 #Markdown高级应用-图标 在文件里的.md文件是画图的表 Markdown高级引用-图表 mermaid 原生 流程图 UML时序图 ...

  5. 双路服务器芯片组的发展

    一.双路服务芯片组发展简介 Q1'06,英特尔发布了5000系列芯片组,其中包括S5000PAL,S5000PSL,S5000VSA,S5000XVN,S5000XLA.使用771针的至强CPU和 F ...

  6. 【杂烩】Tesla M40 训练机组装与散热改造

    原文链接:链接 本文简要介绍了我在购置 Tesla M40 计算卡并组装一台训练机中所遇到的问题与解决方法.在研究与实际操作期间,以下文章给予了我很大的帮助! 关于 Tesla M40 电源连接器与 ...

  7. 走进科学之内存插槽插满不识别

    详细记录最近半个星期的心路历程. ------------------- 3月13日. 买了一块华南X99-T8主板,2686V4,ddr3 ecc 1866 三星. --------------等快 ...

  8. ac9260网卡linux,160Mhz频宽的怒吼,Intel Wireless-AC 9260 无线网卡评测

    前言 长期以来,无线网卡的发展速度远远落后于无线路由器,不过,随着Intel Wireless-AC 9260的新近发布,这个局面将会得到很大的改善.这是首款市面上能够买到的支持160Mhz频宽的无线 ...

  9. 2013款Mac Pro“神秘”主机详解

    2013款Mac Pro"神秘"主机详解 自2013年12月下旬新款Mac Pro在美国发布以来,经过一个月的等待终于在国内已到货,笔者亲自测试了这个号称"神秘" ...

最新文章

  1. 通常我们将python语言程序保存在一个后缀_ACAA网络设计师模拟题
  2. 触目惊心,超过 8000+ 漏洞 Redis 暴露在云端!
  3. 昆曲,古琴,苏州评弹
  4. satd残差_RDO、SAD、SATD、λ相关概念【转】
  5. SAP License:SAP CWM功能及限制
  6. Ubuntu16.04下keras安装
  7. 【常识】户型图要怎么看?买房时销售员不会说的注意事项
  8. Autojs微信自动操作免root脚本源码
  9. “磨刀”真的不误“砍柴”工吗?
  10. win10家庭版将中文用户名修改为英文
  11. idea2020的Run/Debug Configurations出现叉号
  12. 第130章 SQL函数 SQRT
  13. python tkinter 如何锁定窗体尺寸 防止用户调整尺寸 固定大小
  14. 对接接口需要注意的事项
  15. 个人通讯录系统——数据库课程设计
  16. 『.NET Tools』C#/.NET 计算文本相似度
  17. Python之中Image的使用[putpixel]
  18. 2023年【危险化学品经营单位安全管理人员】最新解析及危险化学品经营单位安全管理人员考试技巧
  19. 一套经典的springboot后台多模块管理系统
  20. PyTorch:优化神经网络训练的17种方法

热门文章

  1. C#桌面办公应用-工资管理系统系列五
  2. win7网站服务器空间怎么清理,window_Win7系统如何清理C盘空间?Win7系统清理C盘空间小技巧,  Win7系统清理C盘空间小技 - phpStudy...
  3. 连续分配方式 -- 可重定位分区分配
  4. Google advertiser api开发概述——批量处理
  5. Nginx 源码编译安装配置
  6. ucb计算机硕士专业,美国CS、CE、ECE硕士项目你能区分开吗?
  7. 【LeetCode】1402. 做菜顺序 Reducing Dishes
  8. linux如何kill僵尸进程,linux 如何杀死僵尸进程——原理及操作
  9. 介绍一下当前使用的Oracle数据库自动化运维方式
  10. 区块链冷链食品追溯系统