服务器 频道

FB-DIMM内存性能初探

  FB-DIMM技术细节

  FB-DIMM技术,更确切的说是一种新的内存架构,它主要用于解决服务器平台对于内存容量、带宽等方面提出的更高的需求。从内存系统架构的角度来看,FB-DIMM同Registered DIMM和Unbuffered DIMM有着很大的不同。FB-DIMM协议采用了很多新技术,其中支持封包数据格式的串行链路接口和专用的读/写路径是其关键点。点对点差分信号互联和数字去重(de-emphasis)是FBD通道链路的关键点。利用数据流进行时钟恢复(Clock recovery)是FBD时钟的关键点。FB-DIMM支持时钟重同步和重采样操作。CRC (Cyclic Redundancy Check,循环冗余码校验)同数据流一并传输,可确保在高速数据传输过程中的可靠性。Failover机制支持带有动态IO故障的系统运行。另外,FB-DIMM采用了菊花链方式连接,也就是AMB和AMB之间、AMB和Host之间、AMB和DRAM之间都是点对点互联。

  这个章节的名称虽然是《FB-DIMM技术细节》,但是我们无意也不可能在短短一个章节中面面俱到,因此我们将通过了解几个关键词,来对于这种新的内存技术做更进一步的了解。

  关键词之一:频率

图3-1:FB-DIMM内存系统概要

  在FB-DIMM技术中有多个需要了解的频率参数,包括时钟频率、DRAM时钟频率、DRAM数据传输率、通道传输率和通道单元间隔(channel unit interval)。所有的频率参数之间具有一定的比例关系。外部时钟源为AMB和Host提供基准时钟输入信号,这个频率相对于通道和DRAM频率要低的多。AMB倍增了外部时钟输入,为DRAM的运行提供时钟信号。DRAM数据传输率两倍于DRAM时钟输入信号——这也就是DDR(Double data rate)的基本工作模式。通道速度则由单元间隔(UI:Unit Interval)来衡量,单元间隔也就是在FBD通道中电源转换的平均时间间隔。它六倍于DRAM数据传输率。

  因此如果外部时钟源为166MHz(6ns),那么AMB则为DRAM输出333MHz(3ns)的信号源,很容易计算FBD通道单元间隔为250 ps(皮秒,1ns=1000ps),也就是4.0Gbps的传输率。

图3-2:FB-DIMM主要频率关系

  UI CLK_DRAM CLK-REF Frequency
DDR2-533 312.5ps 266MHz 133MHz 3.2Gb/s
DDR2-667 250.0ps 333MHz 166MHz 4.0Gb/s
DDR2-800 208.3ps 400MHz 200MHz 4.8Gb/s

  在FB-DIMM平台设计中,为每个AMB和Host提供的基准时钟信号并没有考虑相位调节的问题。这主要是其时钟同步是通过FB-DIMM内存子系统的外部基准时钟和通道数据流来实现的——这一点同PCI-Express总线的实现方式是相同的。这种方式也造成了在没有数据通讯的时候,使得发射器和接收器之间不同步,在FBD通道内通过引入最小转换密度来解决这个问题。

图3-3:时钟信号的矫正

  关键词之二:接口

图3-4:AMB接口功能

  FB-DIMM中的关键部件为AMB(Advanced Memory Buffer,高级内存缓冲)和它的所有接口。它们包括2个FBD链路(links)接口,1个DDR2通道接口和1个SMBus接口。FB-DIMM采用了菊花链拓朴结构,提供了良好的扩展性,每通道可支持单DIMM到8 DIMM扩展。

  FB-DIMM通道具有双向通讯路径,南向(south bound)链路和北向(north bound)链路,均采用物理差分信号,分别代表不同方向的信号传输。南向指的是从主控制器向DIMM的方向,北向则相反。南向主要用于传输到DRAM的命令和在DRAM中寻址并且向其中写入数据。而北向则用于从DRAM读取的数据。南向输入链路宽度为10 lane,北向输入链路宽度为14 lane。

  AMB所提供的DDR2通道可直接连接到DDR2 SDRAM。DDR2通道支持2 ranks,每rank包含8 bank,可操作16 row/column请求,具有64条数据信号线和8条校验位信号线。

  AMB支持SMBus接口,这也就意味着它允许系统不必通过FBD链路也能访问配置寄存器。不过,AMB并非SMBus的主控制器,仅是从属接口,其工作频率为100 kHz。这个接口在启动系统过程中、诊断链路故障的时候非常的有用,对AMB所必需的。

  关键词之三:帧和带宽

  南向和北向具有不同的数据帧格式和帧格式容量,其中北向的读取数据传输率两倍于写入数据传输速率。采用这种非对称设计的主要原因是因为实际应用中读多写少。

图3-5:帧格式

  南向包括10对差分信号线(20条物理信号线),它采用了10x12 (10 IO [或者 Lane] x 12 IO switching)帧格式,可以传送10x12 bit 信息每DRAM时钟。一个南向帧被分为三个命令slot,如上图所示,Command slot A传送带地址的命令。Command slot B 和 C 传送带抵制的命令或者向DRAM的写数据。

  写数据通过Command+Wdata帧在FBD南向命令和数据连接上传输。每个FBD通道内的Command+Wdata帧可以传输72 bits数据。两个Command+Wdata帧则可以传输144 bits数据,这同单个DRAM命令时钟周期内传输的数据量(18 Bytes)是相匹配的。单通道内可以产生1个DRAM突发8传输或者在两个连续通道可以产生1个突发4传输,均可以提供72 Bytes的数据(64 Bytes数据 + 8 Bytes ECC数据)。南向命令和数据连接的峰值理论吞吐量将只有单DRAM通道的一半。比如,当使用DDR2 533 DRAM时,南向命令和数据连接峰值理论带宽为2.133 GB/s。

  北向包括14对差分信号线(28条物理信号线)。它采用了 14x12 (14 IO [或者Lane] x 12 IO switching)帧格式,每个DRAM时钟可以传输14x12 bit信息。一个北向帧可以分为两个部分,均可以从DRAM读取数据。

  FBD通道的北向数据链路用于传输读取到的数据。每个FBD北向数据帧可传输144bits数据,也就是18Bytes,正好是单个DRAM命令时钟周期内所能传输的包含有ECC数据的容量。14单通道可完成1个DRAM 8突发,相邻的两通道可完成1个DRAM 4突发,这两种方式均可提供72 Bytes的数据(64 Bytes数据 + 8 Bytes ECC数据)。北向数据链接将会同单个DRAM通道的峰值理论吞吐量相同。比如,当使用DDR2 533 DRAM时,北向数据连接峰值理论带宽是4.267 GB/s。

  单FBD通道的峰值理论吞吐量则是北向数据连接峰值理论吞吐量与南向数据连接峰值理论吞吐量之和。单FBD通道的峰值理论吞吐量是单DRAM通道的1.5倍。比如,当使用DDR2 533 DRAM时,DDR2 533通道的峰值理论吞吐量为4.267 GB/s,FBD-533通道的峰值理论吞吐量为6.4 GB/s。

  关键词之四:FBD通道延迟

  当不使用可变读取延迟(Variable Read Latency)功能的时候,FBD通道中的任何一个FBDIMM的延迟同其它的FBDIMM是相同的。当更多的DIMM被加入到FBD通道时,从每个DIMM中读取数据的延迟会相应的增加。这主要是因为FBD通道是由多个基于点对点内部互联DIMM组成的,内存请求要必须要经过N-1个缓冲才能到达第N个缓冲。所以4 DIMM通道配置的空闲读取延迟要被1 DIMM通道配置的长一些。采用可变读取延迟功能则能够使得靠近Host的DIMM的延迟更短一些。

  关键词之五:热插拔(Hot-add和Hot-remove)

  FBDIMM通道本身并不具有监测通道内是否增加了FBDIMM的机制,还是需要依靠系统的内存控制器来对于新添加的FBDIMM进行初始化。然后执行一个热添加复位操作,新的FBDIMM就可以同原来的FBDIMM一起协同工作了。拆卸FBDIMM的之前,也是由Host向最后一个FBDIMM发出一个快速复位操作使其脱离工作状态,然后即可进行拆卸了。需要注意的是,虽然是“热插拔”,但是实际上在安装或者拆卸FBDIMM的瞬间,FBDIMM插槽上的供电是会断掉的,如果实现这样的功能就是系统平台所要考虑的范畴了。

0
相关文章