D0I:10.13374/i.issnl001t03.2007.11.021 第29卷第11期 北京科技大学学报 Vol.29 No.11 2007年11月 Journal of University of Science and Technology Beijing Now.2007 基于DDR内存总线的高速网络接入技术 张晓彤)王景存)王沁)刘兰军) 1)北京科技大学信息工程学院,北京1000832)武汉科技大学信息科学与工程学院,武汉430081 摘要在机群系统中,机群的互连网络性能对整个机群系统的性能有着至关重要的影响·机群系统要求互连网络具有高带 宽、低延迟、高可靠等特性,传统的互连网络接入方法基本上基于PCI接口.本文提出了基于DDR DIMM内存总线的接入思 想,采用可编程逻辑器件FPGA实现网络接口设计,通过直接读写内存方式提高并行接入带宽,并将部分通讯协议下载到网 卡上以提高计算和通讯的速度.实测表明,在不包括上层协议的情况下,接口卡的数据接入带宽可达3120Mbs:给出了基于 FPGA的实现方法,并用Xilinx Virtex"一ⅡPro一2 D FPGA进行了仿真和验证. 关键词网络:高速互连;网接口卡:DDR;DIMM;FPGA 分类号TP393.05 基于PC机或工作站的机群系统得到了越来越 FPGA[门得到验证, 广泛的应用.随着PC机性能和运算速度的提高,如 何提高机群系统的整体性能以及网络接口卡的接入 1 DDR DIMM工作原理 速度,已成为目前高速通信研究中一个重要课题, DDR DIMM,采用184 Pin DIMM总线接口结 目前构成机群的通信互联设备大多基于PCI 构,它采用双倍的数据速率来获得高速操作,在每个 (peripheral component interconnect)总线[).,常用的 时钟的上升沿和下降沿都读写数据,使存储设备的 33MHz/32位的PCI总线峰值传输速率可达 带宽加倍.DDR DIMM总线采用差分时钟工作,增 132MBs,尽管66Mhz/64位PCI总线的性能能 强了系统的稳定性,DDR DIMM接口的另一个突 成倍地提高,但相对于CPU的运算速度还有一定的 出的优点是采用了先进的同步原理:一个和数据一 差距23].Tanabe提出了基于SDRAM总线接口的 起发送的双向数据触发信号(DQS),用来捕获数据, 通信构想,并且在非DDR SDRAM总线接口上加以 写周期DQS是由控制器发出而读周期是存储器发 实现[可 出.读周期时DQS是与数据边沿对齐的,而写周期 DDR (double data rate)SDRAM (synchronous 与数据是中心对齐,接口电平采用SSTL一Ⅱ标准. d少ynamic random access memory)自l998年2月被批 由于DDR DIMM总线主要用于连接DDR 准为JEDEC标准后可],在众多主板和SDRAM商家 SDRAM,因此总线信号和协议与DDR SDRAM的 的支持下已成为计算机内存的主流产品,由DDR 读写控制协议相同, SDRAM构成的DIMM(dual inline memory mod DDR DIMM的主要操作包括初始化、读写和刷 ule)内存总线峰值传输率可达到400MHz/64位 新操作,初始化过程主要包括对所有的Bak进行 (DDR400),普通的DDR200也达到200Mz/ 预充电(Precharge All命令)、设置模式和扩展模式 64位,大大高于PCI的总线传输速度 寄存器、自刷新(Auto Refresh命令)等操作后进入 本文论述了通过DIMM内存总线进行网络接 正常工作状态,此后的主要操作是读写访问和刷 入的一种FPGA(field programmable gate array)的 新,一般DDR SDRAM存储器的存储空间分为多 实现方法,并在微星MSI845MAX主板上,在 个Bank,在每个Bank中,由行地址和列地址来确定 DDR200的读写速度下,利用Xilinx XC2VP20 存储单元,进行读写操作时,首先要用激活(Active) 命令选中某一Bank中的某一行,然后再根据读写 收稿日期:2006-07-31修回日期:2006-11-23 命令送出列地址,将数据读出或写入,每个Bak同 基金项目:中国科学院计算所知识创新工程“HPC-OG模拟系统及 相关技术"研究项目(No.20036040) 时只能有一行处于激活状态,所以如果要访问的行 作者简介:张晓彤(1968一),男,副教授,博士 不是该Bank中已经激活的行,控制器要首先关闭
基于 DDR 内存总线的高速网络接入技术 张晓彤1) 王景存12) 王 沁1) 刘兰军1) 1) 北京科技大学信息工程学院北京100083 2) 武汉科技大学信息科学与工程学院武汉430081 摘 要 在机群系统中机群的互连网络性能对整个机群系统的性能有着至关重要的影响.机群系统要求互连网络具有高带 宽、低延迟、高可靠等特性传统的互连网络接入方法基本上基于 PCI 接口.本文提出了基于 DDR DIMM 内存总线的接入思 想采用可编程逻辑器件 FPGA 实现网络接口设计通过直接读写内存方式提高并行接入带宽并将部分通讯协议下载到网 卡上以提高计算和通讯的速度.实测表明在不包括上层协议的情况下接口卡的数据接入带宽可达3120Mbps给出了基于 FPGA 的实现方法并用 Xilinx Virtex-Ⅱ Pro-20FPGA 进行了仿真和验证. 关键词 网络;高速互连;网络接口卡;DDR;DIMM;FPGA 分类号 TP393∙05 收稿日期:2006-07-31 修回日期:2006-11-23 基金项目:中国科学院计算所知识创新工程“ HPC-OG 模拟系统及 相关技术”研究项目(No.20036040) 作者简介:张晓彤(1968-)男副教授博士 基于 PC 机或工作站的机群系统得到了越来越 广泛的应用.随着 PC 机性能和运算速度的提高如 何提高机群系统的整体性能以及网络接口卡的接入 速度已成为目前高速通信研究中一个重要课题. 目前 构 成 机 群 的 通 信 互 联 设 备 大 多 基 于 PCI (peripheral component interconnect)总线[1].常用的 33MHz/32 位 的 PCI 总 线 峰 值 传 输 速 率 可 达 132MB·s -1尽管66MHz/64位 PCI 总线的性能能 成倍地提高但相对于 CPU 的运算速度还有一定的 差距[2-3].Tanabe 提出了基于 SDRAM 总线接口的 通信构想并且在非 DDR SDRAM 总线接口上加以 实现[4-5]. DDR (double data rate) SDRAM (synchronous dynamic random access memory)自1998年2月被批 准为 JEDEC 标准后[6]在众多主板和 SDRAM 商家 的支持下已成为计算机内存的主流产品由 DDR SDRAM 构成的 DIMM (dual inline memory module)内存总线峰值传输率可达到400MHz/64位 (DDR400)普 通 的 DDR200 也 达 到 200 MHz/ 64位大大高于 PCI 的总线传输速度. 本文论述了通过 DIMM 内存总线进行网络接 入的一种 FPGA (field programmable gate array)的 实 现 方 法并 在 微 星 MSI845MAX 主 板 上在 DDR200 的 读 写 速 度 下利 用 Xilinx XC2VP20 FPGA [7]得到验证. 1 DDR DIMM 工作原理 DDR DIMM采用184Pin DIMM 总线接口结 构它采用双倍的数据速率来获得高速操作在每个 时钟的上升沿和下降沿都读写数据使存储设备的 带宽加倍.DDR DIMM 总线采用差分时钟工作增 强了系统的稳定性.DDR DIMM 接口的另一个突 出的优点是采用了先进的同步原理:一个和数据一 起发送的双向数据触发信号(DQS)用来捕获数据 写周期 DQS 是由控制器发出而读周期是存储器发 出.读周期时 DQS 是与数据边沿对齐的而写周期 与数据是中心对齐接口电平采用 SSTL-Ⅱ标准. 由于 DDR DIMM 总 线 主 要 用 于 连 接 DDR SDRAM因此总线信号和协议与 DDR SDRAM 的 读写控制协议相同. DDR DIMM 的主要操作包括初始化、读写和刷 新操作.初始化过程主要包括对所有的 Bank 进行 预充电(Precharge All 命令)、设置模式和扩展模式 寄存器、自刷新(Auto Refresh 命令)等操作后进入 正常工作状态.此后的主要操作是读写访问和刷 新.一般 DDR SDRAM 存储器的存储空间分为多 个 Bank在每个 Bank 中由行地址和列地址来确定 存储单元.进行读写操作时首先要用激活(Active) 命令选中某一 Bank 中的某一行然后再根据读写 命令送出列地址将数据读出或写入.每个 Bank 同 时只能有一行处于激活状态所以如果要访问的行 不是该 Bank 中已经激活的行控制器要首先关闭 第29卷 第11期 2007年 11月 北 京 科 技 大 学 学 报 Journal of University of Science and Technology Beijing Vol.29No.11 Nov.2007 DOI:10.13374/j.issn1001-053x.2007.11.021
第11期 张晓彤等:基于DDR内存总线的高速网络接入技术 ,1159 该Bank已经激活的行,然后再激活需要访问的行, Mode Register Set],其中有些命令是根据DDR 突发写操作的时序如图1所示 SDRAM的特性来专门设置的,如刷新[Auto Refresh,Self Refresh]、预充电[Precharge]、初始化 [Mode Register Set]等.由于FPGA的接口逻辑中 CLK 命令 藏活 并非真正的DDR SDRAM,因此对这些命令可以忽 ADDR 行 略,只要能完成数据的读写即可,通过对实际DDR j地址 地址 DIMM内存总线的时序分析后发现,主板控制器不 BA 会发出Burst Terminate命令,对于Burst方式的读 DATA 写不会存在中断读写操作的可能,所以,在DDR DIMM接口逻辑中,只考虑了激活命令Active、读命 DQS 令Read和写命令Write. 2.1DCM(digital clock management)模块 图1 DDR SDRAM突发写时序 DCM模块由FPGA内部的Digital Clock Fig.I Burst writing operation of DDR SDRAM Management构成,为整个接口逻辑提供工作时钟. 每个内存槽上有三对差分时钟,选择其中的一个作 2 DDR DIMM接口逻辑设计 为FPGA的时钟源,经时钟管理器DCM倍频后产 以双环网的网络接口卡为例介绍基于DDR 生2倍于CLK的内部工作时钟CLK2X,并且与 DIMM总线接口的网络适配器设计和实现方法.网 DDR DIMM接口的CLK保持固定的相位关系,在 络适配器总线接口采用目前流行的DDR2O0总线接 接口逻辑的其他模块中均使用此时钟来控制命令信 口,网络适配器主要由DDR接口控制逻辑和底层路 息的采样和数据的输入输出.在测试时,MSI845主 由控制逻辑以及物理传输介质驱动组成,主要逻辑 板中DDR DIMM接口的时钟为1O0Mh,FPGA内 由一片高性能现场可编程逻辑阵列(FPGA Xilinx 部的工作时钟为200MHz XC2VP20FPGA)来实现 2.2命令解析模块 图2为DDR DIMM接口的内部逻辑框图. 主要是接受来自DDR DIMM接口的各种命令 CLK、CAS、RAS、DATA、DQS、ADDR等为DDR 并对命令进行解析,对于读写和激活命令以外的命 DIMM总线接口信号,用户逻辑部分在本例中为数 令予以过滤,实现的主要方法是在每一个CLKX的 据接收/发送控制及路由选择逻辑,用户也可以根据 上升沿或下降沿(根据FPGA的内部延时情况而定)对 不同情况进行更改,网络接口卡硬件对驱动程序提 CAS RAS、CS、WE等信号线进行采样,然后根据他们 供JESD79D标准规定的DDR接口信号及时序操作. 的组合识别出主机发出的读、写和激活命令,并驱动地 址计算及读写控制模块完成相应的操作 CLK DCM模块 CLK2X CLK2X 2.3地址计算和读写控制模块 OUT FIFO CAS 地址计算和读写控制模块主要完成以下任务: 命 RD BAO BA 解析 在激活命令到来时,保存ADDR上的行地址,由此 AC IN FIFO 计算及读写控 用户逻 产生FIFO及ST-MEM的使能信号和选取内部数 据总线上的数据通路;在读或写命令到来时,保存 ADDR ST MEM ADDR上的列地址,然后进行地址译码;根据读写命 DOS DATA 令和地址信息发出相应的读写控制信号,完成数据 的读写操作, 2.4FFO及ST-MEM模块 图2 DDR DIMM接口逻辑 为了方便用户逻辑的设计,DDR DIMM的控制 Fig.2 DDR DI MM interface logic 部分采用输入FIFO缓冲区、输出FIFO缓冲区及双 根据JESD79D标准规定,DDR DIMM采用 端口RAM(ST-MEM)三种方式与用户逻辑相连, Burst操作方式,规定了一个操作命令集合[Dese 如图2所示,在HOST计算机的内存映像中,输入 lect,No Operation,Active,Read,Write,Burst 和输出FIF0位宽均为64位,各占用一个连续8字 Terminate,Precharge,Auto Refresh,Self Refresh. 节的物理地址,ST-MEM为1KX64位,占用8KB
该 Bank 已经激活的行然后再激活需要访问的行. 突发写操作的时序如图1所示. 图1 DDR SDRAM 突发写时序 Fig.1 Burst writing operation of DDR SDRAM 2 DDR DIMM 接口逻辑设计 以双环网的网络接口卡为例介绍基于 DDR DIMM 总线接口的网络适配器设计和实现方法.网 络适配器总线接口采用目前流行的 DDR200总线接 口网络适配器主要由 DDR 接口控制逻辑和底层路 由控制逻辑以及物理传输介质驱动组成主要逻辑 由一片高性能现场可编程逻辑阵列(FPGA Xilinx XC2VP20FPGA)来实现. 图2 为 DDR DIMM 接口的内部逻辑框图. CLK、CAS、RAS、DATA、DQS、ADDR 等 为 DDR DIMM 总线接口信号用户逻辑部分在本例中为数 据接收/发送控制及路由选择逻辑用户也可以根据 不同情况进行更改.网络接口卡硬件对驱动程序提 供 JESD79D 标准规定的 DDR 接口信号及时序操作. 图2 DDR DIMM 接口逻辑 Fig.2 DDR DIMM interface logic 根据 JESD79D 标准规定DDR DIMM 采用 Burst 操作方式规定了一个操作命令集合 [DeselectNo OperationActiveReadWriteBurst TerminatePrechargeAuto RefreshSelf Refresh Mode Register Set ].其中有些命令是根据 DDR SDRAM 的 特 性 来 专 门 设 置 的如 刷 新 [ Auto RefreshSelf Refresh ]、预充电[Precharge ]、初始化 [Mode Register Set ]等.由于 FPGA 的接口逻辑中 并非真正的 DDR SDRAM因此对这些命令可以忽 略只要能完成数据的读写即可.通过对实际 DDR DIMM 内存总线的时序分析后发现主板控制器不 会发出 Burst Terminate 命令对于 Burst 方式的读 写不会存在中断读写操作的可能.所以在 DDR DIMM 接口逻辑中只考虑了激活命令 Active、读命 令 Read 和写命令 Write. 2∙1 DCM (digital clock management)模块 DCM 模 块 由 FPGA 内 部 的 Digital Clock Management构成为整个接口逻辑提供工作时钟. 每个内存槽上有三对差分时钟选择其中的一个作 为FPGA 的时钟源经时钟管理器 DCM 倍频后产 生2倍于 CLK 的内部工作时钟 CLK2X并且与 DDR DIMM 接口的 CLK 保持固定的相位关系在 接口逻辑的其他模块中均使用此时钟来控制命令信 息的采样和数据的输入输出.在测试时MSI845主 板中 DDR DIMM 接口的时钟为100MHzFPGA 内 部的工作时钟为200MHz. 2∙2 命令解析模块 主要是接受来自 DDR DIMM 接口的各种命令 并对命令进行解析对于读写和激活命令以外的命 令予以过滤.实现的主要方法是在每一个 CLK2X 的 上升沿或下降沿(根据 FPGA 的内部延时情况而定)对 CAS、RAS、CS、WE 等信号线进行采样然后根据他们 的组合识别出主机发出的读、写和激活命令并驱动地 址计算及读写控制模块完成相应的操作. 2∙3 地址计算和读写控制模块 地址计算和读写控制模块主要完成以下任务: 在激活命令到来时保存 ADDR 上的行地址由此 产生 FIFO 及 ST -MEM 的使能信号和选取内部数 据总线上的数据通路;在读或写命令到来时保存 ADDR 上的列地址然后进行地址译码;根据读写命 令和地址信息发出相应的读写控制信号完成数据 的读写操作. 2∙4 FIFO 及 ST-MEM模块 为了方便用户逻辑的设计DDR DIMM 的控制 部分采用输入FIFO 缓冲区、输出FIFO 缓冲区及双 端口 RAM(ST - MEM)三种方式与用户逻辑相连 如图2所示.在 HOST 计算机的内存映像中输入 和输出 FIFO 位宽均为64位各占用一个连续8字 节的物理地址ST -MEM 为1K×64位占用8KB 第11期 张晓彤等: 基于 DDR 内存总线的高速网络接入技术 ·1159·
,1160 北京科技大学学报 第29卷 内存单元,FIFO主要完成两个功能:(1)对发送和 且选通ST-MEM的数据线和内部数据总线连通, 接收的数据进行缓冲;(2)对输入和输出数据进行隔 然后,控制器会发出读或写命令,命令解析模块对此 离,选用双端口FIF0,每个端口有自己的读写使能 命令进行解析以产生读写信号给读写控制模块,同 控制信号、时钟以及数据线,从而输入输出可以彼此 时地址计算模块对ADDR总线上的列地址进行锁 独立地进行各自的读写操作.ST-MEM部分采用 存.对于ST-MEM,此列地址将传给其地址输入以 双端口结构,可以随机读写任意单元,在本设计中用 选通要操作的单元·读写控制模块根据命令解析模 于存储HOST计算机与用户逻辑的状态及控制信 块产生的读写信号产生读写使能信号给要操作的 息,以及FIF0的空满状态,不同的控制信息对应不 FIFO或ST-MEM.本例中,命令解析模块根据控 同的存储单元.无论是通过DDR接口还是用户逻 制器发出的写命令产生写信号,读写控制模块根据 辑,在读写FIF0前都要先检查它的空满状态,以确 此写信号产生写使能给ST-MEM,最后,FIFO或 定是否可以进行相应的操作,而在读写操作后也要 ST-MEM在使能、读写、列地址信号及数据信号的 对相应的状态信息进行修改 共同作用下进行相应的读写操作,本例中是向$T一 2.5模块工作流程 MEM中写入数据,由于读写操作是以Burst方式 以对ST-MEM的一次写操作为例说明各模块 进行的,所以地址计算模块还要完成地址计算的任 的工作流程, 务.读操作以及对FIFO的操作与此类似 由于命令解析模块、地址计算和读写控制模块 图3为写ST-MEM操作过程的仿真波形 都工作在倍频时钟下,所以只有当DCM模块的 CLK和CLK2X的相位关系稳定即DCM锁定后, 其他模块才能处于工作状态,此后,命令解析模块 将监测控制器发来的控制信号,当要进行一次读写 操作时,控制器首先发出Active命令,命令模块对 Active Write Write data to ST MEM 此命令进行解析;同时,地址计算和读写控制模块锁 图3ST-MEM写操作仿真波形 存ADDR上的行地址,此行地址将用于产生对 Fig-3 Simulation of ST-MEM writing operation FIFO及ST-MEM进行读写时的使能信号和内部 2.6用户逻辑设计 逻辑中数据总线上的数据选通,在本例中,Active 本系统中的用户逻辑设计主要是实现双环网的 时ADDR线上给出的地址是ST-MEM对应的物理 网络接口卡功能,数据接收/发送控制及路由选择逻 地址,则地址计算模块将打开ST-MEM的使能信 辑设计是用户逻辑设计的核心部分,其功能逻辑框 号,关闭IN-FIFO和OUT-FIFO的使能信号,并 图如图4所示. ROCKETIO CTRL ROUTING LOGIC DATA BUF DDR RXI RX ADDR ACC RETX FIFO LOCK CTRL SWITCH DATA 32/64 RX LOCAL MAN RX FIFO AGER FIFO 4/32 CTRL S TATIC F RX ADDR ACC RETX LAG FIFO LOCK CTRL SWITCH DATA 2/64 RX LOCAL MAN TX FIFO AGER FIFO 54/32 图4数据接收/发送控制及路由选择逻辑设计功能框图 Fig.4 Data transfer/receive control and route selection design
内存单元.FIFO 主要完成两个功能:(1)对发送和 接收的数据进行缓冲;(2)对输入和输出数据进行隔 离.选用双端口 FIFO每个端口有自己的读写使能 控制信号、时钟以及数据线从而输入输出可以彼此 独立地进行各自的读写操作.ST - MEM 部分采用 双端口结构可以随机读写任意单元在本设计中用 于存储 HOST 计算机与用户逻辑的状态及控制信 息以及 FIFO 的空满状态不同的控制信息对应不 同的存储单元.无论是通过 DDR 接口还是用户逻 辑在读写 FIFO 前都要先检查它的空满状态以确 定是否可以进行相应的操作而在读写操作后也要 对相应的状态信息进行修改. 图4 数据接收/发送控制及路由选择逻辑设计功能框图 Fig.4 Data transfer/receive control and route selection design 2∙5 模块工作流程 以对 ST -MEM 的一次写操作为例说明各模块 的工作流程. 由于命令解析模块、地址计算和读写控制模块 都工作在倍频时钟下所以只有当 DCM 模块的 CLK 和 CLK2X 的相位关系稳定即 DCM 锁定后 其他模块才能处于工作状态.此后命令解析模块 将监测控制器发来的控制信号.当要进行一次读写 操作时控制器首先发出 Active 命令命令模块对 此命令进行解析;同时地址计算和读写控制模块锁 存 ADDR 上的行地址.此行地址将用于产生对 FIFO及 ST - MEM 进行读写时的使能信号和内部 逻辑中数据总线上的数据选通.在本例中Active 时 ADDR 线上给出的地址是 ST -MEM 对应的物理 地址则地址计算模块将打开 ST - MEM 的使能信 号关闭 IN-FIFO 和 OUT -FIFO 的使能信号并 且选通 ST - MEM 的数据线和内部数据总线连通. 然后控制器会发出读或写命令命令解析模块对此 命令进行解析以产生读写信号给读写控制模块同 时地址计算模块对 ADDR 总线上的列地址进行锁 存.对于 ST -MEM此列地址将传给其地址输入以 选通要操作的单元.读写控制模块根据命令解析模 块产生的读写信号产生读写使能信号给要操作的 FIFO 或 ST -MEM.本例中命令解析模块根据控 制器发出的写命令产生写信号读写控制模块根据 此写信号产生写使能给 ST - MEM.最后FIFO 或 ST -MEM 在使能、读写、列地址信号及数据信号的 共同作用下进行相应的读写操作本例中是向 ST - MEM 中写入数据.由于读写操作是以 Burst 方式 进行的所以地址计算模块还要完成地址计算的任 务.读操作以及对 FIFO 的操作与此类似. 图3为写 ST -MEM 操作过程的仿真波形. 图3 ST-MEM 写操作仿真波形 Fig.3 Simulation of ST-MEM writing operation 2∙6 用户逻辑设计 本系统中的用户逻辑设计主要是实现双环网的 网络接口卡功能数据接收/发送控制及路由选择逻 辑设计是用户逻辑设计的核心部分其功能逻辑框 图如图4所示. ·1160· 北 京 科 技 大 学 学 报 第29卷
第11期 张晓彤等:基于DDR内存总线的高速网络接入技术 ,1161, 由图4可以看出,数据接收/发送控制及路由选 64),然后经过数据接收仲裁控制器DATA-RX- 择逻辑部分的功能主要体现在以下几个方面, MANAGER存储到本地数据接收缓冲区中,输出状 首先是单卡支持全双工的数据通信,在本设计 态信息给状态寄存器,等待主机的进一步处理 中,针对双环网结构的应用,网络适配器中设计了两 此外,为了尽量减小数据包传输的延迟,在本设 套收发电路RX1、TX1和RX2、TX2,分别对应双环 计中,对于各个数据缓冲区FF0的存取机制没有 网的内环和外环 采用效率低的存储转发机制,而采用了虫洞交换机 其次是设计了接收、发送仲裁控制器DATA- 制,在数据包未完全到达之前,根据数据包头的信 RX-MANAGER和DATA-TX-MANAGER,分别 息,对数据包的处理做出判断,并产生相应的控制信 用于仲裁接收或发送数据的通道,在令牌环网结构 号,提高了数据包的传输效率 中,数据包的发送包括发送本节点计算机的数据和 转发其他节点计算机的数据,根据令牌环网的协议, 3性能测试 某一时刻令牌环网上(单环)只有一个节点计算机取 系统测试平台:PC机主板的第一个DIMM插 得令牌可以发送数据,数据包发送不存在数据冲突 槽上插一个普通的DDR内存条,用作系统内存,第 问题,因此本设计的数据发送控制逻辑比较简单,只 二个DIMM插槽上插高速网络接口卡;对BIOS内 是根据控制信号选通相应的数据通路;但数据包的 存自检部分汇编源码加以修改,跳过对第二内存条 接收情况则不一样,数据包的接收是被动的,在有双 的自检;系统启动时,在BIOS中设置内存访问频率 令牌的双环网结构中,有可能发生两个节点计算机 为100M五. 向同一节点计算机发送数据产生冲突的情况,这种 操作系统采用Redhat Linux9.O,内核版本 情况有两种解决途径:一种途径是数据接收通道的 2.4.208.在Linux操作系统启动界面设置内核参 资源都是各自独立的,具有各自的数据接收缓冲区, 数,使得操作系统可管理的内存只是第一个DIMM 数据接收完成后产生状态信号给节点计算机;另一 内存插槽上的普通内存,这样接口卡的存储空间就 种途径是采用共享的数据接收缓冲区,在接收通道 可以由用户自由使用, 上加入仲裁逻辑,考虑到数据发生冲突的情况比较 系统采用的并行光发射模块和光接收模块由华 少,从节省资源的角度考虑,本设计采用第二种途径 中科技大学宽带光通信与光互连研究室提供,型号 来解决数据冲突的情况,设计了接收仲裁控制器 为HBT12一M251(发射)与HBR12M25一1(接收). DATA-RX-MANAGER,在其中集成了解决数据 发射模块由850nm的1×12 VCSEL阵列、VCSEL 包冲突的算法:先到达的数据包得到优先接收,后到 驱动与控制电路芯片及12芯MT接口的精密光学 达的数据包等待,若同时到达则外环的数据包优先, 耦合组件构成.类似地,接收模块由1×12的PIN 第三项功能是硬件实现数据包路由协议,节点 光电二极管阵列、12通道的接收放大及控制电路芯 计算机接收到数据包后,数据首先存入接收缓冲区 片及带12芯MT光纤的精密光学耦合组件(OSA) (RX FIFO),地址锁存逻辑(ADDR-LOCK)根据数 构城.光发射模块和光接收模块采用12芯的 据包的接收信号自动提取数据包的目的地址和源地 MTP/MPO多模光纤跳线进行连接,光纤长度为 址给数据接受/转发控制器ACC-RETX-CTRL,数 10m,因为信号速率高,其输入输出均采用差分信 据接受/转发控制器ACC-RETX-CTRL内部集成 号来传输,以保证传输过程中的信号质量和电磁兼 了上述的数据包路由判断算法,根据数据包的目的 容性要求 地址、源地址及本节点计算机的地址对数据包的处 选用如表1所示的不同长度的数据包,在不考 理做出判断,并输出相应的控制信号,实现数据包路 虑通信协议软件开销的情况下,传送带宽与数据包 由的硬件自动识别:若是转发数据包,则数据接受/ 大小的对应关系见表1所示. 转发控制器ACC-RETX-CTRL输出转发使能控 制信号给接收数据路由选择逻辑单元(SWITCH)和 4结语 数据输出选通单元(MUX),数据包直接从数据发送 本文将DDR DIMM内存总线接口应用于高速 端口送出;若是本节点计算机接收数据包,则数据接 互连接口卡的设计中,为解决机群互连链路瓶颈问 受/转发控制器ACC-RETX-CTRL输出接收使能 题做了有益的尝试,结果表明,它比基于PCI总线 控制信号给接收数据路由选择逻辑单元 的互联网络适配器在带宽上有很大提升,随着机群 (SWITCH),切换数据到数据位宽变换单元(32/ 中计算节点性能的进一步提高和需求的不断增加
由图4可以看出数据接收/发送控制及路由选 择逻辑部分的功能主要体现在以下几个方面. 首先是单卡支持全双工的数据通信.在本设计 中针对双环网结构的应用网络适配器中设计了两 套收发电路 RX1、TX1和 RX2、TX2分别对应双环 网的内环和外环. 其次是设计了接收、发送仲裁控制器 DATA- RX-MANAGER 和 DATA-TX- MANAGER分别 用于仲裁接收或发送数据的通道.在令牌环网结构 中数据包的发送包括发送本节点计算机的数据和 转发其他节点计算机的数据根据令牌环网的协议 某一时刻令牌环网上(单环)只有一个节点计算机取 得令牌可以发送数据数据包发送不存在数据冲突 问题因此本设计的数据发送控制逻辑比较简单只 是根据控制信号选通相应的数据通路;但数据包的 接收情况则不一样数据包的接收是被动的在有双 令牌的双环网结构中有可能发生两个节点计算机 向同一节点计算机发送数据产生冲突的情况.这种 情况有两种解决途径:一种途径是数据接收通道的 资源都是各自独立的具有各自的数据接收缓冲区 数据接收完成后产生状态信号给节点计算机;另一 种途径是采用共享的数据接收缓冲区在接收通道 上加入仲裁逻辑.考虑到数据发生冲突的情况比较 少从节省资源的角度考虑本设计采用第二种途径 来解决数据冲突的情况设计了接收仲裁控制器 DATA-RX- MANAGER在其中集成了解决数据 包冲突的算法:先到达的数据包得到优先接收后到 达的数据包等待若同时到达则外环的数据包优先. 第三项功能是硬件实现数据包路由协议.节点 计算机接收到数据包后数据首先存入接收缓冲区 (RX FIFO)地址锁存逻辑(ADDR-LOCK)根据数 据包的接收信号自动提取数据包的目的地址和源地 址给数据接受/转发控制器 ACC-RETX-CTRL数 据接受/转发控制器 ACC-RETX-CTRL 内部集成 了上述的数据包路由判断算法根据数据包的目的 地址、源地址及本节点计算机的地址对数据包的处 理做出判断并输出相应的控制信号实现数据包路 由的硬件自动识别:若是转发数据包则数据接受/ 转发控制器 ACC- RETX-CTRL 输出转发使能控 制信号给接收数据路由选择逻辑单元(SWITCH)和 数据输出选通单元(MUX)数据包直接从数据发送 端口送出;若是本节点计算机接收数据包则数据接 受/转发控制器 ACC-RETX-CTRL 输出接收使能 控 制 信 号 给 接 收 数 据 路 由 选 择 逻 辑 单 元 (SWITCH)切换数据到数据位宽变换单元(32/ 64)然后经过数据接收仲裁控制器 DATA- RX- MANAGER 存储到本地数据接收缓冲区中输出状 态信息给状态寄存器等待主机的进一步处理. 此外为了尽量减小数据包传输的延迟在本设 计中对于各个数据缓冲区 FIFO 的存取机制没有 采用效率低的存储转发机制而采用了虫洞交换机 制在数据包未完全到达之前根据数据包头的信 息对数据包的处理做出判断并产生相应的控制信 号提高了数据包的传输效率. 3 性能测试 系统测试平台:PC 机主板的第一个 DIMM 插 槽上插一个普通的 DDR 内存条用作系统内存第 二个 DIMM 插槽上插高速网络接口卡;对 BIOS 内 存自检部分汇编源码加以修改跳过对第二内存条 的自检;系统启动时在 BIOS 中设置内存访问频率 为100MHz. 操作 系 统 采 用 Redhat Linux9∙0内 核 版 本 2∙4∙20-8.在 Linux 操作系统启动界面设置内核参 数使得操作系统可管理的内存只是第一个 DIMM 内存插槽上的普通内存这样接口卡的存储空间就 可以由用户自由使用. 系统采用的并行光发射模块和光接收模块由华 中科技大学宽带光通信与光互连研究室提供型号 为 HBT12-M25-1(发射)与 HBR12-M25-1(接收). 发射模块由850nm 的1×12VCSEL 阵列、VCSEL 驱动与控制电路芯片及12芯 MT 接口的精密光学 耦合组件构成.类似地接收模块由1×12的 PIN 光电二极管阵列、12通道的接收放大及控制电路芯 片及带12芯 MT 光纤的精密光学耦合组件(OSA) 构成.光 发 射 模 块 和 光 接 收 模 块 采 用 12 芯 的 MTP/MPO 多模光纤跳线进行连接.光纤长度为 10m.因为信号速率高其输入输出均采用差分信 号来传输以保证传输过程中的信号质量和电磁兼 容性要求. 选用如表1所示的不同长度的数据包.在不考 虑通信协议软件开销的情况下传送带宽与数据包 大小的对应关系见表1所示. 4 结语 本文将 DDR DIMM 内存总线接口应用于高速 互连接口卡的设计中为解决机群互连链路瓶颈问 题做了有益的尝试.结果表明它比基于 PCI 总线 的互联网络适配器在带宽上有很大提升.随着机群 中计算节点性能的进一步提高和需求的不断增加 第11期 张晓彤等: 基于 DDR 内存总线的高速网络接入技术 ·1161·
,1162 北京科技大学学报 第29卷 表1数据包大小与传输带宽关系 参考文献 Table 1 Relationship between data packet length and bandwidth [1】张佩珩,安学军,高文学.面向机群互连网络的智能网卡设计. 数据包长度/Byte 发包个数 总发送时间/s传输带宽/Mbps 计算机工程与应用,2003,28:148 16000000 152 6.737 [2]井文才,田劲东,张珣,等。用于机群系统的高速光互连网络接 16 口卡设计.光电子,激光,2000,11(1):7 16000000 152 13.474 [3]李海峰,周革,井文才,等。具有路由功能的光纤链路接口卡在 32 16000000 153 26.771 机群系统中的应用.天津大学学报,2002,35(6):749 64 16000000 154 53.195 [4]Tanabe N.Hamada Y,Nakajo H.et al.A low latency high 128 16000000 155 105.703 bandwidth network interface prototype for PC cluster//Proceed- 256 ings of the International Workshop on Innovative Architecture for 16000000 157 208.713 Future Generation High-Performance Processors and Systems.Big 512 16000000 163 402.061 1 sland,2002,87 1024 8000000 87 753.287 [5]Tanabe N.Yamamoto J.Nishi H.et al.On the fly sending:a 2048 4000000 49 1337.469 low latency high bandwidth message transfer mechanismPro ceedings of the International Symposium on Parallel Architee- 4096 2000000 30 2184.533 tures-Dallas,2000,186 8192 1000000 21 3120.762 [6]JEDEC Standard.PC1600 and PC2100 DDR SDRAM Un- buffered DIMM Design Specification.Revision 1.1.[2000-12- 对机群互连网络的接入带宽的要求也将越来越高, 15 ]http:/download.micron.com/pdf/toolbox/ DDR DIMM内存总线接口将成为一种理想的解决 184ddrunbrev 1.1.pdf 方法,在机群高速互连网络中得到越来越广泛的 [7]Xilinx Ine.Xilinx Virtex:Pro Platform FPGA Complete Data Sheet.DS031 V3.4.[2005-03-01].http://www.xilinx.com/ 应用, partinfo/ds031.pdf High-speed net work access technology based on DDR memory bus ZHA NG Xiaotong,WANG Jingeun2),WANG Qin,LIU Lanjun) 1)Information Engineering School.University of Science and Technology Beijing.Beijing 100083.China 2)Information Engineering School.Wuhan University of Science and Technology.Wuhan 430081.China ABSTRACI In cluster,the performance of an interconnection network exhibits significant effect on that of the whole cluster system.The interconnection network is required to possess the characteristics of high bandwidth, low delay and high reliability.Traditional interconnection network access technologies are almost based on the peripheral component interface(PCI).This paper proposed a design ideology of access based on DDR DIMM in- terface and presented a design of the network interface on FPGA.The access bandwidth could be increased by reading and writing memory directly.Parts of the communication protocols were dow nloaded into the network interface card(NIC)to improve the parallel of calculation and communication.Measurements indicate that ex- cluding the upper layer protocol,the access bandwidth of the NIC can reach to 3120 Mbps.An implementation approach of the NIC for FPGA was put forward and was simulated on an XC2VP20 FPGA chip of Xilinx Corpo- ration. KEY WORDS network;high-speed interconnection:network interface card:DDR:DIMM:FPGA
表1 数据包大小与传输带宽关系 Table1 Relationship between data packet length and bandwidth 数据包长度/Byte 发包个数 总发送时间/s 传输带宽/Mbps 8 16000000 152 6∙737 16 16000000 152 13∙474 32 16000000 153 26∙771 64 16000000 154 53∙195 128 16000000 155 105∙703 256 16000000 157 208∙713 512 16000000 163 402∙061 1024 8000000 87 753∙287 2048 4000000 49 1337∙469 4096 2000000 30 2184∙533 8192 1000000 21 3120∙762 对机群互连网络的接入带宽的要求也将越来越高 DDR DIMM 内存总线接口将成为一种理想的解决 方法在机群高速互连网络中得到越来越广泛的 应用. 参 考 文 献 [1] 张佩珩安学军高文学.面向机群互连网络的智能网卡设计. 计算机工程与应用200328:148 [2] 井文才田劲东张 等.用于机群系统的高速光互连网络接 口卡设计.光电子·激光200011(1):7 [3] 李海峰周革井文才等.具有路由功能的光纤链路接口卡在 机群系统中的应用.天津大学学报200235(6):749 [4] Tanabe NHamada YNakajo Het al.A low latency high bandwidth network interface prototype for PC cluster∥Proceedings of the International Workshop on Innovative Architecture for Future Generation High-Performance Processors and Systems.Big Island2002:87 [5] Tanabe NYamamoto JNishi Het al.On-the-fly sending:a low latency high bandwidth message transfer mechanism ∥Proceedings of the International Symposium on Parallel Architectures.Dallas2000:186 [6] JEDEC Standard.PC1600 and PC2100 DDR SDRAM Unbuffered DIMM Design Specification.Revision 1∙1.[2000-12- 15 ]. http: ∥ download. micron. com/pdf/toolbox/ 184ddrunbrev1.1.pdf [7] Xilinx Inc.Xilinx Virtex:Ⅱ Pro Platform FPGA Complete Data Sheet.DS031V3∙4.[2005-03-01].http:∥www.xilinx.com/ partinfo/ds031.pdf High-speed network access technology based on DDR memory bus ZHA NG Xiaotong 1)WA NG Jingcun 12)WA NG Qin 1)LIU L anjun 1) 1) Information Engineering SchoolUniversity of Science and Technology BeijingBeijing100083China 2) Information Engineering SchoolWuhan University of Science and TechnologyWuhan430081China ABSTRACT In clusterthe performance of an interconnection network exhibits significant effect on that of the whole cluster system.The interconnection network is required to possess the characteristics of high bandwidth low delay and high reliability.Traditional interconnection network access technologies are almost based on the peripheral component interface (PCI).This paper proposed a design ideology of access based on DDR DIMM interface and presented a design of the network interface on FPGA.The access bandwidth could be increased by reading and writing memory directly.Parts of the communication protocols were downloaded into the network interface card (NIC) to improve the parallel of calculation and communication.Measurements indicate that excluding the upper layer protocolthe access bandwidth of the NIC can reach to3120Mbps.An implementation approach of the NIC for FPGA was put forward and was simulated on an XC2VP20FPGA chip of Xilinx Corporation. KEY WORDS network;high-speed interconnection;network interface card;DDR;DIMM;FPGA ·1162· 北 京 科 技 大 学 学 报 第29卷