APP下载

Serial Rapid IO桥接以太网设计和实现

2015-08-07建,徐

微处理机 2015年1期
关键词:传输层分片桥接

郑 建,徐 海

(重庆金美通信有限责任公司,重庆400030)

Serial Rapid IO桥接以太网设计和实现

郑 建,徐 海

(重庆金美通信有限责任公司,重庆400030)

利用FPGA的SRIO核自主实现了RapidIO规范所定义的传输层和逻辑层的11类报文收发,并完成了11类报文和以太网报文相互的分片和重组功能,最终实现了千兆以太网和SRIO的高性能桥接。并通过了逻辑仿真和实际电脑ping包测试。

现场可编程逻辑阵列;串行Rapid IO;以太网;桥接;高性能

1 引 言

RapidIO技术最初是由Freescale和Mercury共同研发的一项互联技术,最初是为了用于处理器之间的互联。随着互联技术的发展,RapidIO技术渐渐成为通信、嵌入式系统内芯片与芯片之间互联的新方法。串行RapidIO以其极少的信号走线来降低信号干扰,通过节约引脚资源和完善的传输协议来保证传输正确性这些优点在嵌入式互联和背板互联的设计中有着广泛运用。

然而实际运用的需求千差万别,用户可能需自主实现传输层和逻辑层的部分功能,并实现上层数据的处理以及和其他类型接口的桥接。

2 Rapid IO简介及分片重组概述

2.1 RapidIO技术概述

RapidIO是新型的传输协议,该协议基于点对点分组包交换技术。RapidIO包含了三层结构:物理层、传输层以及逻辑层。

(1)物理层协议

物理层位于Rapid IO协议分层的最底层,主要完成包括器件接口的细节、包传输机制、流量控制机制、错误管理机制和电器特性等。

(2)传输层

传输层位于Rapid IO协议分层的中间层,主要定义了Rapid IO地址空间和设备之间包交换的路由信息。

(3)逻辑层

逻辑层位于Rapid IO协议分层的最高层,定义了Rapid IO协议所有类型的包格式,为设备完成事务传输提供完备的信息。RapidIO主要支持IO事务和消息事务两种操作。

RapidIO事务操作是基于请求和响应的,该流程如图1所示。

在请求端发出请求事务后,该请求经过交换结构单元送往请求的目的地。目的地在收到请求事务后对该事务作出响应应答。响应事务经过交换结构送往发出请求事务的设备,此时一次操作才算完成。请求发送到接收响应中间存在着各个层级之间的检验,包括CRC、长度等校验。如果出错,虽然操作完成但是操作失败,目的地会返回一个错误指示响应。

图1 Rapid IO事务操作流程

2.2 分片重组

Altera的CycloneⅣ芯片集成了串行RapidIO核。利用该IP核提供的Avalon_st接口可以实现消息类包的传输,并自主实现传输层和逻辑层处理。传输层字段主要定义了包类型和源、目的ID,处理相对简单,不作为重点讲述。逻辑层主要定义了消息长度、标准长度、信件、信箱以及消息段等分片和重组的关键信息,具体位置如图2所示。

图2 11类消息请求包格式

消息长度表示该事务共被分成了几片,标准长度为除最后一片之外每一片的长度,信件、信箱标明该事务片段属于哪个邮箱和那个信件,消息段标明该片段为事务所有分片中的某一片。信件、信箱、消息段唯一确定该片段的归属,据此即可完成片段的定位。

利用FPGA完成11类报文的分片重组功能可以达到线速处理能力,并可方便添加用户自定义功能和实现对其他接口的桥接,这也为以后实现复杂交换系统打下坚实基础。

3 FPGA实现

FPGA处理框图如图3所示,图中SGMII core和GMAC、rxFIFO、txFIFO组成千兆以太网收发系统。其中GMAC采用自主逻辑实现,完成以太网帧的收发,由于不是重点,具体细节不再赘述。Package_Div完成以太网帧到Rapid IO帧的分片功能,相反的Package_comb模块完成RapidIO帧到以太网帧的重组功能。Avalon_st模块完成RapidIO帧的缓存及收发。FPGA提供的SRIO核对内提供Avalon_st接口,对外为serdes差分信号。

图3 FPGA设计框图

采用SRIO核的Avalon_st接口完成11类包的收发。使用该接口时SRIO核只提供物理层和部分传输层功能,逻辑层功能需用户实现,所以传输过程中需要自主完成基于请求响应事务的全部逻辑功能。值得注意的是在接收请求事务时给出的响应事务的优先级需比该请求事务的优先级高一级;而在发送请求完成后,对接收到的响应事务检查确保正确之后即可丢弃。

在完成基本Rapid IO帧收发的基础上,还需进一步完成其对以太网帧的桥接工作。由于11类报文规定数据的最大净荷长度为256字节,如需传送超过256字节的以太网报文就必须完成对应的分片和重组功能。分片即是对超长的以太网帧按照标准长度的定义划分为若干片,再将每个分片作为11类报文的净荷并为其添加帧头部信息,然后按照Avalon_st接口的发送数据端的时序发送出去。重组是分片的反方向操作,即接收端将同属某一事务的各个片段按照其消息段号进行有序组装。在过程中需删除所有的Rapid IO帧头部信息,并将重组后的长度信息附在自定义头部,方便下级模块使用。图4为分片功能波形,可以看出该功能模块将一个较长以太网帧分三次读出,从而完成净荷的分片工作;并在往下级传时添加帧头部信息,以完成完整的Rapid IO帧的组装功能。

图4 分片功能波形

图5为重组功能波形,可以看出该功能模块在收到11类报文后经检查帧头信息后将净荷送往下级FIFO,只有在收到该事务的结束帧后才会给出eop结束标志。图中还可以看到每收到一个11类请求事务帧,均由硬件向发送方回复一个响应事务帧。

图5 重组功能波形

4 实现验证

实验硬件连接关系如图6所示,FPGA采用ALTERA公司的EP4CGX75CF23I7芯片,该FPGA对外提供4个收发器;采用一个收发器实现SGMII,外部接88E1111PHY芯片即可通过以太网与电脑通信;采用另一个收发器实现SRIO,通过SRIO接口的直接与P2020模块的相连即可和P2020通信。这样便可形成电脑↔以太网↔FPGA↔SRIO↔P2020模块的双向通信链路。

图6 设计场景框图

将PC机端的IP地址设置为与P2020同网段后,利用P2020的控制台以及电脑进行互相ping包测试,具体测试结果如表1所示。

表1 实验测试结果

从实验结果可以看出,对于各种长度的以太网帧均能正确处理,并且实现零掉包率。需注意对于大于1518字节的以太网帧,首先由数据发起端的协议栈进行分片,所以FPGA只处理小于1518字节的以太网帧即可。但是为了支持以太网巨帧模式,将分片和重组的最大帧长设计为4096,以应对将来的潜在需求。

下一步研究:在实现更多接口和SRIO接口桥接的基础上,进一步完成这些接口相互间的数据交换以及QOS处理等功能。

5 结束语

利用了FPGA可编程的高度灵活性,实现了Rapid IO规定的11类消息事务的收发,并完成了传输以太网帧所必须的分片和重组功能,从而实现了SRIO到以太网的桥接功能,并达到了线速处理性能和零掉包率的目标。

[1] Sam Fuller.RapidIO:The embedded system interconnection[M].王勇,林粤伟,吴冰冰,等译.北京:电子工业出版社,2006.

[2] 林玲.RapidIO在多处理器系统互连中的应用[J].计算机工程,2006,32(4):244-246.

[3] 聂新义,孙柯柯,马克杰.PCI转RapidIO桥接的设计与实现[J].计算机工程,2010,36(3):246-248.

[4] Altera Corporation.Cyclone IV Device Handbook[EB/OL].http://www.Altera.com.cn.

[5] Altera Corporation.RapidIO MegaCore Function User Guide[EB/OL].http://www.altera.com.cn.

Design and Im plementation of Serial Rapid IO Bridging to Ethernet

Zheng Jian,Xu Hai
(Chongqing Jinmei Communication Co.,Ltd.,Chongqing 400030,China)

The self-design is conducted,by the Rapid IO IPcore embedded in FPGA,for the type 11 packages transceiving through transport layer and logic layer.The function of combining and splitting for the packages between type 11 and Ethernet is completed.At last,the bridge between Gigabit Ethernet and SRIO,with high performance,is implemented,and the test of logic simulation and ping testwith PC computer are passed.

FPGA;SRIO;Ethernet;Bridge;High performance

10.3969/j.issn.1002-2279.2015.01.006

TP302.2

A

1002-2279(2015)01-0016-03

郑建(1982-),男,四川南充人,助理工程师,主研方向:FPGA逻辑设计设计及应用。

2014-07-01

猜你喜欢

传输层分片桥接
上下分片與詞的時空佈局
Microchip推出首款车载以太网音视频桥接(AVB)全集成解决方案
基于Python语言的网络传输层UDP协议攻击性行为研究
分片光滑边值问题的再生核方法
ZnO电子传输层在有机无机杂化钙钛矿太阳能电池中的应用
CDN存量MP4视频播放优化方法
基于模糊二分查找的帧分片算法设计与实现
物联网无线通信传输层动态通道保障机制
基于物联网GIS的消防智能巡检系统设计与实现
苹果腐烂病树桥接复壮技术