ECC校验


ECC校验

文章插图
ECC校验【ECC校验】ECC记忆体即纠错记忆体,简单的说,其具有发现错误,纠正错误的功能,一般多套用在高档桌上型电脑/伺服器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定 。
基本介绍中文名:ECC校验
套用领域:高档桌上型电脑/伺服器
功能:使电脑系统趋于安全稳定
又名:ECC记忆体即纠错记忆体
什幺是ECC校验定义ECC校验是一种记忆体纠错原理,它是比较先进的记忆体错误检查和更正的手段 。ECC记忆体即纠错记忆体,简单的说,其具有发现错误,纠正错误的功能,一般多套用在高档桌上型电脑/伺服器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定 。技术原理记忆体是一种电子器件,在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,记忆体错误可能会引起致命性的问题 。记忆体错误根据其原因还可分为硬错误和软错误 。硬体错误是由于硬体的损害或缺陷造成的,因此数据总是不正确,此类错误是无法纠正的;软错误是随机出现的,例如在记忆体附近突然出现电子干扰等因素都可能造成记忆体软错误的发生 。为了能检测和纠正记忆体软错误,在ECC技术出现之前,首先出现的是记忆体“奇偶校验(Parity)” 。记忆体中最小的单位是比特,也称为“位(bit)”,位有只有两种状态分别以1和0来标示,每8个连续的比特叫做一个位元组(byte) 。不带奇偶校验的记忆体每个位元组只有8位,如果其某一位存储了错误的值,就会导致其存储的相应数据发生变化,进而导致应用程式发生错误 。而奇偶校验就是在每一位元组(8位)之外又增加了一位作为错误检测位 。在某位元组中存储数据之后,在其8个位上存储的数据是固定的,因为位只能有两种状态1或0,假设存储的数据用位标示为1、1、1、0、0、1、0、1,那幺把每个位相加(1+1+1+0+0+1+0+1=5),结果是奇数 。对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反 。当CPU读取存储的数据时,它会再次把前8位中存储的数据相加,计算结果是否与校验位相一致 。从而一定程度上能检测出记忆体错误,奇偶校验只能检测出错误而无法对其进行修正,同时虽然双位同时发生错误的机率相当低,奇偶校验却无法检测出双位错误 。通过上面的分析我们知道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无法检查出来的错误位查出并将错误修正 。示例ECC(Error Checking and Correcting,错误检查和纠正)记忆体,它同样也是在数据位上额外的位存储一个用数据加密的代码 。当数据被写入记忆体,相应的ECC代码与此同时也被保存下来 。当重新读回刚才存储的数据时,保存下来的ECC代码就会和读数据时产生的ECC代码做比较 。如果两个代码不相同,他们则会被解码,以确定数据中的哪一位是不正确的 。然后这一错误位会被抛弃,记忆体控制器则会释放出正确的数据 。被纠正的数据很少会被放回记忆体 。假如相同的错误数据再次被读出,则纠正过程再次被执行 。重写数据会增加处理过程的开销,这样则会导致系统性能的明显降低 。如果是随机事件而非记忆体的缺点产生的错误,则这一记忆体地址的错误数据会被再次写入的其他数据所取代 。其它相关资料ECC记忆体误区一谈到伺服器记忆体,大家都一致强调要买ECC记忆体,认为ECC记忆体速度快,其实是一种错误地认识,ECC记忆体成功之处并不是因为它速度快(速度方面根本不关它事只与记忆体类型有关),而是因为它有特殊的纠错能力,使伺服器保持稳定 。ECC本身并不是一种记忆体型号,也不是一种记忆体专用技术,它是一种广泛套用于各种领域的计算机指令中,是一种指令纠错技术 。它的英文全称是“Error Checking and Correcting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保伺服器的正常运行 。之所以说它并不是一种记忆体型号,那是因为并不是一种影响记忆体结构和存储速度的技术,它可以套用到不同的记忆体类型之中,就象我们在前面讲到的“奇偶校正”记忆体,它也不是一种记忆体,最开始套用这种技术的是EDO记忆体,SD仍有套用,而ECC记忆体主要是从SD记忆体开始得到广泛套用,而新的DDR、RDRAM也有相应的套用,主流的ECC记忆体其实是一种SD记忆体 。备注1.带ECC校验的记忆体还得要主机板支持,并在BIOS中进行相应的设定,套用在大多数伺服器主机板 。2.现在厂商推出的入门级低端伺服器使用的记忆体也是有ECC功能 。3. 使用ECC校验的记忆体,会对系统的性能会造成微弱的降低,但是这种纠错对伺服器等套用而言是十分重要的,带ECC校验的记忆体价格比普通记忆体要昂贵许多 。