如果要具体讲一下ECC与Parity的区别在哪能里,那还得它们所实现对应功能的机理来说起。上面我们知道Parity内存是通过在原来数据位的基础增加一个数据位来检查前8位数据的正确性,但随着数据位的增加Parity用来检验的数据位则成倍增加,也就是说当据位为16位时它需要增加2位用于检查,当数据位为32位时则需增加4位,依此类推。而ECC内存,它也是在原来的数据位上外加检验位来实现的。不同的是两都增加的方法不一样,这也就导致了两者的主要功能不太一样。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6,32位是为7位ECC位,数据位为64位时为8依此类推,数据位每增加一倍,ECC位只增加一位。关于两种内存技术所需增加的数据位现列表如下,从表中可以看出它们各自的优势在什么地方。
数据位数 Parity需增加的数据`位数 ECC需增加的数据位数
数据位数
Parity需增加的数据位数
ECC需增加的数据位数
8
1
5
16
2
6
32
4
7
64
8
8
128
16
9
256
32
10
512
64
11
…
…
…
从上表可以看出,当数据的位数增加一倍,Parity也增加一倍,而ECC只需增加一位,当数据为64位时所用的ECC和Parity位数相同(都为8),仅从增加的位数来说,当数据为64位以上,ECC具有极大的优势,但在64位以下,ECC在位数上处于劣势,但ECC的优势不仅体现在这方面,它主要体现在它的纠错能力上,这是Parity内存所无法比拟的!在内存中ECC能够容许错误,并可以将错误更正,使系统得以持续正常操作,不致因错误而中断。但在这里需要说明的一点就是ECC内存也不是对所有错误都有能检测并纠正过来,一般来说它也只能同时发现并纠正一个比特的数据错误。
问: 目前主要些什么品牌的服务器内存?
答:由于服务器内存在技术难度和加工工艺上比普通PC机上的内存有较大提高,所以在服务器内存品牌选择上没有象普通PC机内存一样那么杂,但目前服务器内存品牌也有逐步杂化的趋势,目前主要的服务器内存品牌主要有Kingmax、kinghorse、现代、三星、kingstone、IBM、VIKING、NEC等,但主要以前面几种在市面上较为常见,而且质量也能得到较好的保障。
问: 服务器内存技术的发展如何?
答: 服务器内存也与任何其它产品一样,新技术是在不断开发,不断得到应用,然后逐步取代原有的技术,实现它的普及应用。ECC技术在目前来说是服务器内存的主流技术,但新的内存技术已在不断涌现,目前主要有IBM的Chipkill技术在被各内存生产厂商采用。在内存类型上目前主要已有DDR和RAMBUS公司的RDRAM来取代目前的SD内存,这种DDR目前也带有ECC技术。但上述主流内存技术也都是在围绕ECC技术这同一方向,同属于ECC技术范畴。
问:什么是Chipkill技术?
答: Chipkill技术是IBM公司为了解决目前服务器内存中ECC技术的不足而开发的,是一种新的ECC内存保护标准。我们知道ECC内存只能同时检测和纠正单一比特错误,但如果同时检测出两个以上比特的数据有错误,则一般无能为力。目前ECC技术之所以在服务器内存中广泛采用,一则是因为在这以前其它新的内存技术还不成熟,再则在目前的服务器中系统速度还是很高,在这种频率上一般来说同时出现多比特错误的现象很少发生,正因为这样才使得ECC技术得到了充分地认可和应用,使得ECC内存技术成为几乎所有服务器上的内存标准。
但随着基于Intel处理器架构的服务器的CPU性能在以几何级的倍数提高,而硬盘驱动器的性能同期只提高了少数的倍数,因此为了获得足够的性能,服务器需要大量的内存来临时保存CPU上需要读取的数据,这样大的数据访问量就导致单一内存芯片上每次访问时通常要提供4(32位)或8(64位)比特以上的数据,一次性读取这么多数据,出现多位数据错误的可能性会大大地提高,而ECC又不能纠正双比特以上的错误,这样就很可能造成全部比特数据的丢失,系统就很快崩溃了。IBM的Chipkill技术是利用内存的子结构方法来解决这一难题。内存子系统的设计原理是这样的,单一芯片,无论数据宽度是多少,只对于一个给定的ECC识别码,它的影响最多为一比特。举个例子来说明的就是,如果使用4比特宽的DRAM,4比特中的每一位的奇偶性将分别组成不同的ECC识别码,这个ECC识别码是用单独一个数据位来保存的,也就是说保存在不同的内存空间地址。因此,即使整个内存芯片出了故障,每个ECC识别码也将最多出现一比特坏数据,而这种情况完全可以通过ECC逻辑修复,从而保证内存子系统的容错性,保证了服务器在出现故障时,有强大的自我恢复能力。采用这种内存技术的内存可以同时检查并修复4个错误数据位,服务器的可靠性和稳定得到了更加充分的保障。
问: 什么是RAMBUS内存?
答:RAMBUS技术是RAMBUS公司开发的,运用这种RAMBUS技术的内存他们就把它称之为RAMDRAM,简称之为“RDRAM内存,它与目前市面上的ECC内存不同,但它可能同时带有ECC功能,也有不带ECC功能的。在RAMBUS内存上,你没有专门的ECC的检错芯片,因此从外观上很难区分ECC的RAMBUS内存和非ECC的RAMBUS内存,具有校验功能的RAMBUS内存芯片是18位,而无校验功能的普通RAMBUS内存芯片是16位,具有ECC功能的RDRAM只是在普通的RDRAM中增加了两个校验位,但随着数据位的增加检验位也要跟着增加,也就是说每16位增加两个检验位,照这样的算法推断如果是64MB具有ECC功能的RDRAM其实是72MB,128MB具有ECC功能的RDRAM其实是144MB。
简单的说RAMBUS内存就是一种高性能、芯片对芯片接口技术的新一代存储产品,它使得新一代的处理器可以发挥出最佳的功能。RAMBUS公司宣称这种新的技术能够提供10倍于普通DRAM和三倍于PC100 SDRAM的性能,单根的RAMBUS DRAM,在16位的数据传输通道上速度可高达800MHz。但要注意的不是所有的机都能用这种RAMBUS内存,因为这种技术真正推出的时间较晚而且不怎么经济,所以目前只有比较早期的主板才能使用RAMBUS内存。