服务器内存关键技术(ECC, Buffer, Register, Chipkill)

服务器内存也是内存(RAM),它与普通PC(个人电脑)机内存在外观和结构上没有什么明显实质性的区别,主要是在内存上引入了一些新的特有的技术,如ECC、ChipKill、热插拔技术等,具有极高的稳定性和纠错性能。
服务器内存主要技术:

  • ECC
    在普通的内存上,常常使用一种技术,即Parity,同位检查码(Parity check codes)被广泛地使用在侦错码(error detectioncodes)上,它们增加一个检查位给每个资料的字元(或字节),并且能够侦测到一个字符中所有奇(偶)同位的错误,但Parity有一个缺点,当计算机查到某个Byte有错误时,并不能确定错误在哪一个位,也就无法修正错误。基于上述情况,产生了一种新的内存纠错技术,那就是ECC, ECC本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术。ECC的英文全称是“ Error Checking and Correcting”,对应的中文名称就叫做“错误检查和纠正”,从这个名称我们就可以看出它的主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。之所以说它并不是一种内存型号,那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象前讲到的“奇偶校正”内存,它也不是一种内存,最开始应用这种技术的是EDO内存,现在的SD也有应用,而ECC内存主要是从SD内存开始得到广泛应用,而新的DDR、RDRAM也有相应的应用,目前主流的 ECC内存其实是一种SD内存。
  • 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个错误数据位,服务器的可靠性和稳定得到了更加充分的保障。
  • Register
    Register即寄存器或目录寄存器,在内存上的作用我们可以把它理解成书的目录,有了它,当内存接到读写指令时,会先检索此目录,然后再进行读写操作,这将大大提高服务器内存工作效率。带有Register的内存一定带Buffer(缓冲),并且目前能见到的Register内存也都具有 ECC功能,其主要应用在中高端服务器及图形工作站上,如IBM Netfinity 5000。
  • Buffer和Unbuffer
    Buffer即缓存器,也可理解成高速缓存,在服务器及图形工作站内存有较多应用,容量多为64K,但随着内存容量的不断增大,其容量也不断增加,具有 Buffer的内存将对内存的读写速度有较大提高,象早起168芯EDOECC服务器内存大多都带Buffer,Unbuffer表示不具有高速缓存。有 Buffer的内存几乎都带有ECC功能,Unbuffer内存只有少数带 ECC功能。其在内存编号上也有较明显特征,以维京内存PC133 128M为例,其编号为ME16641U4SS-CL3,其中的字母U就代表Unbuffer。

目前服务器常用的内存有SDRAM和DDR两种内存。
SDRAM是“Synchronous Dynamic random access memory”的缩写,意思是“同步动态随机存储器”,就是我们平时所说的“同步内存”,这种内存采用168线结构.
从理论上说,SDRAM与CPU频率同步,共享一个时钟周期。SDRAM内含两个交错的存储阵列,当CPU从一个存储阵列访问数据的同时,另一个已准备好读写数据,通过两个存储阵列的紧密切换,读取效率得到成倍提高。目前,最新的SDRAM的存储速度已高达5纳秒。
DDR SDRAM DDR是一种继SDRAM后产生的内存技术,DDR,英文原意为“DoubleDataRate”,顾名思义,就是双数据传输模式。之所以称其为“双”,也就意味着有“单”,我们日常所使用的SDRAM都是“单数据传输模式”,这种内存的特性是在一个内存时钟周期中,在一个方波上升沿时进行一次操作(读或写),而DDR则引用了一种新的设计,其在一个内存时钟周期中,在方波上升沿时进行一次操作,在方波的下降沿时也做一次操作,所以在一个时钟周期中, DDR则可以完成SDRAM两个周期才能完成的任务,所以理论上同速率的DDR内存与SDR内存相比,性能要超出一倍,可以简单理解为100MHZ DDR = 200MHZ SDRAM。
DDR内存采用184线结构,DDR内存不向后兼容SDRAM,要求专为DDR设计的主板与系统
DDR2的定义:
DDR2(Double Data Rate 2) SDRAM是由JEDEC(电子设备工程联合委员会)进行开发的新生代内存技术标准,它与上一代DDR内存技术标准最大的不同就是,虽然同是采用了在时钟的上升/下降延同时进行数据传输的基本方式,但DDR2内存却拥有两倍于上一代DDR内存预读取能力(即:4bit数据读预取)。换句话说,DDR2内存每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。
此外,由于DDR2标准规定所有DDR2内存均采用FBGA封装形式,而不同于目前广泛应用的TSOP/TSOP-II封装形式,FBGA封装可以提供了更为良好的电气性能与散热性,为DDR2内存的稳定工作与未来频率的发展提供了坚实的基础。回想起DDR的发展历程,从第一代应用到个人电脑的DDR200经过DDR266、DDR333到今天的双通道DDR400技术,第一代DDR的发展也走到了技术的极限,已经很难通过常规办法提高内存的工作速度;随着Intel最新处理器技术的发展,前端总线对内存带宽的要求是越来越高,拥有更高更稳定运行频率的DDR2内存将是大势所趋。

发表评论