当前位置: 首页 > 专利查询>江南大学专利>正文

一种基于FPGA的数据传输系统技术方案

技术编号:32545151 阅读:28 留言:0更新日期:2022-03-05 11:43
本发明专利技术公开了一种基于FPGA的数据传输系统,其特征在于:包括主机端和FPGA端;所述FPGA端包括:CMAC模块、TCP/IP模块和用户自定义加速模块;IP模块用于接收网络数据包转发至对应的上层模块并将来自上层模块的数据校验封装后发送给以太网模块;TOE模块包括通用TOE模块和镜像TOE模块,所述通用TOE模块发送和接收TCP数据,并完成TCP拥塞控制;所述镜像TOE模块用于对交换机镜像端口开发完成TCP数据的接收和重排;用户自定义加速模块,用于部署数据加速程序硬件,处理接收到的数据,将处理完的数据发送至TCP/IP模块或主机端。本发明专利技术实现主机内存、全局内存和网络通信之间的低延迟数据传输及计算。输及计算。输及计算。

【技术实现步骤摘要】
一种基于FPGA的数据传输系统


[0001]本专利技术涉及通信
,具体涉及一种基于FPGA的数据传输系统。

技术介绍

[0002]目前,网络传输速率增速远超CPU的算力增速,同时,CPU适合对串行的复杂的指令操作进行处理,对大量并行固定模式的计算并不适合。传统的以软件方式处理网络协议的主机资源消耗逐年提高,软件方式的TCP/IP,吞吐率低,更重要的是延迟高,延迟不稳定,不能满足一些对网络延迟有要求的应用场景。
[0003]随着市场规模不断扩大,各种应用场景层出不穷,单一加速芯片设计已经难以满足复杂多样性的加速需求。FPGA(Field Programmable Gate Array)凭借其可重构、高并行、低延时等特点成为数据中心的首选可编程硬件,如在微软的ConfigurableCloud、亚马逊的AQUA
[3]等数据中心项目中,均选择FPGA作为CPU的协处理器。
[0004]Eskandari等人提出一种基于SDAccel开发的系统,使用HLS分别实现了10Gbps TCP协议和IP协议的功能,并将HLS内核映射到不同的FPGA上。但是针对特定场景,如在高频金融交易场景下,由于交易所权限限制等因素,数据需要从交换机的镜像端口获得,传统的TCP握手连接难以建立,同时将完整的TCP/IP协议进行FPGA卸载会产生冗余操作,造成信息的滞后性,这在实时性要求极高的金融交易中是难以忍受的。此外,金融交易受经济、政治等因素影响,需要频繁调整策略,修正参数,对FPGA的可重构性有很高的期望。传统的FPGA开发方式已经无法完美适应该通信场景,且传统FPGA开发方式开发周期长,对上层开发人员不友好,而最新的Vitis FPGA开发框架下缺乏对网络功能的支持。

技术实现思路

[0005]本专利技术的目的是提供一种基于FPGA的数据传输系统,实现主机内存、全局内存和网络通信之间的低延迟数据传输及计算。
[0006]为了解决上述技术问题,本专利技术提供了一种基于FPGA的数据传输系统,包括主机端和FPGA端;
[0007]所述FPGA端包括:
[0008]CMAC模块,包括以太网模块,用于接收和发送网络数据包;
[0009]TCP/IP模块,包括IP模块和上层协议模块,所述IP模块用于接收网络数据包转发至对应的上层模块并将来自上层模块的数据校验封装后发送给以太网模块;所述上层协议模块包括TOE模块,所述TOE模块包括通用TOE模块和镜像TOE模块,所述通用TOE模块发送和接收TCP数据,并完成TCP拥塞控制;所述镜像TOE模块用于对交换机镜像端口开发完成TCP数据的接收和重排,并将解析出的TCP数据传输给用户自定义加速模块;
[0010]用户自定义加速模块,用于部署数据加速程序硬件,处理接收到的数据,将处理完的数据发送至TCP/IP模块或主机端;
[0011]其中,所述CMAC模块、TCP/IP模块和用户自定义加速模块之间采用AXI4

Stream接
口进行数据交互;
[0012]所述主机端用于数据的读写、内存分配以及与所述FPGA之间的调度与管理。
[0013]作为本专利技术的进一步改进,所述以太网模块为10G/25G以太网模块,所述以太网模块在每个FPGA端单独配置;所述以太网模块通过GT引脚连接网络接口,与外部网络进行数据交互。
[0014]作为本专利技术的进一步改进,所述CMAC模块和所述TCP/IP模块之间通过AXI4

Stream接口相连,用于接收和发送网络数据包。
[0015]作为本专利技术的进一步改进,所述IP模块包括IP接收模块和IP发送模块;
[0016]所述IP接收模块,接收来自以太网模块的网络数据包,判别协议类型,丢弃IP和ARP以外的网络数据包,同时将ARP数据包转发至ARP模块,对IP网络数据包进行首部校验和检查以及上层协议类型检查,将数据部分转发至对应上层模块;
[0017]所述IP发送模块,对ARP和IP模块分开进行处理,计算IP帧的首部校验和,将数据部分与头部进行封装后发送给CMAC模块。
[0018]作为本专利技术的进一步改进,所述上协议层模块包括ARP模块、ICMP模块、UDP模块和所述TOE模块;
[0019]所述ARP模块用于ARP请求及响应的发送和接收,ARP映射表放在存储单元内,同时保存128组映射关系,在发出ARP请求后,在映射表中保留500ms,若未收到ARP响应,则会被删除并标记为未答复的请求;
[0020]所述ICMP模块用于接收和发送请求报文和回答报文,对接收到的ICMP帧进行校验和检测和计算,封装为回送回答报文,传输至IP发送部分;
[0021]所述UDP模块用于接收和发送UDP协议报文,通过主机端来设置目的IP地址、目的端口和源端口,所述UDP模块接收UDP协议报文时,会进行校验和计算,同时支持64K可编程监听端口,对于无效数据报,则直接舍弃;所述模块UDP发送UDP协议报文时,先添加伪首部计算校验和,封装为UDP帧,传输给IP模块;
[0022]其中,所有模块使用基于HTTP的自适应码率流媒体传输协议进行实现,模块之间使用64位AXI4

Stream接口连接,支持64个并发TCP连接,每个连接提供32KB大小的缓冲器的作为发送和接收的缓冲区。
[0023]作为本专利技术的进一步改进,所述通用TOE模块包括接收模块、发送模块、计时器模块、状态控制模块、缓冲查找模块和缓冲存储模块;
[0024]所述接收模块对TCP数据报进行解析,之后依据TCP首部分进行:仅SYN标志位有效的数据报,为客户端发送的连接请求;SYN和ACK标志位有效的数据报,为服务器发送的确认报文;ACK标志位有效但不携带数据的数据报,为客户端的确认报文;ACK标志位有效且携带数据的数据报,为数据报文;FIN和ACK标志位有效,为连接释放报文;依据分类启动对应的状态控制模块;发送模块等待连接缓存中存放的数据达到MSS字节后,将其组装为一个TCP报文段发送出去;初始窗口大小定义为10MSS字节,当触发拥塞控制机制后,将会被介绍到MSS字节,直到所有的数据报被确认。
[0025]作为本专利技术的进一步改进,所述镜像TOE模块包括接收模块、发送模块和数据缓冲排序模块;
[0026]所述镜像TOE模块接收到TCP数据报后,直接对其进行解析,若不携带数据部分,则
直接舍弃;在数据缓冲排序模块中按照序列号保存五组数据,进行排序设计;
[0027]所述发送模块先添加伪首部计算校验和,之后封装为TCP协议数据报,传输给IP模块。
[0028]作为本专利技术的进一步改进,所述用户自定义加速模块采用FAST解码协议模块,接收从镜像TOE模块传输来的数据,进行处理,将结果传输回主机端。
[0029]作为本专利技术的进一步改进,所述数据传输系统还包括:
[0030]在TCP/IP模块中,对于每个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的数据传输系统,其特征在于:包括主机端和FPGA端;所述FPGA端包括:CMAC模块,包括以太网模块,用于接收和发送网络数据包;TCP/IP模块,包括IP模块和上层协议模块,所述IP模块用于接收网络数据包转发至对应的上层模块并将来自上层模块的数据校验封装后发送给以太网模块;所述上层协议模块包括TOE模块,所述TOE模块包括通用TOE模块和镜像TOE模块,所述通用TOE模块发送和接收TCP数据,并完成TCP拥塞控制;所述镜像TOE模块用于对交换机镜像端口开发完成TCP数据的接收和重排,并将解析出的TCP数据传输给用户自定义加速模块;用户自定义加速模块,用于部署数据加速程序硬件,处理接收到的数据,将处理完的数据发送至TCP/IP模块或主机端;其中,所述CMAC模块、TCP/IP模块和用户自定义加速模块之间采用AXI4

Stream接口进行数据交互;所述主机端用于数据的读写、内存分配以及与所述FPGA之间的调度与管理。2.如权利要求1所述的一种基于FPGA的数据传输系统,其特征在于:所述以太网模块为10G/25G以太网模块,所述以太网模块在每个FPGA端单独配置;所述以太网模块通过GT引脚连接网络接口,与外部网络进行数据交互。3.如权利要求1所述的一种基于FPGA的数据传输系统,其特征在于:所述CMAC模块和所述TCP/IP模块之间通过AXI4

Stream接口相连,用于接收和发送网络数据包。4.如权利要求1所述的一种基于FPGA的数据传输系统,其特征在于:所述IP模块包括IP接收模块和IP发送模块;所述IP接收模块,接收来自以太网模块的网络数据包,判别协议类型,丢弃IP和ARP以外的网络数据包,同时将ARP数据包转发至ARP模块,对IP网络数据包进行首部校验和检查以及上层协议类型检查,将数据部分转发至对应上层模块;所述IP发送模块,对ARP和IP模块分开进行处理,计算IP帧的首部校验和,将数据部分与头部进行封装后发送给CMAC模块。5.如权利要求4所述的一种基于FPGA的数据传输系统,其特征在于:所述上协议层模块包括ARP模块、ICMP模块、UDP模块和所述TOE模块;所述ARP模块用于ARP请求及响应的发送和接收,ARP映射表放在存储单元内,同时保存128组映射关系,在发出ARP请求后,在映射表中保留500ms,若未收到ARP响应,则会被删除并标记为未答复的请求;所述ICMP模块用于接收和发送请求报文和回答报文,对接收到的ICMP帧进行校验和检测和计算,封装为回送回答报文,传输至IP发送部分;所述UDP模块用于接收和发送UDP协议报文,通过主机端来设置目的IP地址、目的端口和源端口,所述UDP模块接收UDP协议报文时,会进行校验和计算,同时支持64K可编程监听端口,对于无效数据报,则直接舍弃;所述模块UDP发送UDP协议...

【专利技术属性】
技术研发人员:柴志雷冯一飞叶均超赵海旭姜博文陈世海
申请(专利权)人:江南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1