服务器内存也是内存(RAM),它与普通PC(个人电脑)机内存在外观和结构上没有什么明显实质性的区别,主要是在内存上引入了一些新的特有的技术,如

ECC、

ChipKill、

Register

FB-DIMM

热插拔技术等,具有极高的稳定性和纠错性能

 

关键词

ECC (寄存式内存)

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


 


Chipkill

 
  
  1. Chipkill技术是IBM公司为了解决目前服务器内存中ECC技术的不足而开发的,是一种新的ECC内存保护标准。我们知道ECC内存只能同时检测和纠正单一比特错误,但如果同时检测出两个以上比特的数据有错误,则无能为力。目前ECC技术之所以在服务器内存中广泛采用,一则是因为在这以前其它新的内存技术还不成熟,再则在目前的服务器中系统速度还是很高,在这种频率上一般来说同时出现多比特错误的现象很少发生,因为这样才使得ECC技术得到了充分地认可和应用,使得ECC内存技术成为几乎所有服务器上的内存标准。 
  2.   但随着基于Intel处理器架构的服务器的CPU性能在以几何级的倍数提高,而硬盘驱动器的性能只提高少数的倍数,为了获得足够的性能,服务器需要大量的内存来临时保存CPU上需要读取的数据,这样大的数据访问量就导致单一内存芯片上每次访问时通常要提供4(32位)或8(64位)比特的数据,一次读取这么多数据,出现多位数据错误的可能性会大大地提高,而ECC又不能纠正双比特以上的错误,这样很可能造成全部比特数据的丢失,系统就很快崩溃了。 IBM的 Chipkill技术是利用内存的子系统来解决这一难题。内存子系统的设计原理是这样的,单一芯片,无论数据宽度是多少,只对于一个给定的ECC识别码,它的影响最多为一比特。举例来说,如果使用4比特宽的DRAM,4比特中的每一位的奇偶性将分别组成不同的ECC识别码,这个ECC识别码是用单独一个数据位来保存的,也就是说保存在不同的内存空间地址。因此,即使整个内存芯片出了故障,每个ECC识别码也将最多出现一比特坏数据,而这种情况完全可以通过 ECC逻辑修复,从而保证内存子系统的容错性,保证服务器在出现故障时,有强大的自我恢复能力。采用这种技术的内存可以同时检查并修复4个错误数据位,服务器的可靠性和稳定得到了更充分的保障 



Register

 
  
  1. Register即寄存器或目录寄存器,在内存上的作用我们可以把它理解成书的目录,有了它,当内存接到读写指令时,会先检索此目录,然后再进行读写操作,若所须数据在目录中则直接取用不再进行读写操作,这将大大提高服务器内存工作效率。带有Register的内存一定带Buffer(缓冲),并且目前能见到的Register内存也都具有ECC功能,其主要应用在中高端服务器及图形工作站上,如IBM Netfinity 5000。 


 

FB-DIMM
 

 
  
  1. Fully Buffered DIMM(或FB-DIMM)是一种内存解决方案,用来增加内存系统的稳定性、速度、及容量密度。就传统而言,内存控制器上的资料线必须与每一个DRAM 模组相连接,如此内存无论是拓宽存取接口的带宽或加快存取接口的速度,都会使接口的信号转差,如此不仅限制了速度的提升,也会限制内存系统的记忆空间提升,而FB-DIMM则是用不同的方式手法来解决这个问题。JEDEC组织已经正式敲定发布FB-DIMM的规范标准。 
  2.  
  3. 技术原理 
  4. Fully Buffered DIMM架构新创立了一颗先进内存缓冲(Advanced Memory Buffer,AMB)芯片,这颗芯片被安插在内存控制器与内存模组间,且与“传统DRAM所用的并列总线架构”不同的,FB-DIMM是以串行接口来连接AMB芯片与内存控制器,如此可以在不增加内存控制器的线路数下提升内存的带宽,同时具有技术可行性。使用此架构后,内存控制器不需要再直接将资料写入内存模组,而是透过AMB芯片来完成这项工作。此外AMB也能以缓冲方式来抵补信号劣化并重新发送信号。除此之外,AMB也能提供错误更正,而不需要偏劳到内存控制器或处理器,另外也能提供“位元传巷的容错更正,Bit Lane Failover Correction”能力,能查出哪一条资料路径坏损,并在运作过程中将该坏损路径移除不用,如此能大幅减少命令资讯传输、位址资讯传输的错误。 
  5. 此外,因为读取及写入都已经透过缓冲处理,所以内存控制器可同时执行读取与写入。如此不仅接线更简化、内存带宽更大,且就理论而言,内存控制器可以不用在意与理会所使用的是何种内存芯片,可以是以前的DDR2抑或是现在的DDR3,理论上可直接替换。不过,Fully Buffered DIMM的作法也有其不利处,特别是在功耗(Power Assumption)及资料存取需求的延迟(Latency,俗称:Lag)上。然而此方式应是未来最无顾虑的内存效能提升法。 

 

内存颗粒

1 普通内存 

每面有8颗内存颗粒

 

2 ECC 内存,“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”

每面有9颗内存颗粒

 

3 Reg-DIMM 带寄存器Register芯片和unbuffered ECC不带缓存 ,带有Register的内存一定带Buffer(缓冲),并且目前能见到的Register内存也都具有ECC功能,其主要应用在中高端服务器及图形工作站上!   
比ecc 多了3个芯片 1 SPD芯片 2 PLL芯片 3 Register IC芯片 4 内存颗粒




4 FB-DIMM(Fully Buffered DIMM),全缓冲内存模组内存   FB-DIMM另一特点是增加了一块称为“Advanced Memory Buffer,简称AMB”的缓冲芯片。这款AMB芯片是集数据传输控制、并—串数据互换和芯片而FB-DIMM实行串行通讯呈多路并行主要靠AMB芯片来实现

 

AMB芯片


ddr-ddr3

 

参考

http://www.zzec.cn/help/Html/?138.html

http://baike.baidu.com/view/25762.htm

http://zh.wikipedia.org/wiki/FB-DIMM