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