前段时间我们曾经报道过关于服务器处理器的一些文章。今天我们来看看服务器内存相关技术知识。提及服务器内存,其实与我们大家通常用的普通PC一样,也是RAM,与普通个人电脑内存在结构和外观无明显实质性区别。由于服务器内存在性能和可靠性、稳定性、纠错性等方面较PC机的要求高,所以服务器内存需要引进特殊技术如ECC、ChipKill,还有热插拔技术等。接下来让我们简单看一下各自技术的简单解释。
ECC(ErrorCheckingandCorrecting)
ECC英文全称是“ErrorCheckingandCorrecting”,中文名称叫做“错误检查和纠正”,即实现错误发现和错误纠正等功能。对比普通的内存来说(通常使用Parity技术——同位检查码Paritycheckcodes被广泛地使用在侦错码errordetectioncodes上),它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。
Chipkill
Chipkill技术是IBM公司为了解决目前服务器内存中ECC技术的不足而开发的,是一种新的ECC内存保护标准。ECC内存只能同时检测和纠正单一比特错误,但是如果同时检测两个以上比特的数据错误,则需要较强的技术——Chipkill。采用这种内存技术的内存可以同时检查并修复4个错误数据位,服务器的可靠性和稳定得到了更加充分的保障。
chipkill内存图
存储器中的每个字节外加一个ECC位构成ECC字。如果存储器系统的数据宽度为32个字节(或256位),实际的存储器数据的宽度是256+32=288位。同时,每一个数据位都被置于分离的ECC字中。
存储系统由4个DIMM模块构成,32个字节(256位)的数据被分成4个ECC字,每个ECC字含有8个字节(64位)的数据位和8个ECC位。这样,一个ECC字的实际长度为64+8=72位,存储数据总长度为72×4=288位。存储器控制器(MemoryController)把每个ECC字被分成4个长度为18位的段,分别存储于4个DIMM中。同时,每个DIMM中也存储了4个来自不同的ECC字的段。然后,每个段的18个位再被存储在不同的RAM芯片中。