扫一扫
关注微信公众号

内存要串行?FB-DIMM技术梦幻提升
2008-03-29   

  一、内存带宽制约系统性能

  FB-DIMM近乎是一种梦幻级的内存技术,在现有技术基础上实现跨越式的性能提升,同时成本也相当低廉。

  在整个计算机系统中,内存可谓是决定整机性能的关键因素,光有快的CPU,没有好的内存系统与之配合,CPU性能再优秀也无从发挥。这种情况是由计算机原理所决定的,CPU在运算时所需要的数据都是从内存中获取,如果内存系统无法及时给CPU供应数据,CPU不得不长时间处在一种等待状态,硬件资源闲置,性能自然无从发挥。

  反之,倘若拥有一个高效的内存系统,CPU从发出请求到获取数据等待时间非常短暂,那么便可将更多的资源用于实际运算处理,对应的性能自然也就越高。正因为如此,包括Intel、AMD在内的CPU厂商才会充分考虑到内存的配合问题,目前Intel正积极推广高带宽的DDR2内存,而AMD则直接把内存控制器整合于CPU内部,达到降低延迟时间的目的。尽管方式不同,但最终目的都是为了让CPU平台能够发挥出更卓越的效能。

  和PC机相比,服务器系统对内存性能更加渴求。服务器要承担的任务量远甚于PC,大量的突发访问、高强度的数据传输、频繁的数据交换、从不间断地稳固运转,这一切都要求服务器系统拥有极高的性能,多处理器往往是标准配备,与之对应,大容量、高速度的内存系统也至关重要。为此,服务器在内存方面往往不惜血本。在许多应用中,4GB容量、双通道设计只是入门产品的基准,在针对敏感应用的多路服务器系统中,多达几十GB甚至上百GB容量也寻常可见。但即便如此,内存依然是服务器性能提升的瓶颈,使用的也仍然是传统的DDR技术。

  无论针对何种应用的服务器,单路系统还是多路系统,ECC Registered DDR400内存便是所能达到的最高水平(DDR2刚开始推广,尚未达到普及的水平),它的有效带宽只有3.2GBps,与PC内存没有什么差异。即使使用双通道技术,也只能达到6.4GBps的水平。为了解决这个问题,RISC架构的高端服务器系统大多为每一个CPU都配备了专属性的内存资源,再通过高速总线实现资源共享,这样单CPU便可拥有6.4GBps内存带宽,至于8路的整套系统,有效内存带宽就可以达到51.2GBps的高水平,很好满足了当前应用的需要。

  二、内存设计思想的变迁

  然而,这种做法只能暂时解决问题,很难应对未来的发展需求,而且容易反过来对CPU的设计造成制约。举个例子,双通道DDR400最多只能提供6.4GBps带宽,那么CPU前端总线带宽也不应超过这个水平,内存系统跟不上,前端总线再快也没用,实际性能还是取决于较慢的内存。我们可以看到,现在不管Itanium 2、Xeon、Opteron还是其他的处理器,前端总线一般都没有高过这个水平。

  到明年初DDR2-533标准可望成为主流,CPU的前端总线带宽也将几乎同步提升到对应的8.5GBps。但如果CPU厂商想通过提高前端总线来获得更高的性能,唯一的做法就是选择具有更高性能的内存系统。在索尼的PS3中,IBM为其研发的CELL处理器就与四通道Rambus XDR 3.2GHz配合,有效前端总线可达到25.6GBps的高水平,远远超过现有任何一种处理器。

  那么,为什么DDR体系在速度上如此滞后?根本原因还应归结于并行设计架构。标准的DDR、DDR2模组都采用64位结构,一次可传输64bit二进制数据,所对应的是64位并行的内存总线。然而,由于先天限制,并行总线很难实现跨越性的性能提升。

  首先,并行总线很容易相互干扰,令传输信号不稳定,频率很难迅速提升,我们所看到内存规格按部就班地缓慢提升并不仅仅是针对市场消费考虑,更多是技术现实使然;其次,内存模组发送出的并行数据要求在同一个传输节拍中同步到达接收端,这就要求主板PCB中的64条线路长度保持严格一致(主板上采用蛇形方式布线就是为了达到这个目的),这就对PCB设计提出苛刻的要求。

  而随着内存频率不断提升,允许的线路长度误差越来越小,最终将导致设计线路成为不可能完成的任务—从这个趋势来看,并行内存的发展空间有限,最终必然会朝向窄位宽和串行化的方向发展;第三,同样由于布线的原因,DDR体系最多只能实现双通道,而这就必须用到128条数据线路,占据大量的PCB面积。即使非要实现4通道,主板也没有这么多PCB空间可以利用,数据同步化问题会带来更多的困扰。种种缺陷造成DDR体系速度提升缓慢,即便未来的DDR3也谈不上有多好的表现,依然会保持缓慢升级的速度。

  最先挑战这个问题的是Rambus公司,它最初提出的RDRAM内存实际上就是采用窄位宽、高频率的设计思想来提升性能,但过高的成本和糟糕的商业策略葬送了这项优秀技术的市场前景。2003年,Rambus在此基础上发展出更先进的XDR内存,依然基于此种设计思想,一举将内存系统的带宽提升到19.6GBps以上(四通道XDR 2.4GHz),最高可达到100GBps的超级水平(八通道XDR 6.4GHz)。

  但可惜的是,XDR同样无法摆脱高成本的困扰,未来它的应用领域也许只能局限于索尼PS3游戏机或者IBM基于CELL处理器平台的计算机产品。那么,能否在现行DDR体系基础上,改用串行思想来设计低成本的高性能模组呢?

  Intel独家开发的FB-DIMM技术对此作了肯定的回答。FB-DIMM最大的特点就是采用已有的DDR2内存芯片,但它借助一个缓冲芯片将并行数据转换为串行数据流,并经由类似PCI Express的点对点高速串行总线将数据传输给CPU。

  据悉,FB-DIMM可以在现有DDR2-533基础上轻易实现25.2GBps的高带宽,而该标准的内存系统在明年即可面市。若采用DDR2-800颗粒,FB-DIMM的带宽将进一步提升到38.4GBps,而它的带宽极限可突破57.6GBps—尽管这个数字仍然逊于XDR系统,但它的优点在于成本升高极为有限,是一项廉价的技术。

  Intel推出FB-DIMM显然不是为PC所准备,这项技术将首先应用在服务器系统中,Intel的Itanium平台将首先从FB-DIMM受益。现在,就让我们走进FB-DIMM世界,向大家揭示这一项堪称神奇的新技术。

  三、FB-DIMM的逻辑架构

  FB-DIMM的全称是“Fully Buffered DIMM(全缓存模组技术)”,大家从其名称中便可直观了解到它的设计思想。如上面所述,FB-DIMM其实就是在一个标准DDR2内存基础上,增加了一枚用于数据中转、读写控制的缓冲控制芯片。

  该枚芯片承担着以下几方面的任务:第一,负责管理FB-DIMM的高速串行总线,承担数据发送和接收的指派任务,这包含一组数据读取的14位串行通路和一组用于数据写入的10位通路;#p#分页标题#e#

  第二,实现并行数据与串行数据流的翻译转换工作—我们知道,缓冲芯片从内存中读取出来的原始数据原本都为并行格式,它们在通过高速串行总线发送出去之前就必须先转换为对应的串行数据流,而这个任务也必须由缓冲芯片来完成,反之,从内存控制器传来的串行数据流要转成指定的并行格式,然后才能写入到内存芯片中,缓冲芯片自然也要承担这个任务;

  第三,缓冲芯片必须承担多个模组的通讯联络任务,如果在一个内存通道中存在多条FB-DIMM模组,那么各个FB-DIMM模组间的数据都是通过缓冲芯片来传递、转发的。不难看出,缓冲芯片实际上是FB-DIMM的大脑,它承担所有的控制、传输和中转任务。

  使用串行总线作为传输媒介,FB-DIMM便顺理成章拥有跨越式的高接口带宽。根据1.0版标准定义,FB-DIMM模组的串行总线有3.2GHz、4.0GHz和4.8GHz三种频率规格,而每条模组的有效位宽为24bit,所对应的接口带宽便是9.6GBps、12GBps和14.4GBps,远远超过了现有的DDR2内存。

  不过,如果你认为这就是FB-DIMM的实际性能,那你就错了,FB-DIMM的接口带宽与实际读写带宽其实是两个概念,前者所指的只是每个模组串行总线的最高带宽,它在含义上类似串行ATA接口—串行ATA的总线带宽达到150MBps,但这并不是指串行ATA硬盘能达到这个速度,代表的只是带宽的最高值。

  同样,FB-DIMM的接口带宽同样如此,模组的实际性能仍取决于内存芯片规格和模组位宽设计。如果采用DDR2-533芯片、64bit位宽设计,那么这条FB-DIMM的有效带宽仍然只有4.2GBps,同现有的DDR2-533内存完全一样。FB-DIMM之所以能拥有高性能,关键在于串行传输技术让它摆脱了并行总线难以实现多通道设计的问题,使得在计算机中引入六通道设计成为可能,借此达到传统DDR体系难以想象的超高带宽,这就是FB-DIMM的真正奥秘所在。

  不过,引入缓冲设计也会产生一个新的问题。数据在传输过程中需要经过缓冲和转换,不可避免需要花费额外的延迟时间,对性能产生负面影响。但随着工作频率的提升,这个缺陷会变得越来越不明显。为了保持信号稳定,DDR2内存的延迟时间将随着工作频率的提高而快速增加,而FB-DIMM的延迟时间增幅平缓,所以虽然现在FB-DIMM延迟较高,但当单条模组的带宽达到4GBps左右时,FB-DIMM与DDR2内存延迟时间相当,超过这个临界点之后,DDR2内存的延迟时间将明显长于FB-DIMM。换句话说,FB-DIMM系统不仅具有更高的数据带宽,而且延迟时间更短、反应速度更快。

  四、FB-DIMM的中枢神经

  串行总线设计是FB-DIMM赖以拥有高效能的基础。实际上,Intel并没有另起炉灶从零开始设计,而是直接沿用了许多来自于PCI Express的成果,其中最关键的就是使用差分信号技术(Differential Signaling)。

  关于差分信号技术,此前我们在介绍串行ATA、HyperTransport和PCI Express总线时都有过多方探讨,这里不妨进行简单重述。我们知道,现有各种并行总线都是以一条线路来传输一个数据信号,高电平表示“1”,低电平表示“0”,或者反过来由低电平表示“1”,高电平表示“0”。单通道结构的64bit内存需要使用64条金属线路来传输数据,双通道就需用到128条线路。

  当数据在线路传输时,很容易受到电磁环境的干扰,导致原始数据出现异常,如高电平信号电压变低,或低电平的电压变高,这些干扰都有可能让接收方作出错误的判断,导致数据传输失败。过去业界曾为这个难题大伤脑筋,当初硬盘数据排线从40针提高到80针细线(增加40根地线)就是为了降低传输干扰,但直到串行技术引入后问题方告解决。

  与传统技术迥然不同,差分信号不再是以单条线路的高低电平作为“0”和“1”的判断依据,而是采用两条线路来表达一个二进制数据—数据究竟为“0”还是“1”取决于这两条线路的电压差。这样,即使受到严重的外来干扰,导致两条线路传输的电平信号发生较大范围的电压波动,但它们之间的电压差依然可以保持相对稳定,接收方便能够作出正确的判断。因此,差分信号技术拥有非常强的抗干扰能力,但因它需要占用两条线路,很难被引入到并行总线技术中,只有针对服务器应用的SCSI总线是个例外。

  FB-DIMM借鉴PCI Express技术的第二个地方,就是其串行总线也采用了点对点结构。目前,DDR体系的并行总线无法在同一时刻同时发送和接收数据,二者根据指令轮流进行。然而FB-DIMM却可以在同一时刻同时发送和接收数据,奥秘在于它拥有两个串行通路,一个用于数据发送,一个用于数据接收。与之对应,FB-DIMM的缓存芯片有专用的发送控制逻辑和接收控制逻辑,数据读出操作和写入操作可在一个周期内同步进行。这实际上将内存系统的理论延迟时间缩短了一半,弥补了缓冲处理所造成的损失。

  较为特殊的是,FB-DIMM的数据发送总线与接收总线是不对等的,发送总线一共有14个线路对,一次向内存控制器发送14bit数据。而接收总线采用10位设计,每次只能够接收10bit数据。笼统地说,单通道的FB-DIMM模组就是24bit设计。这种不对等设计之前没有先例,但它却十分符合内存系统的客观实际。在大多数情况下,CPU从内存中读出的数据总是远远多于写入到内存的数据,与之对应,读取总线带宽高于写入总线的设计方案科学合理,而且十分经济。

  五、FB-DIMM的信息中转站

  缓冲控制芯片是FB-DIMM的中枢神经,它有一个专用名称:Advanced Memory Buffer,意为高级内存缓冲。前面我们提到,FB-DIMM的所有控制功能都是由它来实现,而不仅仅只是用于缓冲数据。下面,我们将深入其逻辑内部,剖析它的结构。

  根据前面所述,我们可以将缓冲芯片的功能分解为串行总线传输、并行-串行数据互转、内存读写控制以及缓冲芯片通讯等四大部分,这些功能都有专门的逻辑单元一一对应。在串行总线传输部分,我们介绍过其不对等的设计,数据发送14bit,数据接收10bit。

  在缓冲芯片逻辑内,发送部分被称为“Northbound(北区)”,而接收部分则被称为“Southbound(南区)”,北南二区的总线控制职能分别由缓冲芯片中的“中转/合并(Pass through&Merging)”、“中转(Pass-through)”控制逻辑所掌管。而在同一个通道的多个FB-DIMM模组中,各个缓冲芯片的“中转/合并”逻辑直接串联,“中转”逻辑也与其他“中转”逻辑相连,二者泾渭分明。另外,因北区负责数据发送,来自后一条模组的数据在传给前一条模组的同时会被合并处理,这就是将控制部分称为“中转/合并”逻辑的原因。#p#分页标题#e#

  并-串数据互转是缓冲控制芯片的又一个关键点。对于数据发送的北区,就是将从内存中读取出来的并行数据预先转换为串行数据流,它是由缓冲芯片的“串行转换逻辑(serializer)”来完成的。而对于北区接收到的数据,则是由“并行转换/解码逻辑(De-serializer &Decode Logic)”处理的,首先将串行数据转为对应的并行格式,然后将数据流包含的写入命令和地址信息进行解码,并据此完成写入操作。

  毫无疑问,数据读取和写入操作的最终对象都是FB-DIMM模组内的内存芯片。我们在缓冲控制芯片的逻辑中发现,缓冲芯片与内存芯片的通讯完全是由“数据总线接口(Data Bus Interface)”进行统一掌管,它也是二者之间最主要的连接点。在读取数据时,内存模组中传出的并行数据经过数据总线接口后指派给上面的“串行转换逻辑”,得出的串行数据流被发送给内存控制器。而进行写入操作时,并行化后的数据也必须通过这个接口,再写入到指定的区域。

  显然,它承担的只是简单的转换控制工作而已,但从中我们可以看到,FB-DIMM模组芯片采用多少位的设计无关紧要,其实Intel可以将它设计为64bit,升级更为平滑,也可以设计为128bit模组来获得更高的性能,在现有技术条件下实现这样的目标可谓是轻而易举,而我们前面推测FB-DIMM系统的效能其实也都还是保守数字。

  到此为止,整套FB-DIMM系统便能轻松运转起来了,在上述分析中不难看出,该缓冲控制芯片的结构并不复杂,功能单元相对简单,没有多大的设计难度,更多体现的是一种理念的创新。根据1.0版规范,该枚芯片将采用类似BGA的封装技术,芯片整体尺寸为24.5×19.5×2.15毫米,很容易便能安装到内存的PCB板上。从样品图中可以看出,该芯片的核心面积很小,量产后的制造成本很低。其底部一共有多达655个球状焊接信号点,分布井然有序。

  六、FB-DIMM三大优点

  在多通道设计上,FB-DIMM非常灵活,你可以使用单通道、双通道、四通道或者是六通道,几乎可以同Rambus公司的XDR内存相媲美,其中关键便是串行总线设计。为了更好说明这一点,我们不妨引入DRR2内存来作为对比。

  根据前面所述,大家可知每条FB-DIMM为24位,但它是由24条高速串行通路组成,不存在信号同步化的问题,对应主板PCB的线路也根本不必讲究长度一致,设计难度得到有效控制。从线路数量来考虑情况也与之类似,因使用差分信号技术,传输一个数据需要占用两条线路,那么单个FB-DIMM通道就一共需要48条数据线路,再加上12条地线、6条供电线路和3条共享的线路,线路总数只有69条。与之形成鲜明对比的是,一条DDR2模组总共需要用到240条线路,足足是FB-DIMM的三倍还多。而且DDR2内存的数据线路必须保持严格一致,设计难度较大。

  从对比中大家可以看到二者的明显差别,即便是单通道DDR2系统,主板PCB上的空间被密密麻麻、设计极其复杂的蛇形线路占据,没有任何空余的地方。此外,数据线路和地线总共要占据两层PCB,供电线路又要占据一层,资源占用比较厉害。而图5右侧的双通道FB-DIMM方案就简单了许多,传输线路只占据极少的一部分PCB区域,总共只要两层PCB即可,差异极为明显。

  目前,业界已很好地掌握了双通道DDR/DDR2技术,PCB设计人员可以在北桥芯片/CPU与内存DIMM槽间的空位设计出480条连接线路,至少其中的128条数据线需要保持严格一致。那么,FB-DIMM的多通道设计就变得非常自然了,六通道也只需要使用到414条连接线路,这些线路几乎都不需要保持严格一致的长度,实现成本比双通道DDR/DDR2要低得多。

  高性能并非FB-DIMM的唯一优点,对服务器系统来说,FB-DIMM另一个关键的优点是它可实现超大容量。每个FB-DIMM通道都可以最多串联8条内存,一个服务器系统最多可以实现6个通道,装载48条FB-DIMM内存,而每条FB-DIMM内存的最大容量达到4GB,这样该系统可容纳的最高容量就达到了192GB。这么大的容量对于普通服务器没有什么意义,但对于高端系统乃至超级计算机,FB-DIMM带来的容量增益就非常明显。

  要将如此之多的FB-DIMM内存插槽放置在主板上肯定是个大麻烦。显然,若采用现行内存槽方案,将导致主板PCB面积难以控制,为此,Intel为FB-DIMM系统定义了全新的连接模式,通过一块扩展板来实现多模组的连接。

  我们先来看看最基础的FB-DIMM,如图所示,二者分别为单、双条FB-DIMM的连接形式,连接方法与现有DDR内存没甚么不同,区别只是在于特殊的总线连接而已,内存控制器通过高速串行总线与各条FB-DIMM模组的缓冲控制芯片连接,但如果要为这套系统安装数十条FB-DIMM模组,那又该怎么办?

  FB-DIMM 1.0标准对此作出了明确的定义。主板上提供6个扩展槽,每个槽对应一个通道。每个扩展槽上可直接连接FB-DIMM模组或者是内存扩展板,每个扩展板上又有8个FB-DIMM连接槽,只要你愿意,可以将8条模组插在扩展板上,然后再将该内存扩展板插在主板上,依此类推,完成6通道、48条内存的安装。这种方法充分利用了机箱内部空间,巧妙解决了多模组安装的难题,构建高效能系统就显得更具可操作性。

  七、FB-DIMM模组的物理规格

  FB-DIMM 1.0标准对模组的物理规格作出了相当详细的定义,具体包括模组尺寸、金手指设计以及相关的电压参数等。在这些方面,FB-DIMM并没有太出奇的地方,Intel更多考虑到与现行生产设备的兼容问题,如FB-DIMM模组的尺寸为133.5毫米×30.5毫米,同现有的服务器内存完全一样。

  模组中可以容纳9颗、18颗或36颗DDR2/DDR3规格的内存芯片,其中18颗芯片设计为标准方案—PCB的背面容纳10颗、正面为8颗,正面中间位置留给缓冲控制芯片。如果要采用36颗芯片的高容量方案,估计要使用芯片叠加技术才行。另外,FB-DIMM模组的金手指仍有240个,与DDR2内存相同,区别只是缺口的位置不同而已。

  这种设计其实也是为兼容现有生产设备之故,FB-DIMM的有效针脚只有69个,我们可以从下图的FB-DIMM模组中看到,只有正面左侧的金手指有连接到缓冲控制芯片的线路,其余位置的金手指并没有连接线路,只是做做样子而已。也许很多人会认为,直接设计为69个金手指会更经济一些,但这样做就必须对现有的生产设备作较大的调整,花费的成本反而更高。#p#分页标题#e#

  由于增加了一枚芯片,FB-DIMM模组内总共就要用到三种不同用途的电压,驱动DDR2内存芯片的1.8V电压,内存“命令/地址”信号的终结器则要用到0.9V电压,至于缓冲芯片本身必须用到1.5V驱动电压才行。

  因此,FB-DIMM模组的供电设计会比现行DDR/DDR2模组要复杂一些。与之对应的是功耗问题,非常奇怪的是,安装位置不同但规格参数完全相同的FB-DIMM模组居然消耗不一样的电能。第一条模组典型功耗为3.4W,而通道内的最后一条模组一般只需消耗2.4W功耗,这种情况与缓冲控制芯片的任务指派机制有关,第一条模组的缓冲芯片必须承担更多的数据转发和合并工作,相应的,缓冲控制芯片的任务负担也多一些,多消耗电能并不奇怪。

  缓冲芯片工作在很高的频率上,芯片发热量必然比较可观,有鉴于此,Intel也对它的散热方案作出参考性的定义。利用一个固定在内存PCB板上的弹簧片来夹紧散热片,这一方案显然比较简单,FB-DIMM内存厂商也完全可以发展出其他的方案,比如说像现在不少高速DDR500内存一样,将模组两面用金属散热片包覆起来,散热效果估计会更好些。

  八、前途无量的FB-DIMM

  毫无疑问,FB-DIMM近乎是一种梦幻级的内存技术,在现有技术基础上实现跨越式的性能提升,成本也相当低廉。更重要的是,FB-DIMM并不是什么空中楼阁,到明年我们便可看到FB-DIMM内存正式在Intel服务器中大放光彩。单从技术角度出发,我们也许会发现FB-DIMM谈不上有多少独创的东西:DDR2内存芯片、类似PCI Express的串行总线,但它更多是一种创新思想的产物,正因为如此,构建于成熟技术基础上的FB-DIMM才拥有如此的魅力。相对昂贵的XDR内存,FB-DIMM平民本质注定了它必将成为最终的胜利者。

  Intel表态,FB-DIMM将专注于IA架构服务器领域,PC平台仍然按照DDR2、DDR3按部就班地升级,是否将FB-DIMM引入暂无结论。不过,廉价、易于实现的FB-DIMM注定有这样的发展潜力,只要Intel愿意,让PC同样享有FB-DIMM技术易如反掌,即便只用到4通道设计,FB-DIMM的效能也将超出DDR2系统两倍之多,性能优势极其明显,凭借此举Intel便可在竞争中占据主动地位。而这势必反过来影响CPU的设计,为配合内存带宽的大幅提升,CPU前端总线也应进行相应的速度扩展,甚至可考虑直接转向串行总线(目前CPU前端总线均为64位并行结构),以此打造的全新计算机系统,将现有平台远远甩在后头。Intel没有对外界透露FB-DIMM是否会将应用领域拓展,但我们相信,这样的可能性完全存在。

  未来的内存之战注定会在FB-DIMM与Rambus XDR之间展开,现行DDR2系统终结于2007年,而DDR3大约只能用到2010年,在这之后,DDR体系很难有进一步的提升空间,朝向窄位或者串行方向发展乃是大势所趋。从性能而论,全新架构的XDR也许会有更大的优势,但高成本再次成为其致命弊端。廉价、平滑升级的FB-DIMM拥有很大的胜算,再考虑到FB-DIMM为Intel自己的杰作,我们几乎可以断定它将成为传统DDR体系的终结者。

  九、服务器模组中的ECC和Registered

  服务器所承担的都是关键性任务,往往要求24小时×365天的不间断运行,而且不允许中途故障频出或者频繁重启,对可靠性和稳定性两项指标要求极为苛刻。但PC机就简单得多,系统崩溃重启即可,每天开机时间多数不超过10小时。截然不同的应用实际决定了二者在内存技术上的差异,服务器内存拥有ECC和Registers功能,而针对PC的普通内存条则没有这两项技术,那么它们究竟起到什么作用呢?

  ECC校验功能

  ECC校验功能大家应该比较熟悉,在许多地方都有它的踪迹。ECC功能所起的作用就是检查数据在传输过程中是否出错,一旦发现接收到的数据错误就立刻将它抛弃,并命令对方重新发送一次。这种机制可以有效减少服务器的故障率,倘若数据在传输中出错却没被检查出来,CPU使用错误的数据后很可能出现更严重的错误,造成系统意外崩溃的情形。虽然在日常应用中这种情况极少出现,但服务器在高负载、长时间不间断运行的状态下,数据出错就难免了,因此对这些领域来说,内存模组拥有ECC校验功能是必不可少的。

  ECC的实现原理较为简单,它在每个字节中增加一个校验字位,并以此为基础来判断数据正确与否。我们可以看到,普通DDR/DDR2内存模组都为64bit位宽,而ECC模组的位宽达到72bit,多出的8bit其实就是校验位。另外,我们必须明确一个概念,ECC只能对数据包进行检查,判断数据是否正确,如果发现错误便让对方重发,而不是直接修复数据。目前,具有错误自动修复功能的内存只有在某些大型计算机、军用战机、人造卫星、空间探测器、火星车等高精尖设备中才会用到。

  ECC功能由模组中附加ECC校验芯片来实现,但要让ECC发挥作用还离不开内存控制器的支持,目前针对服务器的芯片组均可支持该项特性。一般ECC校验只能检查出1bit的数据错误,但如果内存控制器设计得足够强大,ECC机制也可以侦测到一个字节数据中多个比特位同时出错的情形。

  Registers功能

  Registers通常与ECC概念被一并提起,不少人甚至认为二者都是纯粹的错误校验。其实,Registers的概念与ECC大不相同,它指的是信号的重新驱动(re-driving)过程—在很多时候,内存中保留的数据经过多次刷新之后有可能出现失真,代表二进制数据的电平信号发生偏差。一旦出现这种情况,很容易导致数据传输出错的情形,而Registers所起到的其实是一个事前预防的作用。拥有Registers功能的内存模组,可以通过重新驱动控制信号来改善内存的运作,提高电平信号的准确性,有助于保持系统长时间稳定运作。不过,因为Registers的信号重驱动需花费一个时钟周期,延迟时间有所增加,因此它的实际性能会稍低于普通内存,相当于以性能换取稳定性。

  Registers功能同样要由专门的芯片实现,它承担信号重驱动的控制职能。由于工作方式不同,有无Registers功能的两种模组是不能混用的。

  ECC Registers功能的168-pin SDRAM,图中上部方框所示为Registers芯片。

热词搜索:

上一篇:两大处理器巨头对阵 内存控制器技术大对决
下一篇:无线局域网使用中的QoS研究

分享到: 收藏