您的当前位置:首页正文

高速网卡与主机通信技术研究

2021-09-25 来源:步旅网
吕民强,等:高速网卡与主机通信技术研究 物流工程与技术 .-_ 同 速网卡与主机通信技术研究 .--_一 ji i吕民强 ,吕丹丹 (1.中航工业集团公司 西安航空计算技术研究所,陕西 西安 710017; 2.中航工业集团公司 洛阳电光设备研究所,河南 洛阳471000) 【摘要]本文分析了高速网卡与主机的通信方式——基于描述符的DMA通信机制,研究了提高网卡与主机通信 性能的技术——提高总线带宽和减少中断开销。 [关键词]中断;描述符;DMA [DOI]10.13939/j.cnki zgsc.2015.20.059 随着网络技术,尤其是光纤技术的快速发展,互联网 通信带宽不断提升。网络应用的性能需求表现为高吞吐 率、低延迟、低主机开销和低存储开销等特点…。这些 特点对网络接l:l卡与主机的通信性能提出了更高的要求。 1 高速网卡整体结构 高速网卡的硬件结构如图1所示,包括:IO接口部 分、DMA引擎部分、接收和发送FIFO、以太网MAC协 议处理部分和物理层(PHY)模拟信号处理部分,此外, 还有一些辅助模块,如EEPROM接口模块,扩展 BootROM接口模块,LED控制和整个芯片的命令状态寄 存器(CSR)部分。10接口主要负责和主机进行通信; DMA引擎模块主要负责数据包的具体控制,包括配合10 接口的控制动作、DMA访问起始地址的控制;MAC模块 则负责处理以太网csMA/CD(Carrier Sense Multiple Ae— cess with Collision Detection)协议;物理层(PHY)负责 处理网卡与网卡之间的信号连接以及对信号进行恢复,配 置寄存器CSR负责对网卡的特性进行设置。 外 部 网 络 高速网卡硬件结构 网卡有两路数据通道:一是数据发送过程:从主机网 络协议栈传来的数据包,通过IO接口,由TxDMA控制到 达TxFIFO先暂存起来,当TxFIFO暂存的数据包到达一定 阈值时,TxMAC将TxFIFO中的数据包按CSMA/CD协议 发送到具有自适应选择功能的PHY层,再由双绞线或者 光纤发送到外部网络上。一是数据接收过程:网络上的数 据信号被物理层捕获,转换为并行数据后传送到接收 MAC,接收MAC判断数据包是否接被接收,将接收的数 据包送进接收FIFO先暂存起来,当接收FIFO数据达到一 定阈值后,RxDMA会通过IO模块,将数据传送到主机内 存,完成数据包的接收 。 2 网卡与主机通信方式 传统网卡与主机交换数据的方式有中断方式和DMA 方式 。 中断方式又称可编程I/O(Programmed t/o),是指当 网卡硬件的报文缓冲区准备好数据时,便向主机CPU发 送中断,CPU响应中断,在中断处理程序中先将数据从 网卡的报文缓冲区读到CPU的寄存器,然后由寄存器再 写到主存。在低速网络条件下,可编程I/O方式对主机系 统性能影响不大。但是,在高速网络条件下,可编程I/O 机制由于传输数据需要CPU的参与而大大增加CPU的工 作负载,影响主机系统性能 J。 DMA(Direct Memory Access)方式又称直接内存访问 方式,DMA技术是一种代替微处理器完成存储器与外部 设备或存储器之间大量数据传送的方法。利用DMA技术 可不用CPU介入就能实现网卡与内存之间数据的直接传 送,大大降低主机CPU的工作负载。运行在高速网络上 的服务器要求其CPU资源更多用于应用程序的运行,所 以,现在几乎所有的高速网卡设计都采用DMA方式作为 与主机交换数据的主要手段 J。 3基于描述符的DMA通信技术 高速网卡采用基于描述符的DMA方式与主机进行通 信。高速网络接口卡通过DMA引擎进行基本的数据传输。 DMA引擎是实现DMA机制的主要部件,其主要工作是描 述符的管理、接收和发送数据的传输以及中断的产生。 描述符机制和中断机制是DMA引擎的核心机制。描 2015.5艇 物流工程与技术 述符机制主要用于接收和发送描述符的组织和管理,而中 断机制主要涉及接收中断和发送中断的产生。 3.1描述符机制 在DMA机制中,网络接口卡在进行数据报文的读写 前必须知道其读写的主机内存目的地址。DMA引擎中接 收和发送描述符的主要任务之一是为网络接口卡提供主机 内存的地址信息。接收和发送描述符的数据结构中包含读 写的主机内存地址以及读写数据的长度。DMA引擎采用 了环形的发送和接收描述符队列,发送和接收描述符指向 的缓冲区大小通常是固定的。 DMA引擎包含两个描述符队列即接收描述符队列和 发送描述符队列。网络接口卡和驱动程序进行正确数据传 送的基本必要条件是接收和发送描述符的正确传送。 可用接收描述符到达DMA引擎可通过两种方法。一 种方法是基于驱动程序的,由驱动程序告知DMA引擎此 次可用接收描述符个数,然后DMA引擎通过DMA机制 获得新的可用接收描述符;另一种是基于DMA引擎的, 由DMA引擎主动请求接收描述符。 3.2中断机制 在高速网络条件下,网络处理开销大小直接影响系统 性能。网络处理开销大小取决于网络中断次数、网络数据 传输方式以及用户层和操作系统内核间的数据拷贝方式。 DMA引擎中断机制决定网络中断次数。为减少报文接收 (发送)中断的次数,DMA引擎接收(发送)了一定数 量的报文后才置接收(发送)中断。这个固定的报文数 量被称为接收(发送)中断阈值。 为避免因网络流量过低导致较长的网络延迟,DMA 引擎还提供超时机制,当定时器超时,DMA引擎立即产 生中断。中断阈值与超时相结合的中断机制能够极大地减 少网络接口卡产生的中断次数,同时将报文延时控制在较 小的范围内。 3.3数据收发过程 基于DMA机制的网络接口卡的数据接收和发送过程 并不是对称的,因此我们将数据的发送和接收过程分开介 绍并讨论。数据报文的接收过程是一个软硬件交互过程, 具体过程如下: (1)驱动程序初始化所有可用的接收描述符。然后, 驱动程序通告网络接口卡接收描述符在内存的起始地址以 及可用接收描述符的个数; (2)DMA引擎根据接收描述符的起始地址信息和其 他相关信息通过DMA方式将所有可用的接收描述符下载 到DMA引擎; (3)当有数据报文到达网络接口卡时,DMA引擎就 根据接收描述符指示的地址发动一次DMA操作,将到达 的数据报文写入主机内存; (4)DMA操作完成后,DMA引擎立即发动另一次 DMA操作,回写刚才已使用的接收描述符的若干域(报 文长度域,回写标志域); (5)当接收报文的数量达到接收中断阈值时,DMA 引擎通告主机接收中断,主机处理接收数据并进行接收描 中国市场2015年第20期(总第835期) 述符的回收; (6)主机在完成接收描述符的回收后,将此次回收 接收描述符的个数通告给DMA引擎,DMA引擎根据相关 信息读取可用接收描述符。 数据报文的发送过程也是一个软硬件交互过程,具体 过程如下: (1)驱动程序初始化所有可用的发送描述符,同时 通告网络接口卡发送描述符的在内存中的起始地址; (2)当有数据报文需要发送时,驱动程序将数据报 文在内存中的起始地址和报文长度填写到发送描述符的相 应域中; (3)发送描述符填写完成后,网络接口卡驱动程序 就通告网络接口卡此次需要处理的发送描述符个数; (4)DMA引擎发动一次DMA操作将需要处理的发送 描述符下载到网络接口卡上; (5)发送描述符的下载完成后,DMA引擎就根据发 送描述符的内容发动DMA操作,将发送描述符指向的数 据报文发送到网络上; (6)当发送报文的数量达到发送中断阈值时,DMA 引擎通告主机发送中断,驱动程序开始进行发送中断的处 理,并进行发送描述符的回收。 4提高网卡与主机通信性能的技术 4.1提高总线的带宽 网卡通过系统总线和主机系统相连,因此总线带宽的 大小直接影响网卡和主机数据交换的性能。目前总线技术 已发展到第三代:第一代ISA总线,第二代PCI总线和第 三代PCIE总线,随之,也出现了三种不同类型的网卡: ISA网卡、PCI网卡和PCIE网卡。随着总线技术的发展, 总线的带宽得到极大的提高,网卡与主机的通信性能也随 之提升。 4.2减少中断开销 为减少网卡硬件的中断频率,在网卡驱动中采取关中 断技术和中断联合技术 。所谓关中断技术就是当CPU接 收到网卡的第一个中断,执行中断处理时,在中断处理程 序中将网卡的中断关闭,当处理完所有到达的数据包后, 再将网卡的中断打开。所谓“中断合并”就是网络设备 DMA完数据后并不立即向系统发中断,而是当设备接收 (或者发送)的数据到达一定的阈值后才向系统发中断。 参考文献: [1]吴建军.一种基于PCI总线的10/100Mbps以太网卡接口芯 片的设计[D],武汉:华中科技大学,2003. [2]孙德文.微型计算机技术[M].北京:高等教育出版 社,1999. [作者简介]吕民强(1982一),男,河南开封人,硕士研究 生.工程师,中航工业集团公司西安航空计算技术研究所工作,研 究方向:计算机操作系统;吕丹丹(1988一),女,河南开封人, 硕士研究生,助理工程师,中航工业集团公司洛阳电光设备研究所 工作,研究方向:通信技术。 

因篇幅问题不能全部显示,请点此查看更多更全内容