说起服务器内存,很多人可能会觉得不明所以,其实服务器内存与普通内存还是有着很多共同点的,不过它加入了一些针对高端应用而设计的功能和特性,下面我就以一问一答的方式为各位介绍一下服务器内存。
问:什么是服务器内存?它与普通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内存。