高速网络接口卡DMA机制的研究与实现
发布时间:2020-04-10 02:57
【摘要】: 随着Internet链路速率迅速提高,高速网络接口卡在高性能服务器中得到广泛应用。为提高I/O效率,减轻服务器CPU负担,高速网络接口卡常采用DMA(Direct Access to Memory)机制与主机进行通信。DMA引擎(DMA engine)是实现DMA工作方式的功能部件,它负责在主机与网络接口卡之间交互数据,并产生数据接收中断和发送中断。 本文的主要工作和创新点包括: (1)详细分析了DMA引擎接收和发送数据报文的过程,并阐述了其核心机制:中断机制和描述符机制; (2)建立了DMA引擎发送和接收过程的性能分析模型。提出了DMA引擎接收停顿和驱动程序发送停顿的概念。基于此,量化分析了影响DMA性能的相关参数的关系; (3)实现了10G TOE网络接口卡中的高速DMA引擎。实际测试结果表明,DMA引擎的设计和功能是正确而有效的; (4)针对接收活锁问题,从DMA引擎设计的角度出发,提出了一种避免接收活锁问题的方案; (5)提出了一种基于多队列描述符的DMA引擎。通过这种DMA引擎可以大幅度改善DMA引擎的接收性能。 综上所述,本文针对DMA引擎的设计进行了一系列的研究,研究成果对于高速网络接口卡的设计具有重要的指导意义。
【图文】:
随着网络带宽的迅猛发展,万兆以太网络已经开始部署应用。因此,,我们设计的 TOE 网络接口卡定位为万兆以太网网络接口卡,部分功能指标如表 4.1。表 4.1 TOE 网络接口卡的功能指标名称 指标网络接口 10G 以太网 LAN/WANI/O 总线 PCI Express 总线支持 Linux 内核 Linux 2.4.6 以上支持卸载 TCP 流条数 1024 以上网络接口卡通常通过 I/O 总线与主机系统进行连接。I/O 总线的选择对于网络接口卡性能影响很大,有时甚至成为限制其性能的决定因素。在 10Gb/s 高速 TO网络接口卡设计中,传统 PCI 总线由于其带宽小不被采用,而 PCI Express 带宽最大可以支持 16GB/s,因此我们选择 PCI Express 作为 TOE 网络接口卡与主机的接口。PCI Express 是用来互连诸如计算和通信平台应用中外围设备的第三代高性能I/O 总线[7]。PCI Express 的典型拓扑结构如图 4.2 所示。PCI Express 系统主要组件包括一个根联合体(Root Complex)、若干交换器(Switch)和端点设备(EndPoint)
图 4.6 写周期时序图2,寄存器读的时序参见图 4.7各模块不断监听 cs 信号,当 cs、wrb 读信号有效时被选中的模块读出 addr 所指示的数据到数据总线 RD 同时将 RDYB 信号置为低,表明寄存器读完成。读取总线上的数据后,片选信号和 WRB 信号置为高,检测到片选信号无效后RDYB 信号置为高表明此时总线 D 上的数据无效,寄存器读操作结束。图 4.7 读周期时序图DMA 引擎模块进行读请求的数据类型共有三类,分别是接收描述符、发送描述符以及需发送的数据报文。DMA 引擎模块进行写请求的数据类型共有两类,分别是回写的接收描述符以及接收的数据报文。
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2006
【分类号】:TP334.7
本文编号:2621651
【图文】:
随着网络带宽的迅猛发展,万兆以太网络已经开始部署应用。因此,,我们设计的 TOE 网络接口卡定位为万兆以太网网络接口卡,部分功能指标如表 4.1。表 4.1 TOE 网络接口卡的功能指标名称 指标网络接口 10G 以太网 LAN/WANI/O 总线 PCI Express 总线支持 Linux 内核 Linux 2.4.6 以上支持卸载 TCP 流条数 1024 以上网络接口卡通常通过 I/O 总线与主机系统进行连接。I/O 总线的选择对于网络接口卡性能影响很大,有时甚至成为限制其性能的决定因素。在 10Gb/s 高速 TO网络接口卡设计中,传统 PCI 总线由于其带宽小不被采用,而 PCI Express 带宽最大可以支持 16GB/s,因此我们选择 PCI Express 作为 TOE 网络接口卡与主机的接口。PCI Express 是用来互连诸如计算和通信平台应用中外围设备的第三代高性能I/O 总线[7]。PCI Express 的典型拓扑结构如图 4.2 所示。PCI Express 系统主要组件包括一个根联合体(Root Complex)、若干交换器(Switch)和端点设备(EndPoint)
图 4.6 写周期时序图2,寄存器读的时序参见图 4.7各模块不断监听 cs 信号,当 cs、wrb 读信号有效时被选中的模块读出 addr 所指示的数据到数据总线 RD 同时将 RDYB 信号置为低,表明寄存器读完成。读取总线上的数据后,片选信号和 WRB 信号置为高,检测到片选信号无效后RDYB 信号置为高表明此时总线 D 上的数据无效,寄存器读操作结束。图 4.7 读周期时序图DMA 引擎模块进行读请求的数据类型共有三类,分别是接收描述符、发送描述符以及需发送的数据报文。DMA 引擎模块进行写请求的数据类型共有两类,分别是回写的接收描述符以及接收的数据报文。
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2006
【分类号】:TP334.7
【参考文献】
相关期刊论文 前1条
1 陈维良,赵俊超,魏少军;TCP/IP协议的ASIC设计与实现[J];微电子学;2002年02期
本文编号:2621651
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2621651.html