第二,实现并行数据与串行数据流的翻译转换工作—我们知道,缓冲芯片从内存中读取出来的原始数据原本都为并行格式,它们在通过高速串行总线发送出去之前就必须先转换为对应的串行数据流,而这个任务也必须由缓冲芯片来完成,反之,从内存控制器传来的串行数据流要转成指定的并行格式,然后才能写入到内存芯片中,缓冲芯片自然也要承担这个任务;
第三,缓冲芯片必须承担多个模组的通讯联络任务,如果在一个内存通道中存在多条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模组中,各个缓冲芯片的“中转/合并”逻辑直接串联,“中转”逻辑也与其他“中转”逻辑相连,二者泾渭分明。另外,因北区负责数据发送,来自后一条模组的数据在传给前一条模组的同时会被合并处理,这就是将控制部分称为“中转/合并”逻辑的原因。