第13回【科普】:什么是ECC?对内存产品有什么帮助?

2022-12-01 1546阅读

温馨提示:这篇文章已超过842天没有更新,请注意相关的内容是否还可用!

大家都注意到去年发布新一代DDR5内存自带ECC纠错功能。

第13回【科普】:什么是ECC?对内存产品有什么帮助?
(图片来源网络,侵删)
第13回【科普】:什么是ECC?对内存产品有什么帮助?
(图片来源网络,侵删)

过去ECC应用在服务器产品中由特定的主板和CPU才能实现ECC功能,而现在DDR5内存通过内存集成的ECC芯片可以自行检测和纠正内存单元内的数据。

今天就来讨论下ECC纠错功能,大家有其他想法的可以在评论区进行补充

ECC是什么?

ECC的全称是 Error Checking and Correction or Error correctionCoding,是一种用于差错检测和修正的算法。

NAND闪存在生产和使用中都会有坏块产生,BBM就是坏块的管理机制。

那么为了在使用过程中减少坏块的产生,通过2种方式进行预防:

1、利用磨损平衡(WL)提前预防坏块产生;

2、已经产生“坏块”的引入ECC,通过ECC对“坏块”进行有效检测及纠正。

如果操作时序和电路稳定性不存在问题,NAND闪存出错的时候一般不会造成整个Block或Page不能读取甚至全部出错,而是整个Page中只有一个或几个bit出错,这个时候ECC针对出错的bit进行检测和纠正。

从DDR5自带ECC功能来看就是在内存中增加存储芯片,这样能检测和纠正内存单元中的数据错误,同时也能够有效提高DRAM芯片良率。

奇偶校验

在ECC技术出现之前,内存中应用最多的另外一种错误检查技术,是奇偶校验位(Parity)技术。

奇偶校验,即Parity Check,根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验通常用于确定数据是否出错。

在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号。

在数字电路中8个连续的比特是一个字节(byte),如:字节中某一存储数值(1、0、1、0、1、0、1、1)相加是5,结果奇数。

采用偶校验,校验位就定义为1,5+1=6为偶数;

对于奇校验,则为0,5+0=5奇数。

当CPU读取存储的数据时,会再次把前8位中存储的数据相加,计算结果是否与校验位相一致(即下面讲到的与ECC签名是否一致)。

但Parity(奇偶校验位)的不足是:当内存查到某个数据位有错误时,不能准确定位存在错误的数据位,也就不一定能修正错误。

而且当数据量大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就无法纠正,由此出现错误检查和纠正(Error Checking and CorrecTIng)。

ECC的运作原理:

ECC是在奇偶校验的基础上发展起来,与奇偶校验技术一样,ECC纠错技术也需要额外的空间来储存校正码,但其占用的位数跟数据的长度并非成线性关系。

具体来说,它是以8位数据、5位ECC码为基准,随后每增加一个8位数据只需另增加一位ECC码即可。

也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。

所以ECC有更多位数的校验位,容错能力更强。

ECC纠错算法分类有哪些?

常用的闪存ECC 纠错算法有BCH (Bose–Chaudhuri–Hocquenghem codes)和LDPC(Low Density Parity Check Code)意思是低密度奇偶校验码。

目前SSD最普遍使用的ECC码是BCH码。

当数据写入的时候,控制器内部的ECC模块计算数据并生成ECC签名(由此提供可信的数据背书),一般来说这个步骤非常快,因此并不会影响整个SSD太多的性能表现。

ECC的签名一般来说都保存在NAND页后部的SA区域,当数据从NAND读取的时候ECC模块回去读取ECC签名,并对照相同与否来发现出现的错误。

如检测到数据错误就会生成独特的ECC算法(如BCH)进行修改。

如ECC纠正不过来, 一般会报ECC Fail, 用户表现为Read Fail,有时候ECC甚至诊测不到出错, 就会导致数据错误。

如果如果整个页甚至块出现大面积错误,那么只有RAID(RedundantArrays of Independent Disks磁盘阵列)这类的冗余保护才能修复了。

RAID由很多块独立的磁盘,可利用同位检查(Parity Check)的观念,当数组中任意一个硬盘发生故障时,仍可读出数据。在数据重构时,可将数据经计算后重新置入新硬盘中。

而关于LDPC处理技术在金泰克纯国产硬盘C320中有所应用内存ecc校验错误怎么办,下期会单独讲解LDPC处理技术。

ECC的错误认识

谈到服务器内存,大家都强调买ECC内存,认为ECC内存速度快,其实是一种错误地认识。

ECC内存成功之处并不是因为它速度快(速度只与内存类型有关),而是因为它有特殊的纠错能力,使服务器保持稳定。这种ECC纠错功广泛应用于各种领域的计算机指令中,是一种指令纠错技术。

ECC内存插到普通PC主板上吗?

目前消费类内存自带ECC功能的产品是DDR5,但DDR5防呆口与D4不同,在现有的DDR4平台上无法使用,需购买支持DDR5的主板。

且11代以及以前的处理器不支持DDR5内存内存ecc校验错误怎么办,所以需配置新的主板和处理器。

去年12月酷睿12代也正是对外发布,支持新一代DDR5内存。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]