问:什么是服务器内存?它与普通PC机上的内存又有什么区别?
答:服务器内存也是内存,它与我们平常在电脑城所见的普通PC机内存在外观和结构上没有什么明显实质性的区别,它主要是在内存上引入了一些新的技术,仅 从外观上是不得出什么结论的。这样或许你就担心了,如果别人拿普通PC机的内存条当服务器内存条卖给怎么知道?这一般来说可以放心,这种可能性几乎为零。 因为普通PC机上的内存在服务器上一般是不可用的,服务器认不到的,这就是说服务器内存不能随便为了贪便宜用普通PC机的内存来替代的原因了。至于其根本 原因是什么那请请看后面了。
有些人把具有某种技术的内存就称之为“服务器内存”,其实是不全面的,服务器的这些内存技术之所以在 目前看来是服务器在专用,但不能保证永远只能是服务器专用。这些新技术之所以先在服务器上得以应用是因为服务器价格较贵,有条件得以应用,这些新技术由于 价格的原因暂时在普通PC机上无法实现应用,这些新技术会随着配件价格的下降会逐步走向普通PC机,就象原来的奇偶校正内存一样原来也是最先应用在服务器 上,现在不是很普遍了吗?所以服务器内存并不是一种特指,它是内存新技术在不同时间段上的应用。
问:什么奇偶校正(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位中存储的数据,检查结果是否与校验位相一致。当发现二者不同时就会试图纠正这些错误,但这只是 Parity一厢情愿的,当内存检查到某个数据位有错误时,运用Parity技术却并不一定能确定错误在哪一个位,也就不一定能修正错误,所以带有奇偶校 正的内存的主要功能仅是“发现错误”,并能纠正部分简单的错误。这种技术应用于服务器领域,那还是在72线内存时代(现在普遍是168线的内存),随着这 种技术应用领域的深入和价格的下降,现在带有奇偶校正技术的内存普遍都是,广泛应用于普通PC机上,虽然这种技术功能不是很强大,但应用在普通PC机上还 是很有效的,所以目前奇偶校正内存并不是服务器专用,而且目前服务器上所用的内存一般都是ECC内存,它比Parity内存更先进。要注意的一点就是现在 的主板都可以使用带奇偶校验位或不带奇偶校验位两种内存条,但两种内存不能混用。
问:什么是ECC内存?它比Parity(奇偶校正)内存有什么优点?
答: 目前一谈到服务器内存,大家都一致强调要买ECC内存,认为ECC内存速度快,其实是一种错误地认识,ECC内存成功之处并不是因为它速度快(速度方面根 本不关它事只与内存类型有关),而是因为它有特殊的纠错能力,使服务器保持稳定。ECC本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应 用于各种领域的计算机指令中,是一种指令纠错技术。ECC的英文全称是“ Error Checking and Correcting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先 进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。之所以说它并不是一种内 存型号,那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象我们在前讲到的“奇偶校正”内存,它也不是一种内存,最 开始应用这种技术的是EDO内存,现在的SD也有应用,而ECC内存主要是从SD内存开始得到广泛应用,而新的DDR、RDRAM也有相应的应用,目前主 流的ECC内存其实是一种SD内存。
如果要具体讲一下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内存。