发明名称 一种利用MicroBlaze实现千兆网络传输的优化方法
摘要 一种利用MicroBlaze实现千兆网络传输的优化方法,在MicroBlaze处理器主频较低(工作速率低于180MHz)的情况下,实现TCP和UDP的高速传输,整个发明包括从逻辑架构上对嵌入式千兆网逻辑架构优化,从TCP/IP协议的实现上采用源码发送和协议栈(LWIP)联合使用的实现方法,从TCP的流量控制方面采用TCP流量控制方法,从对于恶劣环境的适应性方面采用了自设计的TCP重传控制策略来适应恶劣的传输环境,对待发送数据的校验和采用快速计算等5个方面,通过本发明,能在不做优化时低于100Mbps传输码率的情况下,达到UDP传输800Mbps以上,TCP传输600Mbps以上,性能有了极大的提升。<pb pnum="1" />
申请公布号 CN106134526B 申请公布日期 2014.02.19
申请号 CN201010051628.6 申请日期 2010.11.30
申请人 北京遥测技术研究所 发明人 刘斌;许利
分类号 H04W28/06(2009.01)I 主分类号 H04W28/06(2009.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种利用MicroBlaze实现千兆网络传输的优化方法,所述的千兆网络采用FPGA作为基本平台,FPGA内部的MicroBlaze作为处理器,片上RAM作为内部存储器;其特征在于步骤如下:(1)进行逻辑架构优化:采用两片存储器DDR2作为外部存储器,一片作为代码存放区,一片作为数据交互区,在MicroBlaze上增加两条外存储器的总线,一条为IXCL,连接在第一片DDR2的控制器上,第二条为DXCL,连接在第二片DDR2的控制器上,为了平衡负载,将运行在MicroBlaze里的程序的各个段在运行时放入不同的存储器,主要分配如下:将.text段放入第一片DDR2;将.bss段和数据的DMA控制器放入第二片DDR2;将.statck段和.data段放入片上RAM;(2)进行校验和快速计算:在FPGA内部开发一个IP核,在接收外部高速数据的同时,计算每帧数据的校验和,并存储在片上RAM中;所述校验和的计算过程如下:(2.1)将接收到的高速数据通过双缓冲区策略存入片上RAM,并将数据分为两路,一路通过第二片DDR2控制器写入数据发送区,另一路进行校验和计算,进入步骤(2.2);(2.2)首先判断接收的高速数据帧是否结束,如果没有结束,则将数据进行多次拆位累加,并将结果保存起来,如果接收的高速数据帧已经结束,则将累加的结果进行校验和计算,完成计算后存入片上RAM,并将累加结果清零;(3)TCP/IP实现方法优化:在数据发送时采用了源码发送和LWIP协议栈处理混合使用的方法,具体实现为:在UDP传输时,数据接收在LWIP协议栈完成,数据发送时,首先通过PLB总线从片上RAM中读取校验和,根据UDP的数据格式,将校验和与待发送数据一起以源码的方式打包成UDP数据包,然后直接调用协议栈底层函数<pb pnum="1" />lowlevel_output完成数据发送;在TCP传输时,千兆网通信双方连接建立和关闭时的握手以及数据接收在LWIP协议栈完成,而数据发送时,首先通过PLB总线从片上RAM中读取校验和,根据TCP的数据格式,将校验和与待发送数据一起以源码的方式打包成TCP格式数据包,然后按照TCP流量控制方法完成数据发送;所述的TCP流量控制方法具体如下:首先设置最大和最小发送阀值,在数据开始发送时,调节千兆网发送窗口到最小发送阀值,根据网络接收方的反馈逐步增大千兆网发送窗口到最大发送阀值,达到慢启动的效果;在数据发送过程中,根据发送窗口尺寸大小和未响应计数来调节发送速率,未响应计数指的是没有得到对方反馈前发送的数据个数,发送时只有在发送窗口已发送数据量小于最大发送阀值并且未响应计数小于预设值时才能向外发送数据,在发送完一帧数据后,将发送窗口尺寸减小并将未响应计数增加,在收到反馈后,再根据反馈信息调节发送窗口,并将未响应计数清零。
地址 100076 北京市丰台区南大红门路1号