1、ECC 内存ECC 内存ECC 内存,即应用了能够实现错误检查和纠正技术(ECC)的内存条。一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。ECC 是“Error Checking and Correcting”的简写,中文名称是 “错误检查和纠正 ”。目录技术原理ECC 内存误区备注技术原理要了解 ECC 技术,就不能不提到 Parity(奇偶校验) 。在 ECC 技术出现之前,内存中应用最多的是另外一种技术,就是 Parity(奇偶校验) 。我们知道,在数字电路中,最小的数据单位就是叫“比特(bit) ”,也叫数据“位” , “比特”也是内存中的最小单位,它是通
2、过“1”和“0”来表示数据高、低电平信号的。在数字电路中8个连续的比特是一个字节(byte) ,不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节中存储了某一数值(1、0、1、0、1、0 、1 、1) ,把这每一位相加起来(10101 011=5) 。若其结果是奇数,对于偶校验,校验位就定义为1,反之则为0;对于奇校验,则相反。当CPU 返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当 CPU
3、发现二者不同时就会试图纠正这些错误,但 Parity 有个缺点,当内存查到某个数据位有错误时,却并不一定能确定在哪一个位,也就不一定能修正错误,所以带有奇偶校验的内存的主要功能仅仅是“发现错误”,并能纠正部分简单的错误。 通过上面的分析我们知道 Parity 内存是通过在原来数据位的基础上增加一个数据位来检查当前8位数据的正确性,但随着数据位的增加 Parity 用来检验的数据位也成倍增加,就是说当数据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。特别是当数据量非常大时,数据出错的几率也就越大,对于只能纠正简单错误的奇偶检验的方法就显得力不从心了,正是基于这样一
4、种情况,一种新的内存技术应允而生了,这就是ECC(错误检查和纠正) ,这种技术也是在原来的数据位上外加校验位来实现的。不同的是两者增加的方法不一样,这也就导致了两者的主要功能不太一样。它与 Parity 不同的是如果数据位是8位,则需要增加5位来进行 ECC 错误检查和纠正,数据位每增加一倍,ECC 只增加一位检验位,也就是说当数据位为16位时 ECC 位为6位,32 位时 ECC 位为7位,数据位为64位时 ECC 位为 8位,依此类推,数据位每增加一倍,ECC 位只增加一位。总之,在内存中 ECC 能够容许错误,并可以将错误更正,使系统得以持续正常的操作,不致因错误而中断,且 ECC 具有
5、自动更正的能力,可以将 Parity 无法检查出来的错误位查出并将错误修正。 目前一些厂商推出的入门级低端服务器使用的多是普通 PC 用的SD RAM,不带 ECC 功能,在选购时应该注意这个指标。ECC 内存误区目前是一谈到服务器内存,大家都一致强调要买 ECC 内存,认为 ECC 内存速度快,其实是一种错误地认识,ECC 内存成功之处并不是因为它速度快( 速度方面根本不关它事只与内存类型有关),而是因为它有特殊的纠错能力,使服务器保持稳定。ECC 本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术。它的英文全称是“Error Che
6、cking and Correcting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。之所以说它并不是一种内存型号,那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象我们在前面讲到的“奇偶校正”内存,它也不是一种内存,最开始应用这种技术的是 EDO 内存,现在的 SD 也有应用,而 ECC 内存主要是从 SD 内存开始得到广泛应用,而新的 DDR、RDRAM 也有相应的应用,目前主流的 ECC 内存其实是一种 SD 内存。备注带 ECC 校验的内存还得要主板支持,并在 BIOS 中进行相应的设置,目前只应用在大多数服务器主板。