fb-dimm,全缓冲内存模组
fb-dimm(fully buffered-dimm,全缓冲内存模组)是intel在ddr2、ddr3的基础上发展出来的一种新型内存模组与互联架构,既可以搭配现在的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上的缓冲区是互相串联的,之间是点对点的连接方式,数据会在经过第一个缓冲区后传向下一个缓冲区,这样,第一个缓冲区和内存控制器之间的连接阻抗就能始终保持稳定,从而有助于容量与频率的提升。
用于数据中转、读写控制的缓冲控制芯片amb并非只是一枚简单的缓冲芯片,它主要承担以下三方面的功能:
1)负责管理fb-dimm的高速串行总线。缓冲芯片与北桥芯片(或者cpu)中的内存控制器连接,让数据在内存缓冲与控制器之间传送,承担数据发送和接收的指派任务,这包含一组数据读取的14位串行通路和一组用于数据写入的10位通路。
2)实现并行数据流与串行数据流的翻译转换工作和读写控制。缓冲芯片从内存中读取出来的原始数据原本都为并行格式,它们在通过高速串行总线发送出去之前就必须先转换为对应的串行数据流,而这个任务也必须由缓冲芯片来完成,反之,从内存控制器传来的串行数据流要转成指定的并行格式,然后才能写入到内存芯片中,缓冲芯片自然也要承担这个任务。
3)承担多个fb-dimm模组的通讯联络任务。如果在一个内存通道中存在多条fb-dimm模组,那么各个fb-dimm模组间的数据都是通过缓冲芯片来传递、转发的。缓冲芯片要始终承担着数据传输和读写的中介工作,不同的fb-dimm内存储模组必须通过这枚芯片才能交换信息。
fb-dimm系统示意图
因此,每个内存芯片不再直接和内存控制器进行数据交换。实际上,除了时钟信号和系统管理总线的访问,其他的命令与数据的i/o都要经过位于dimm上的amb的中转,从而消除了传统dimm模组“短线连接”的弊端。不难看出,缓冲芯片amb实际上是fb-dimm的大脑,它承担所有的控制、传输和中转任务。使用串行总线作为传输媒介,fb-dimm便顺理成章拥有跨越式的高接口带宽。根据1.0版标准定义,fb-dimm模组的串行总线有3.2ghz、4.0ghz和4.8ghz三种频率规格,而每条模组的有效位宽为24bit,所对应的接口带宽便是9.6gbps、12gbps和14.4gbps,远远超过了现有的ddr2内存。必须注意的是,fb-dimm的接口带宽与实际读写带宽其实是两个概念,前者所指的只是每个模组串行总线的最高带宽,它在含义上类似sata接口—sata的总线带宽达到150mbps,但这并不是指串行ata硬盘能达到这个速度,代表的只是带宽的最高值。同样,fb-dimm的接口带宽同样如此,模组的实际性能仍取决于内存芯片规格和模组位宽设计。如果采用ddr2-533芯片、64bit位宽设计,那么这条fb-dimm的有效带宽仍然只有4.2gbps,同现有的ddr2-533内存完全一样。fb-dimm之所以能拥有高性能,关键在于串行传输技术让它摆脱了并行总线难以实现多通道设计的问题,使得在计算机中引入六通道设计成为可能,借此达到传统ddr2体系难以想象的超高带宽,这就是fb-dimm的真正奥秘所在。不过,引入缓冲设计也会产生一个新的问题。数据在传输过程中需要经过缓冲和转换,不可避免需要花费额外的延迟时间,对性能产生负面影响。但随着工作频率的提升,这个缺陷会变得越来越不明显。为了保持信号稳定,ddr2内存的延迟时间将随着工作频率的提高而快速增加,而fb-dimm的延迟时间增幅平缓,所以虽然现在fb-dimm延迟较高,但当单条模组的带宽达到4gbps左右时,fb-dimm与ddr2内存延迟时间相当,超过这个临界点之后,ddr2内存的延迟时间将明显长于fb-dimm。换句话说,fb-dimm系统不仅具有更高的数据带宽,而且延迟时间更短、反应速度更快。
fb-dimm与ddr2延迟对比
串行总线设计是fb-dimm赖以拥有高效能的基础。实际上,intel并没有另起炉灶从零开始设计,而是直接沿用了许多来自于pci express的成果,其中最关键的就是使用差分信号技术(differential signaling)。 现有各种并行总线都是以一条线路来传输一个数据信号,高电平表示“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从内存中读出的数据总是远远多于写入到内存的数据,与之对应,读取总线带宽高于写入总线的设计方案科学合理,而且十分经济。
按照intel的fb-dimm规范,每个dimm只需要69pin或70pin,比普通ddr2的240pin要少得多,这有利于实现多通道设计。例如普通的ddr2系统需要240条线路,而且线路长度必须保持严格一致,这导致了设计难度的加大,而且主板pcb上的空间被密密麻麻、设计极其复杂的蛇形线路占据,没有任何空余的地方;而采用fb-dimm的话,即使是六通道设计,也只需要420条线路,比双通道的ddr2还要少得多,大大简化了主板设计,并且工作更加稳定。
高性能并非fb-dimm的唯一优点,对服务器系统来说,fb-dimm另一个关键的优点是它可实现超大容量。每个fb-dimm内存通道都可以最多支持8个dimm(普通ddr2每个内存通道只能支持2个dimm),一个服务器系统最多可以实现6个通道,装载48条fb-dimm内存,而每条fb-dimm内存的最大容量达到4gb,这样该系统可容纳的最高容量就达到了192gb。这么大的容量对于普通服务器没有什么意义,但对于高端系统乃至超级计算机,fb-dimm带来的容量增益就非常明显。
要将如此之多的fb-dimm内存插槽放置在主板上肯定是个大麻烦。显然,若采用现行内存槽方案,将导致主板pcb面积难以控制,为此,intel为fb-dimm系统定义了全新的连接模式,通过内存扩展板来实现多模组的连接。主板上提供6个内存扩展槽,每个内存扩展槽对应一个通道。每个内存扩展槽上可直接插入fb-dimm模组或者是内存扩展板,每个内存扩展板上又有8个fb-dimm内存插槽,只要你愿意,可以将8条fb-dimm模组插在扩展板上,然后再将该内存扩展板插在主板上,依此类推,完成6通道、48条内存的安装。这种方法充分利用了机箱内部空间,巧妙解决了多模组安装的难题,构建高效能系统就显得更具可操作性。
单条fb-dimm与主板连接
内存扩展板连接示意图
值得注意的是,fb-dimm内存模组的金手指仍有240个,与普通ddr2内存相同,区别只是缺口的位置不同而已。这种设计其实也是为兼容现有生产设备之故,fb-dimm的有效针脚只有69个或70个,我们可以从fb-dimm内存模组实物图中看到,只有正面左侧的金手指有连接到缓冲控制芯片的线路,其余位置的金手指并没有连接线路,只是做做样子而已。也许很多人会认为,直接设计为69个或70个金手指会更经济一些,但这样做就必须对现有的生产设备作较大的调整,花费的成本反而更高。
综上所述,严格说来fb-dimm并不是一种全新的内存类型,而只是一种能极大的提升内存性能的连接技术,它并不涉及到内存的核心技术的改变,而是利用了现有的dram芯片,只是在系统架构与互联方式上进行了新的尝试。fb-dimm目前所存在的主要问题是,首先,fb-dimm虽然成本比xdr要低廉得多,但其价格仍然要比普通ddr2内存要高得多;其次,fb-dimm的功耗比较大,这直接导致其发热量也比较大,因此所有的fb-dimm内存模组都必须配备散热片,而且在一个配备大容量fb-dimm的多路服务器系统中,fb-dimm的总功耗也不容小视。fb-dimm的特点决定了该技术目前只会应用在服务器/工作站平台上,而普通的个人电脑则暂时还不会采用。在intel方面,目前支持fb-dimm的intel 5000系列芯片组已经发布,相应的主板也已经上市,而且各大内存生产厂商也都推出了各自的基于ddr2的ddr2 fb-dimm内存模组产品,未来还将推出基于ddr3的ddr3 fb-dimm内存模组产品。而amd方面,由于opteron整合了内存控制器,要支持fb-dimm必须得全面重新设计处理器,故目前暂时还不会支持fb-dimm,但也将在2008年左右使opteron全面支持fb-dimm。
摩尔定律遇瓶颈,时代仍旧有商机
SystemVerilog里的regions以及events的调度
螺旋取土钻是什么,螺旋取土钻的特点有哪些
采用Belago 1.1红外点阵投射器的3D传感解决方案
基于终端的Linux 编辑器
FB-DIMM,全缓冲内存模组
新华三提供全场景的“应用驱动广域网 AD-WAN 解决方案”
有方科技NB-IoT模组N306-CN助力客户降低物联网应用开发成本
人工智能+零售销售,释放消费活力
三星又再一次以标杆的姿态,在 5G 爆发的前夜为行业指明了方向
Nwave最薄的智能停车解决方案
什么是复印机稿台
华为在欧洲展开投资,开拓5G需求
简单的三角波、方波振荡器
利用STM32CubeMx的串口DMA收发数据
智能安防将诞生超级独角兽_智能安防即将全面爆发
三星无锁Galaxy Z Flip再次发售,搭载Android 10操作系统
科研人员发现多个智能家居集线器中存在严重缺陷
为了在代工领域中占据领先地位 传三星5纳米生产线已开始建设
Altium Designer 21软件系统参数的设置