APP下载

NoC千兆以太网资源节点设计*

2017-11-03许川佩赵江伟王建喜

电子器件 2017年5期
关键词:网络接口以太网数据包

许川佩,赵江伟,王建喜

(桂林电子科技大学电子工程与自动化学院,广西自动检测技术与仪器重点实验室,广西 桂林 541004)

NoC千兆以太网资源节点设计*

许川佩,赵江伟,王建喜*

(桂林电子科技大学电子工程与自动化学院,广西自动检测技术与仪器重点实验室,广西 桂林 541004)

针对NoC和PC机之间通信速率低的问题,设计了一个千兆级的网络通信资源节点,该资源节点主要包括UDP数据组包、UDP数据解包、三速以太网控制器和资源网络接口等模块。以典型的2D Mesh结构NoC系统作为测试对象,实验结果表明,本文设计的资源节点能够实现最高1.02 Gbit/s、平均995.4 Mbit/s的数据传输速率,在基于NoC的高速数据传输领域具有一定的实用价值。

NoC;资源节点;IP核;UDP;数据传输

借鉴计算机网络技术[1]发展而来的片上网络NoC(Network on Chip),由路由节点组成的通讯架构实现数据的路由[2]和分组交换[3],资源节点通过与路由节点的一对一通信实现各种不同功能的资源节点在通讯构架中的交互通信[4]。目前,片上网络与PC机间的数据通信方式较为简单,研究较少,提高二者之间的通信速率是NoC面向更广泛应用而亟须解决的问题。

片上网络要实现以太网的功能,首先需要将NoC系统与TCP/IP协议融合到一起。目前常见的实现方法,一种是基于软件的方法,将嵌入式系统作为NoC系统的一个资源节点[5]。另一种是基于硬件的方法,把已有的TCP/IP芯片[6]直接作为NoC系统的一个资源节点,继而实现以太网通信。基于软件方法实现的以太网通信需要额外的嵌入式系统,另外TCP/IP协议栈都比较庞大[7]。而基于硬件方法实现的以太网通信虽使用现有的TCP/IP芯片可以使其可靠性大幅度提高,但是硬件电路复杂,价格较为昂贵,硬件成本高,数据传输速率也比较低[8]。

为简化硬件设计同时加快软件设计过程,本文为NoC系统设计了一个基于UDP的千兆级的网络通信资源节点[9]。设计耗费较少的FPGA资源,硬件电路简单,数据传输速率高,提高了NoC和PC机间数据的通信效率。

1 系统总体框架

NoC系统借鉴并移植计算机网络通信中的概念和方法,用于多个核或IP(Intellectual Property Core)的集成[10],图1是基于2D-Mesh的3×3系统结构模型。NoC系统主要由路由节点(Router Node)、资源节点(Resource Node)和资源网络接口RNI(Resource Network Interface)组成[11]。路由节点负责资源节点之间的信息传输,资源节点完成广义上的计算任务。资源节点可以是嵌入式处理器、可重构器件、输入输出设备等,它通过资源网络接口连接到网络中。资源网络接口是资源节点与路由节点之间进行通信的桥梁,主要由发送模块和接收模块组成。其功能是将资源网络节点的数据按照传输协议进行打包处理后发送到片上网络中,并将网络中接收提取的数据传递给资源节点。

图1 基于2D-Mesh的3×3 NoC系统结构模型

硬件平台选用Altera Cyclone IV 系列的EP4CE115F29C7 FPGA芯片作为NoC系统的核心部件。片上网络采用规则的3×3 2D-Mesh拓扑结构,以虚通道技术的虫洞数据交换方式以及无锁死的确定性XY维序路由算法作为理论模型,完成NoC通信框架的构建。本文将基于UDP协议构建的以太网模块作为NoC系统中的一个资源节点,通过资源网络接口实现NoC和PC机的高速数据交互。

图2 资源节点总框图

2 千兆以太网资源节点设计

2.1 千兆以太网资源节点总框架

千兆以太网资源节点总框架如图2所示,主要由以太网资源网络接口和以太网模块组成。以太网资源网络接口作为连接片上网络和以太网模块的桥梁,其主要作用是完成以太网资源节点与片上网络通信的分离,使得资源节点不受通信网络的构架限制,提高设计的重用性。基于UDP协议的以太网模块,旨在利用较少的片上资源实现基本的以太网通信。

2.2 千兆以太网资源节点传输数据帧结构

图3为千兆以太网资源节点传输数据帧的结构图,该数据帧主要由两部分构成,前一部分是在片上网络中传输的数据包,后一部分是千兆以太网传输的数据帧,前者作为独立的数据包在片上网络中传输,并作为后者的UDP净荷在以太网中传输[12]。

图3 数据帧格式

在片上网络中传输的数据包被分成若干个flit,为了能使数据包正确到达目的节点,将flit分为3种类型,即头flit、数据flit和尾flit,头flit携带数据包源地址、目的地址、数据包长度等信息,尾微片代表着数据包的终结,数据微片存在于二者之间,是要传递的有效数据。本文采用的flit共34比特,前两位代表微片类型(01:头flit;10:尾flit;其他:数据flit)。数据包经过资源网络接口时,加入微片类型信息,从而,数据包在从千兆以太网资源节点发出时只需32位数据位宽。

图4 基于UDP的以太网框图

3 千兆以太网模块的设计

本文设计的千兆以太网模块主要基于UDP协议,在FPGA上由Verilog HDL硬件编程语言编程实现UDP数据的组包、解包及校验等功能。利用三速以太网(TSE)IP核以及RGMII接口,实现MAC层功能以及其与PHY层接口的连接。采用Marvel M88E1111芯片实现物理层功能。此外,专门设计了针对三速以太网IP核的控制器,其功能主要是通过配置寄存器,设置工作模式,配置MDIO接口,以实现与物理层芯片的通信。系统框图如图4所示。

3.1 UDP组包、解包模块

UDP组包模块主要包括计算校验和、数据包传输以及数据输出管道3个部分。校验和的计算主要分为以下几个步骤:第1步:把伪首部添加到UDP上。第2步:初始化,相关寄存器清零,校验和字段清零。第3步:获取UDP payload长度,计算总长度。把所有字段划分为16位的字相加,把进位加到运算结果的低位上。第4步:将获得的16位数的运算结果取反就得到了校验和[13]。

数据包的传输状态流程图如图5所示。数据组包的同时伴随着数据包的传输。当启动信号有效,即Go_bit=1时,数据包传输进入空闲态S0,若资源接口请求写数据有效,且资源接口传送帧头标示有效,数据包传输进入状态S1,此状态主要完成MAC首部、IP首部及UDP首部的数据传输任务。若资源接口请求写数据有效,且资源接口传送帧头标示无效,则数据传输出错,进入出错状态S3,此时只有硬件复位才能跳转到空闲态,否则将一直停留在错误状态。状态S1结束后,会进入状态S2,此状态主要在将从资源网络接口接收到的数据进行转发,即传输UDP payload。当收到尾帧标志时,完成整帧数据的传输,数据传输计入空闲态,等待下一帧数据的传输。

图5 数据包传输状态流程图

3.2 三速以太网IP核控制模块

三速以太网IP核主要实现MAC层的功能。本文自主设计一个三速以太网IP核控制器来完成三速以太网IP核的配置工作。三速以太网控制器主要有以下3项功能:

(1)配置与三速以太网IP核工作模式相关的寄存器,来设置三速以太网的工作模式。

(2)配置与数据收发FIFO相关的寄存器,来设置数据收发接口的工作方式。

(3)配置三速以太网 IP核的MDIO接口寄存器,来完成与PHY芯片间的通信。

三速以太网IP核控制器的工作流程如下:复位时会停止收发通道,清空相应寄存器以及收发FIFO。复位成功后,设置寄存器,设置IP核的工作模式。寄存器配置完成后,通过将command config寄存器中的TX_ENA和RX_ENA位设置为1来启动三速以太网IP核[14]。

4 千兆以太网资源网络接口设计

千兆以太网资源网络接口的主要功能是数据接收和数据发送。数据接收是指接收来自资源节点的数据,并按照相关协议组包,将组装好的数据包交由路由网络。数据发送是指接收来自路由网络的数据包,并按照相关协议解包,将解包后的数据传送给资源节点。千兆以太网资源网络接口框图如图6所示。

图6 千兆以太网资源网络接口框图

4.1 RNI数据接收模块设计

片上网络传输数据主要采用虫洞路由[15]的方式,即在开始通信之前,源节点通过一个头信息建立路径,并且同时预定所经路径的信道资源,目的节点在收到这个信息头后将沿原路返回一个应答信号,源节点收到这个应答信号后,数据便以既定路径流向目的节点。

在片上网络中传输的数据包由1个首flit、N-2个数据flit和1个尾flit构成。头flit的包长度为34,分别由微片类型、帧总数、本帧序号、帧长、目的地址和源地址组成。其他微片除首部两位为微片类型,其余均为数据位。当源节点发送的数据包到达目的节点后,目的节点会将数据包从本地接口经由RNI控制器传输到以太网模块。资源网络接口的数据接收状态转移图如图7所示。

图7 RNI数据接收状态转移图

当资源网络接口使能时,数据接收进入状态S0,路由节点的本地端口向RNI发出数据传输请求,数据接收跳转到状态S1,若此时RNI接收FIFO满时,停留在状态S1,若为空,就向路由节点的本地端口回复数据接收命令Gra_to_loc=1,数据接收跳转到状态S2,开始接收数据,若接收到数据,即FIFO不为空时,数据接收进入状态S3,此状态主要接收来自片上网络的数据包,同时向以太网模块传输数据,当接收到尾flit后,数据接收跳转到状态S0,至此,完成整个数据包的接收。

4.2 RNI数据发送模块设计

RNI数据发送状态转移图如图8所示。

图10 千兆以太网资源节点测试时序验证1

图8 RNI数据发送状态转移图

当资源网络接口使能且以太网模块处于工作状态时,数据发送进入状态S0。当资源网络接口收到以太网模块的写数据请求时,数据发送跳转到状态S1。若此时数据接收FIFO满,停留在状态S1,且为空,就向以太网模块发送资源网络接口读数据有效命令RNI_read_valid=1,并且数据发送跳转到状态S2,开始接收数据。若接收到数据,即FIFO不为空时,数据接收进入状态S3(此状态主要是接收以太网模块的数据,并将数据发送到片上网络),当发送到尾flit后,数据发送跳转到状态S0,至此,完成整个数据包的接收。

5 实验结果分析

为了验证资源网络接口的性能,本文在典型的3×3 2D Mesh结构的NoC系统中专门设计了UDP数据发生器作为测试系统的数据产生电路。测试电路结构模型如图9所示。

图9 测试电路结构模型

测试数据由UDP数据包发生器产生,经路由网络传输传入千兆以太网资源模块,进而传输到PC机上。详细的千兆以太网资源节点测试时序如图10、图11所示。sin7节点的receive_data_out是由UDP数据发生器产生的经由千兆以太网资源网络接口封装好的数据,分别由图10、图11中的首flit、MAC首部、IP首部、UDP首部、数据flit、尾flit组成。sin5节点的receive_data_out是千兆以太网资源网络接口收到的数据帧。

由图10、图11可以看出片上网络数据传输的虫洞路由的传输时序,即先由首flit建立路由路径,这个过程大概需要若干时钟周期完成,之后的数据各个部分沿着建立好的路径以流水线的方式传递,直到尾flit的传输完成,释放当前路径,完成整帧数据的传输任务。

图11 千兆以太网资源节点测试验证2

为了验证整个资源网络节点数据包的最高传输速率,UDP数据包发生器以间隔10 s启停的工作方式“发10 s—停10 s”间断的向片上网络发送数据帧,这些数据帧由不同的路径传输到千兆以太网资源节点,经千兆以太网组包模块加上MAC首部、IP首部、UDP首部等信息后封装成数据帧,然后传输到PC机上。如图12所示,使用Bandwith Meter Pro网络状况检测软件测得的千兆以太网资源节点数据传输速率最高1.02 Gbit/s,平均995.4 Mbit/s,满足了千兆级的高速数据传输要求。

图12 千兆以太网资源节点测试验证3

6 结论

资源节点的设计是NoC系统设计的主要热点问题之一,片上网络在高速数据传输领域也有了进一步的应用,如何设计简洁、高效、高速的千兆以太网资源节点成为首要问题。本文在分析了几种不同设计方案的基础上设计了基于UDP的千兆以太网资源网络节点,在3×3的NoC平台上进行了验证,实验数据表明,设计的千兆以太网资源节点能够实现千兆级的数据传输,在基于NoC的高速数据传输领域,具有一定的应用价值。

[1] 高明伦,杜高明. NoC:下一代集成电路主流设计技术[J]. 微电子学,2006(4):461-466.

[2] 欧阳一鸣,韩倩倩,梁华国,等. 面向非全互连3D NoC可靠通信的分布式路由算法[J]. 计算机辅助设计与图形学学报,2014(3):502-510.

[3] Sayankar B B,Agrawal P,Dorle S S. Routing Algorithms for NoC Architecture:A Relative Analysis[C]//International Conference on Emerging Trends in Engineering and Technology. IEEE,2013:105-106.

[4] 王建喜,许川佩,王光. 基于IEEE 1500的NoC资源节点Wrapper设计[J]. 电子器件,2015,38(6):1301-1307.

[5] 项敏,王学军. TCP/IP协议栈在嵌入式芯片上的实现[J]. 电子设计应用,2004(5):67-68,80.

[6] 黄训诚. 基于RTL8019AS的单片机TCP/IP网络通信[J]. 微电子学与计算机,2005(3):228-230,235.

[7] 牟英峰,徐殿国,张东来. 基于嵌入式TCP/IP协议栈的信息家电连接Internet单芯片解决方案[J]. 电子技术应用,2002(6):16-18.

[8] 陈维良,赵俊超,魏少军. TCP/IP协议的ASIC设计与实现[J]. 微电子学,2002(2):97-101.

[9] 瞿鑫,吴云峰,李华栋,等. 基于FPGA的千兆以太网数据传输的设计与实现[J]. 电子器件,2014,37(4):662-664.

[10] 万健,李丽,王佳文,等. “包-电路交换”片上路由器设计与实现[J]. 微电子学与计算机,2011(7):68-71.

[11] Benini L,Micheli G D. Network on Chip:A New SoC Paradigm[J]. IEEE Computer,2002,3(1):70-78.

[12] 何群,郑德忠. 基于网络的供热控制管理系统中实时图象处理的研究[J]. 传感技术学报,2004,27(1):66-69.

[13] 王忠,李延社,游智胜. CRC算法设计与程序实现[J]. 电子测量技术,2007(12):26-28,36.

[14] Altera Inc. Triple-Speed Ethernet MegaCore Function User Guide[Z]. http://www.altera.com,2014(6):84-114.

[15] Zang Mingxiang,Zhang Xiangxiang,Wen Jia. Wormhole Routing Optimization Algorithm Based on Virtual Channel Switching[C]//Proc of International Conference on Multimedia Technology. Washington DC:IEEE Computer Society,2011:3798-3800.

GigabitEthernetResourcesNodeDesignforNoC*

XUChuanpei,ZHAOJiangwei,WANGJianxi*

(Guangxi Key Laboratory of Automatic Detection Technology and Instrument,School of Electronic Engineering and Automatic, Gulin University of Electronic Technology,Guilin Guangxi 541004,China)

A peta-scale network communication resource node has been designed in order to deal with the problem of low communicate rate between NoC and PC. This resource node mainly consists of the UDP data packets,the UDP data unpack,the Three-Speed Ethernet Controller and the resource network interface modules. The experiment which takes the typical 2D Mesh NoC as the test object shows that the proposed resource node can provide a maximum data transfer rate of 1.02 Gbit/s,and the average rate of data transmission is up to 995.4 Mbit/s. Thereby,it shows a certain practical value in the high speed data transmission field based on the NoC.

NoC;resource node;IP core;UDP;data transmission

10.3969/j.issn.1005-9490.2017.05.042

项目来源:广西自动检测技术与仪器重点实验室项目(YQ16104)

2016-08-03修改日期2016-09-21

TN492

A

1005-9490(2017)05-1272-06

许川佩(1968-),女,汉族,广西合浦人,桂林电子科技大学博导,博士,教授,主要研究方向为集成电路测试理论与技术,xcp@guet.edu.cn;

赵江伟(1989-),男,汉族,河南许昌人,桂林电子科技大学在读硕士,主要研究方向为智能信息处理与嵌入式应用,jiangwei_zhao@163.com;

王建喜(1989-),男,通讯作者,汉族,江苏东台人,桂林电子科技大学助教,主要研究方向为集成电路测试理论与技术,mzfxwjx@163.com。

猜你喜欢

网络接口以太网数据包
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
SmartSniff
双冗余网络接口自动切换测试模块的设计与实现
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅析CTC与GSM-R系统网络接口及路由配置改进措施
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用
网络设置管理
京沪高铁GSM-R网络接口监测网关子系统的设计与实现
视觉注意的数据包优先级排序策略研究