分类: 服务器与存储
2012-06-12 09:44:47
原文链接:
http://blog.58io.com/knowledge/understanding-of-server-memory
今天拿了几条内存要给网吧装上,可怜装了几年的服务器,竟然分不清recc和ecc内存,想找些知识,可国内没有太多的介绍如何识别ecc和recc,google了下,找了些内容留下查看吧
先介绍服务器内存的技术
一: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。
四:FB-DIMM
FB-DIMM(Fully Buffered-DIMM,全缓冲内存模组)是Intel在DDR2的基础上发展出来的一种新型内存模组与互联架构,既可以搭配现在的DDR2内存芯 片,也可以搭配未来的DDR3内存芯片(已被取消)。FB-DIMM可以极大地提升系统内存带宽并且极大地增加内存最大容量。
FB-DIMM技术是Intel为了解决内存性能对系统整体性能的制约而发展出来的,在现有技术基础上实现了跨越式的性能提升,同时成本也相对低 廉。在整个计算机系统中,内存可谓是决定整机性能的关键因素,光有快的CPU,没有好的内存系统与之配合,CPU性能再优秀也无从发挥。因为CPU运算时 所需的数据都是从内存中获取,如果内存系统无法及时给CPU供应数据,CPU不得不处在一种等待状态,形成资源闲置,性能自然无从发挥。对于普通的个人电 脑来说,由于是单处理器系统,目前的内存带宽已经能满足其性能需求;而对于多路的服务器来说,由于是多处理器系统,其对内存带宽和内存容量是极度渴求的, 传统的内存技术已经无法满足其需求了。这是因为目前的普通DIMM采用的是一种“短线连接”(Stub-bus)的拓扑结构,这种结构中,每个芯片与内存 控制器的数据总线都有一个短小的线路相连,这样会造成电阻抗的不继续性,从而影响信号的稳定与完整,频率越高或芯片数据越多,影响也就越大。虽然 Rambus公司所推出的的XDR内存等新型内存技术具有极高的性能,但是却存在着成本太高的问题,从而使其得不到普及。而FB-DIMM技术的出现就较 好的解决了这个问题,既能提供更大的内存容量和较理想的内存带宽,也能保持相对低廉的成本。FB-DIMM与XDR相比较,虽然性能不及全新架构的 XDR,但成本却比XDR要低廉得多。
与现有的普通DDR2内存相比,FB-DIMM技术具有极大的优势:在内存频率相同的情况下能提供四倍于普通内存的带宽,并且能支持的最大内存容量 也达到了普通内存的24倍,系统最大能支持192GB内存。FB-DIMM最大的特点就是采用已有的DDR2内存芯片(以后还将采用DDR3内存芯片), 但它借助内存PCB上的一个缓冲芯片AMB(Advanced Memory Buffer,高级内存缓冲)将并行数据转换为串行数据流,并经由类似PCI Express的点对点高速串行总线将数据传输给处理器。
与普通的DIMM模块技术相比,FB-DIMM与内存控制器之间的数据与命令传输不再是传统设计的并行线路,而采用了类似于PCI-Express 的串行接口多路并联的设计,以串行的方式进行数据传输。在这种新型架构中,每个DIMM上的缓冲区是互相串联的,之间是点对点的连接方式,数据会在经过第 一个缓冲区后传向下一个缓冲区,这样,第一个缓冲区和内存控制器之间的连接阻抗就能始终保持稳定,从而有助于容量与频率的提升。
五:U-DIMM
无缓冲双通道内存模块 (Unbuffered Dual In-Line Memory Modules,UDIMM),不能支持到最高内存容量,不能发挥机器最高性能,因为只能使用UDIMM时最大使用每通道只能使用2个插槽,但是支持3通 道,这样最大每路插6根内存,一共12根内存.不能18个槽全插. 同时MEMORY MIRRORING/SPARE之类的特性就不会被支持了.但是这样的应用对预算有限的客户不适为好的方案.
目前服务器常用的内存主要有三种
1.ECC 内存,“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”。
一般INTEL3XXX系列主板使用此内存条
2。Reg-DIMM 带寄存器Register芯片和unbuffered ECC不带缓存
带有Register的内存一定带Buffer(缓冲),并且目前能见到的Register内存也都具有ECC功能,其主要应用在中高端服务器及图形工作站上,Register也被称为Reg-ECC或者RECC
3。FB-DIMM(Fully Buffered DIMM),全缓冲内存模组内存
FB-DIMM另一特点是增加了一块称为“Advanced Memory Buffer,简称AMB”的缓冲芯片。这款AMB芯片是集数据传输控制、并—串数据互换和芯片而FB-DIMM实行串行通讯呈多路并行主要靠AMB芯片来实现。
如INTEL5XXX系列主板使用此内存条
简单点理解就是
ECC服务器内存带“奇偶校验”
FBD服务器内存带“缓冲、奇偶校验”
REGISTER服务器内存即带“带寄存器、奇偶校验、缓冲”
服务器内存不会向普通内存标上DDR3/1333MHz之类的,不容易识别,而是用PC3-10600之类的长编号,下图可以用来识别服务器内存型号
这样就可以看出内存的具体型号和频率了
下面来介绍如何选择服务器内存
一、支持ECC技术的服务器内存
服务器内存与普通内存相比,除了具备更好的做工外,其具备的一些特色技术是两者存在根本差别的重要原因。目前服务器内存与普通内存有着根本差别的技术有三个:ECC、Register(或ECC+Register)、FB-DIMM(或ECC+FB-DIMM)。
ECC(Error Checking and Correcting)就是一种能实现“错误检查和纠正”的内存技术,与普通内存上应用的主要是发现错误的Parity(奇偶校验)功能相比,应用ECC 技术的内存不仅能够容错,而且能纠错,其“具有自动更正的能力,可以将Parity无法检查出来的错误位查出并将错误修正”。
大家知道,内存在数据传送时,不可能百分之百的准确无误,受电气等因素干扰,其有可能偶尔出错。在具体工作时,在数据写入内存时,便会有对应的 ECC代码在对应芯片中被同时保存下来。而在读取数据时,如果发现所读取数据和所保存的ECC代码不同,则会用保留的代码对出错的代码进行纠正,直到正确 为止。所以ECC功能会在一定程度上影响内存的性能。
带ECC校验的内存比普通内存要贵,其在外观上要比普通内存多一个ECC校验芯片,由于目前一般采用和内存颗粒一样的封装,使得内存在标准的双数芯 片基础上多了一颗芯片与普通电脑系统不同,对于服务器来说,稳定性是第一位的,性能是其次的,所以ECC技术从一诞生开始,便被主要应用在服务器内存上, 并被几乎所有的服务器系统所支持,已成为服务器要求高精度的专用记忆体的必备功能。并且,从外观上来看,其和普通内存很好区别,那就是其具有一个普通内存 没有的ECC校验芯片。现在ECC校验技术仍被广泛的应用在主流的DDR、DDR2、DDR3内存上。
二、支持Register技术的服务器内存
在主流的服务器内存中,还有一项技术被广为应用,这就是Register.Register即寄存器或目录寄存器,在内存上的作用就好比书的目录, 有了它,当内存接到读写指令时,会先检索此目录,然后再进行读写操作。拥有Registers功能的内存模组,可以通过重新驱动控制信号来改善内存的运 作,提高电平信号的准确性,从而有助于保持系统长时间稳定运作。不过,由于Registers的信号重驱动需花费一个时钟周期,延迟时间有所增加,因此具 有该功能内存的读写性能同样会稍低于普通内存。
大家在选用带ECC的内存时,会发现其有Buffered/Registered和Unbuffered之别。
其实Buffered/Registered(缓存器/寄存器)就是带高速缓存/寄存器的内存,缓存能够二次推动信号穿过内存芯片,而使内存条上能 够放置更多的内存芯片。Buffered与Registered是Reg-DIMM的两种工作模式,Buffered模式采用时钟异步方式工作,而在 Registered模式中输入信号的再驱动则与时钟同步,所以后者具备更高的效能。ECC Buffered主要被用在早期的EDO、SDRAM内存上,而今主流的带缓存器/寄存器的Registered内存都是ECC DDR/DDR2的。
支持Register技术的服务器内存不仅看起来多一颗内存芯片,还会多出1-3颗用于支持Register技术的芯片。
而Unbuffered表示不带缓存器的内存,与带Registered的服务器内存不同,UDIMM(Unbuffered DIMM)是目前台式机和笔记本上使用的内存存储模块的统称,为了提高传送精度,这类内存模块不另外进行数据及命令的缓冲处理。而Unbuffered内 存也有ECC Unbuffered(带ECC的内存模块)和Non-ECC Unbuffered(不带ECC的内存模块)之别,ECC Unbuffered就是在普通内存上基础上生产的具备ECC功能的产品,其价格比普通的Non-ECC Unbuffered稍贵。
此外,大家需要注意的是,目前主流的Registered内存一般都同时标配有ECC功能,两者相辅相成,所以其又被称为ECC Registered(或REG ECC、R.ECC、ECC.R等等)内存,其是目前服务器内存应用的一种主流产品。与只比普通内存多一个ECC校验芯片的ECC Unbuffered内存不同,ECC Registered其上面会标配有2-3个芯片,这是两者的明显区别之一。
其中一个为PLL(Phase Locked Loop)锁相环芯片,锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟(也就是内存条间)的相位同步;其它的为Register芯片,其 一般有1-3片,使用带Register技术的内存条,可通过Register芯片提高驱动能力,使服务器可支持更多的内存,更好的满足日益庞大的软件对 内存无止境的要求,这类内存的价格比普通内存要贵N倍。
三、支持FB-DIMM技术的服务器内存
在目前主流的服务器内存市场上,支持FB-DIMM技术的服务器内存已很常见。FB-DIMM是什么呢?FB-DIMM(Fully Buffered-DIMM,全缓冲内存模组)是Intel在DDR2、DDR3内存的基础上发展出来的一种新型内存模组与互联架构,其可以极大地提升系 统内存带宽并且极大地增加内存最大容量。
FB-DIMM技术的原理图
从技术上来看,FB-DIMM技术并不会对现有DDR内存体系造成额外的影响,因为它主要是一种新的内存互连技术。其通过 AMB(Advanced Memory Buffer)先进内存缓冲器芯片可把DIMM上的并行内存资料转换为串行,可承接同一通道串连的其他FB-DIMM资料,并将资料传道到下一FB- DIMM的AMB或主板上的内存控制器。与DDR2和DDR3内存相比,FB-DIMM会执行更多的除错协议。虽然其会造成效能的下滑,这对于数据的完整 性有很大的帮助。
与普通的DIMM模块技术相比,FB-DIMM与内存控制器之间的数据与命令传输不再是传统设计的并行线路,而采用了类似于PCI- Express的串行接口多路并联的设计,以串行的方式进行数据传输。在这种新型架构中,每个DIMM上的缓冲区是互相串联点对点的连接方式,从而有助于 容量与频率的提升。并且其具备的CRC(Cyclic Redundancy Check)循环冗余校验技术,可实时保护数据和命令加密,大幅度提高系统的可维护性。
所以,与现有技术相比,FB-DIMM内存可提供4倍于普通DDR2内存的带宽。FB-DIMM内存架构允许用户持续扩展他们服务器的内存 容量,这种内存架构允许最大6个内存通道,每个通道最大支持8个双面内存模组,并且允许2个通道同时进行数据读写——例如,金士顿4GB FB-DIMM内存最大可为服务器提供192GB内存容量,三星8GB FB-DIMM内存则最大可为服务器提供384GB内存容量,这对于高端服务器系统来说是至关重要的。
具备AMB芯片是FB-DIMM内存的最大特征
而由于FB-DIMM的针脚数量会大幅度只有69根针脚,和单通道DDR2内存架构的240根针脚相比,FB-DIMM的69根针脚更利于 PCB板的设计和布线。此外,为了达到同步的信号传输,在电路板的设计中,电路工程师们为了实现线路长度相等,需要采用象蛇形一样复杂的布线方式。而 FB-DIMM支持长度不相等的线路,内存控制器和缓冲可以对线路长度不相等造成的信号传输时差进行补偿,从而简化电路板的设计。
目前支持FB-DIMM技术的服务器内存同样可向前兼容ECC技术,在Intel的强力推广下,目前各大厂商都已明确支持FB-DIMM技术。早在2005年底,三星便率先开发出8GB FB-DIMM内存,而目前市场上的FB-DIMM内存已成为服务器内存的新宠。