高速网卡与主机通信技术研究
2015-05-30吕民强等
吕民强等
[摘 要]本文分析了高速网卡与主机的通信方式——基于描述符的DMA通信机制,研究了提高网卡与主机通信性能的技术——提高总线带宽和减少中断开销。
[关键词]中断;描述符;DMA
[DOI]10.13939/j.cnki.zgsc.2015.20.059
随着网络技术,尤其是光纤技术的快速发展,互联网通信带宽不断提升。网络应用的性能需求表现为高吞吐率、低延迟、低主机开销和低存储开销等特点[1]。这些特点对网络接口卡与主机的通信性能提出了更高的要求。
1 高速网卡整体结构
高速网卡的硬件结构如图1所示,包括:IO接口部分、DMA引擎部分、接收和发送FIFO、以太网MAC协议处理部分和物理层(PHY)模拟信号处理部分,此外,还有一些辅助模块,如EEPROM接口模块,扩展BootROM接口模块,LED控制和整个芯片的命令状态寄存器(CSR)部分。IO接口主要负责和主机进行通信;DMA引擎模块主要负责数据包的具体控制,包括配合IO接口的控制动作、DMA访问起始地址的控制;MAC模块则负责处理以太网CSMA/CD(Carrier Sense Multiple Access with Collision Detection)协议;物理层(PHY)负责处理网卡与网卡之间的信号连接以及对信号进行恢复,配置寄存器CSR负责对网卡的特性进行设置。
高速网卡硬件结构
网卡有两路数据通道:一是数据发送过程:从主机网络协议栈传来的数据包,通过IO接口,由TxDMA控制到达TxFIFO先暂存起来,当TxFIFO暂存的数据包到达一定阈值时,TxMAC将TxFIFO中的数据包按CSMA/CD协议发送到具有自适应选择功能的PHY层,再由双绞线或者光纤发送到外部网络上。一是数据接收过程:网络上的数据信号被物理层捕获,转换为并行数据后传送到接收MAC,接收MAC判断数据包是否接被接收,将接收的数据包送进接收FIFO先暂存起来,当接收FIFO数据达到一定阈值后,RxDMA会通过IO模块,将数据传送到主机内存,完成数据包的接收[2,3]。……
