2024年6月2日发(作者:)
维普资讯
第37卷第2期
航空计算技术
Aeronautical Computing Technique
Vo1.37 No.2
Mar.2oo7
2007年3月
千兆光纤先锋网通信协议及其在网卡中的实现
赵威特,冯萍
(西北工业大学计算机学院,陕西西安710072)
摘
—
要:根据航空电子综合系统的特点,对FC标准簇进行简化,设计了先锋交换网的通信协议(FC
Pio(Fibre Channel—Pioneer Net)协议)。重点介绍其在网卡(NIC)中的实现。由于简化了通信
协议,软硬件的合理分工,使全部控制电路集成在一片FPGA之中,用双面PCB板实现。采用FC—
Pio精简协议,也有效地降低了软件通信开销,提高了数据通信效率。
关键词:光纤通道;交换网;网络接1:2卡;信令;FPGA
中图分类号:TP393.O5 文献标识码:A 文章编号:1671-654X(2007)02-0116-04
引言
当前的航电系统正向光纤交换网络的方向发展。
光纤网络具有传输速度快,安全性好和可靠性高等特
点,已得到广泛应用。新出现的交叉点开关器件,如美
国MINDSPEED公司的推出了17X17,72X72,144X144
左半所示。
表1通信协议结构
FC
FC一4 UpLevelProtocolMapping
FC—Pio
MPI(提供网卡的上层应
用接口)
(IP,SCSI,etc.)
FC一3 Link Services
等不同规模的交叉点开关器件,可以实现各个节点之
间的任意互连。光纤交换网络应用于航电系统的条件
已经具备。这种交叉点开关器件的一个特点是用端口
号寻址。我们曾申请过一个适合于端口号寻址的国家
发明专利(“先锋寻径式计算机网络”,证书号:
164242),其特点是先用先锋信令按端口号寻址接通信
道,然后发送数据帧,从而可大大简化交换机的结构。
我们将该技术应用于光纤交换网,研制一个成本低、效
由申请信道、撤销信道等
信令实现
FC一2 Signaling Protocol
FC一1 Transmission Protocol
FC一0 Transmitters and Receivers
网卡硬件实现
网卡硬件实现
网卡硬件实现
&Media(Fibre)
光纤通道(FC)各层之间技术相对独立。FC一0
层定义连接的物理特性;FC一1层定义了传输协议,包
括传输速率、8B/10B编解码以及CRC差错控制等;
FC—Pio与此完全相同。FC一2层主要是信号协议,
如IDLE,R—RDY等17种信号,FC—Pio只采用其中
的IDLE,R—RDY少数几种信号。FC一3层是链路服
务,通常用3个字节的D_ID来寻址。FC—Pio采用
若干信令来实现。FC一4层实现到现有上层协议(如
IP,SCSI等)的映射。FC—Pio采用并行计算常用的
MPI作为上层映射。
FC协议有统一的帧格式,如下所示:
SOF IHEADER(24byte)J PAYI OAD I CRC I EOF
率高的“千兆光纤先锋交换网”。光纤通信通常采用
美国ANSI颁布的光纤通道(Fibre channel,FC)标准
簇。我们根据航空电子综合系统的特点,对FC标准
簇进行简化,设计了先锋交换网的通信协议(FC—Pio
(Pioneer—Fibre Channe1)协议)。由于篇幅有限,本文
将重点介绍其在网卡(NIC)中的实现。
l FC—Pio通信协议结构
美国ANSI颁布的FC标准簇是面向广泛应用的,
具有较复杂的协议集。航电系统对实时性和应用环境
有特殊的要求。因此,我们对FC协议…进行了简化,
从中选出合适的子集,并结合我们先锋网的思想,构成
一
SOF为帧起始定界符,有多种类型;HEADER为帧
头,有24字节,内容包括帧类型,S_ID,D_ID等各种参
个实时性强的FC—Pio协议。FC的结构层次如表1
收稿日期:2006.12-27 修订日期:2007-03-28
作者简介:赵威特(1982-),男,湖南泪罗人,硕士研究生,研究方向为高性能计算与群机系统。
维普资讯
2007年3月 赵威特等:千兆光纤先锋网通信协议及其在网卡中的实现
数;PAYLOAD为有效负载,是要传输的数据;CRC是
校验码;EOF为帧结束定界符,也有若干种类型。
我们帧格式做了简化,增加了一种简单的“信令
帧”,从而简化了“数据帧”,前者用于交换和链路的控
存器等。DMA引擎用于网卡与主机的数据交换。包括
发送数据时由内存到网卡发送FIFO(TxFIFO)的数据
传输和接收数据时由网卡接收FIFO(RxFIFO)到内存
的数据传输。发送引擎用于将TxFIFO中的内容封装
制,后者传送正常数据。这两种帧格式如下所示:
1)“信令帧”格式
2)“数据帧”格式
SOFn1 lHEADER(24byte)J PAYL0AD(数据)f CRC f EOFnl
信令帧采用1类连接的SOFcl作为帧起始;数据
帧则采用SOFnl作为帧起始。由于不需要D
_
ID等路
径信息,HEADER只需4字节便足够了,其格式如下:
通过信令帧来对整个通信过程进行控制。信令帧由网
卡发1ti,由交换机负责解释,以完成交换控制。为了满
足实时性的要求,我们对信令进行优化,常用的信令仅
使用几个字节,使得控制信令具有结构简单
、
通信速度
快和控制灵活等特点。通过信令可建立任意两个节点
之间的通信链路,实现数据帧在信道上的高效传输
。
帧级通信协议如图1所示,其实现将在后文予以介绍
。
N Port(L—ID)FABIC N
Port(D—ID)
图1帧级通信协议
2 FC—Pio协议在网卡中的实现
2.1网卡的结构
NIC是实现Fc—Pio通信协议的底层通信层。Fc
—
Pio NIC结构如图2所示。
PCI接口实现了与主机的接El电路。寄存器组包
括PCI配置寄存器、状态字寄存器以及通信描述符寄
成帧后发送到链路上。接收引擎用于将收到的信号解
析出来,将收到的数据帧放入RxFIFO,识别各种信号
(如R—RDY,IDLE等),设置与收到的信号相关的状态
位等。CRC校验电路在数据发送时生成的CRC码附
在数据帧末尾一起发送,在数据接收时用于数据检验。
8B/10B编解码器用于数据发送和接收时对数据各个
字节的编解码。8B/10B编码的根本目的是基于“直
流平衡(Dc Balance)”,以及保证高速串行流有足够多
的电平跳变,以便接收端提取时钟。FC—Pio协议集
处理与协议相关的内容,如帧封装及帧解析,链路控制
等。以上电路均集中在一片FPGA中,通过硬件描述
语言VHDL描述实现,这使得控制集中,各个模块问的
交互变得更简单直接,且代码具有很大的可重用性
,
便
于移植和添加新功能。
存器组
DMA引擎
PCI
发送引擎及
CRC
8
接
Tx肿
10B
口
校验
编解
发I』袁H袭 发
接收引擎及
码器
器H器
RxF1FD
F℃一Pio协议集
图2 FC—Pio—NIC结构
2.2网卡命令和状态字
表2 FC—Pio网卡的偏移地址分配
恭 写 助记词 作 用
为实现网卡硬件与其驱动程序及上层应用软件的
交互,网卡提供了相应的网卡控制命令(简称网卡命
令)和状态字。网卡通过设备偏移地址来识别不同的
维普资讯
航空计算技术 第37卷 第2期
网卡命令。
主要的网卡命令如表2所示。
发送网卡命令前,往往需要了解网卡的当前状态,
这由状态字来表示,如表3所示。网卡命令与状态字
的功能将在帧级通信协议的执行过程中予以说明。
表3 FC—Pio网卡的状态位
:
据的长度信息。然后调用网卡命令DMATX通知网卡
启动DMA引擎,从内存读取一帧数据,传到网卡的
TxFIFO中,形成一个完整的数据帧,随即自动启动发
送引擎,经8B/10B转换一一串行化一一光收发器一
一
光纤传送出去。
当要发送的数据长度较短时,用DMA方式效率较
低,因此我们采用SEND—WORD发送方式,用SEND—
WORD命令逐字将数据帧写入TxFIFO中,然后用
START
_
查查 查璺( 垦 2
中断延迟
接收缓冲区满
SEND命令启动发送引擎,其工作过程同上。
网卡接收的工作过程如下:网卡预先调用网卡命
接收缓冲区非空
接收电路忙
发送电路忙
渤枷瑚 ∞∞加m 4 2。
令DmaRx—ADDR—LOAD加载接收缓冲区的起始物理
地址到网卡,光收发器收到帧时,经串并转换一一
10B/8B解码一一字同步后,由接收引擎做帧解析,若
为R—RDY,则将对应的R—RDY状态位置为‘1’;若为
信令帧,则将对应的状态位置为‘1’;若为数据帧,则
将数据写入RxFIFO中,接收完一帧数据并CRC校验
无误后,启动DMA引擎将RxFIFO中的数据传到内存
的接收缓冲区。
开中断
数据CRC校验错
保留
控制字校验错
硬件标志ZACK
确认标志CRCERR
收到重发信令
收到广播信令
收到消息尾信令
收到确认信令
发送方发完一帧后,等待接收方的R—RDY应答,
同时通过DMA将下一帧长度的数据预取到网卡
TxFIFO,若收到应答且下一帧准备好,则将下一帧数据
发出。接收方每收到一帧数据并CRC校验无误,则回
个R—RDY应答。
2.3 FC—Pio帧级通信协议的实现
一
为了说明网卡如何支持通信协议,下面介绍一下
FC—Pio的帧级通信协议。
通信之前,首先要申请建立信道,这通过发送申请
为了加快数据的传输速率,我们提供网卡自动连
发5O帧的功能。收方收到一帧回一个R—RDY应答。
发方网卡收到R—RDY后,自动发送下一个数据帧,直
到5O帧通信完毕。然后,收方驱动程序发一个ACK
帧的命令。
信道信令帧(SHQ)来实现。交换机收到该信令后,检
查目标节点的“BZ”忙位,如果BZ为‘0’,就接通信
道,并将对应的BZ位置为‘1’;如果BZ为‘1’,则向
发送节点返回一个F—RJT帧,向其通知目标节点的忙
状态,发送方稍后再重发申请。通信结束后发撤销信
道信令帧,交换机收到该信今后,断开相应的信道,并
将对应的BZ位置为‘0’。
3性能测试
两台PC机通过1.0625Gbps的FC—Pio交换机进
行互连,通过MPI的pingpong基准测试程序,测试FC
—
建立信道后便可发送数据帧。对数据帧,根据其
PAYLOAD的长度,分为两种发送方式:DMA发送方式
和SEND—WORD发送方式。DMA发送方式时:驱动程
Pio的通信性能。PC机的配置为:PIII 800 CPU、
133MHz系统总线、256MB内存,节点中运行Linux7.3
操作系统。性能测试结果如表4所示,表中以太网性
序先调用网卡命令DmaTx—ADDR—LOAD,将要发送的
数据所在内存的起始物理地址加载到网卡中。再调用
SEND
—
能数据来自于文献[4]。
性能测试结果表明:该网络提供给MPI用户的通
信延迟为4—45微秒。其中4微秒是由于5O帧连发
WORD命令先后发送数据帧的头两个字SOF
和HEADER到网卡的TxFIFO中。HEADER中包含数
时由网卡硬件直接来控制收发的应答,延迟由5O帧
表4各种网络的通信性能
维普资讯
2007年3月 赵威特等:千兆光纤先锋网通信协议及其在网卡中的实现 ・119・
平均分配来计算的。因此,远小于千兆以太网
了软件通信开销,提高了数据通信效率。
(MPICH)的通信延迟(60微秒)。用户带宽
(420Mbps)稍高于千兆以太网(MPICH)的
参考文献:
(420Mbps),但低于千兆以太网(M—VIA)的
FIBRE CHANNEL Physical and Signaling Interface(FC—
(480Mbps)。这是由于本网卡还没有实现VIA零拷贝
PH),REV 4.3.
的缘故,有进一步改进的空间。
[2]
FIBRE CHANNEL Avionics Environment(FC—AE)Techni.
cal Pmposals,REV 0.4.
4 结论
[3] 黄永葵.光纤通道标准及其在航空电子中的应用[J].
航空电子技术,2003(12).
目前,千兆光纤网卡多采用进口产品,市场上尚未
[4]
Dr.Lars,E.Jonsson,Dr.William,R、Magro,Comp ̄ative Per-
见有国产的商品。我们通过简化通信协议,软硬件的
formance of InfiniBand Architecture and Gigabit Ethernet In.
合理分工,简化了逻辑,全部控制电路集成在一片A1.
terconnects on Intel Itanium 2 Microarchitecture—based
tera FPGA EP1C6Q240C8之中,而且用双面PCB板实
Clusters[A].in 4th European LS—DYNA Users Conference
现,成本较低。采用FC—Pio精简协议,也有效地降低
『C].2o03.
Pioneer-Fibre Gbps Network S Protocol and its implementation in NIC
ZHAO Wei-te,FENG Ping
(Department of Computer Science and Technology,Notrhwest Polytechnical University,Xi an 710072,c )
Abstract:According to the special requirements of Avionics Integrated System(AIS),the Standard Protoco1 of Fi—
ber Channel has been simpliifed to be a new protocol,FC-Pio(Fiber Channel-Pioneer Net).The implementati0n 0f the
new protocol in Net Interface Card(NIC)is described speciifcally.Due to the simpliifcation of FC-Pio and the reasona—
ble assignment between the hardware and the software
,
the whole circuit of control is integrated in only one FPGA chip
,
just with a double-faced PCB board. With the FC-Pio Protocol,the software communication overhead is also greatly re.
duced.As a result,the high performance/cost ratio is achieved.
Key words:fiber channel;switch-network;NIC;token;FPGA


发布评论