一种基于FPGA的全栈网卡任务处理系统技术方案

技术编号:32818630 阅读:12 留言:0更新日期:2022-03-26 20:15
本发明专利技术涉及数据处理,尤其涉及一种基于FPGA的全栈网卡任务处理系统。所述系统包括:网络接口控制器,用于接收待处理数据,并通过内置的TCP卸载引擎将所述待处理数据中TCP/IP协议任务卸载得到第一处理数据;SSL/TLS协议处理模块,用于接收所述第一处理数据,并将所述第一处理数据中SSL/TLS协议任务卸载得到第二处理数据;PR区域,用于接收所述第二处理数据;重配置模块,用于通过主机获取所述PR区域的动态配置信息,并基于所述动态配置信息对所述PR区域进行配置以使所述PR区域卸载并处理所述第二处理数据中的计算密集型任务。所述系统充分利用FPGA资源,降低能耗,也大大节省了数据的处理时间。数据的处理时间。数据的处理时间。

【技术实现步骤摘要】
一种基于FPGA的全栈网卡任务处理系统


[0001]本专利技术涉及数据处理,尤其涉及一种基于FPGA的全栈网卡任务处理系统。

技术介绍

[0002]在各种网络发展日益成熟和壮大的今天,无论是工业生产还是日常生活,都会产生天量的数据,根据国际数据公司IDC(Internet Data Center)的统计显示,从2017年至2020年每年产生的数据量的增长率都在20%以上,预计到2025年,全球的数据量将比2016年的16.1ZB增加10倍,达到163ZB(Zettabyte ,十万亿亿字节)。大数据催生了云计算、边缘计算、异构计算等多种新型计算概念和设备的发展,一个行业在经历了前期快速扩张的发展阶段后,往往会暴露出一些更加深层次的问题和需求,例如安全性、灵活性、能效比等,这一点在各类网络数据交换中十分明显,数据在网络上进行收发所需要经过处理的协议层如图1所示。
[0003]以安全性为例,在低速互联网时期,人们开发了TCP/IP协议,该协议通过计算校验和等方式,为数据的正确性和完整性提供了简单的保障。此外,还开发了广为使用的SSL/TLS协议,作为传输层和应用层的中间协议,为应用数据提供进一步的保护,即通过对应用数据进行加解密计算、Hash计算等方式,保证数据的完整性和真实性。早期,通过在操作系统内置系统函数库来实现上述过程,即通过CPU来完成协议中的复杂计算。随着数据量的爆发式增长,以及各种大型数据中心的兴起,这种方式的缺点逐渐显现:占用大量CPU、能耗高、速度慢。
[0004]在目前广为使用的TCP/IP网络模型中,以基于FPGA芯片的高性能网卡为例,是通过HDL语言生成专用硬件电路来实现链路层至传输层的卸载工作(即TCP Offload EngineTCP卸载引擎,简称TOE),即使用硬件电路实现了协议中包含的各种计算密集型工作,释放CPU的计算能力,也避免CPU处理数据包时产生的大量跨区域I/O操作。通过这类网卡,应用程序可以直接处理应用数据,避免了操作系统的介入。目前市场上许多厂商都提供了基于FPGA的支持TOE的网卡。除了用于卸载物理层至传输层协议的TOE,许多FPGA厂商也单独提供了卸载TLS/SSL协议的卸载引擎,以提供该协议的硬件电路实现。以web服务中常见的HTTPs协议为例,HTTPs协议的运行过程实际上是将HTTP数据包进行加密后,封装在SSL/TLS协议的payload(有效载荷)中,然后作为新的应用层数据进行发送,其收发数据时的软件协议栈实现如图2所示。无论是什么网卡,物理层始终是由专用硬件电路完成的,对于FPGA来说,各个厂商基本上都免费提供了物理层的FPGA实现,因此,此处仅讨论链路层至应用层的数据传输。TOE负责网络层和传输层的任务卸载,SSL/TLS卸载引擎负责SSL/TLS协议的任务卸载。
[0005]通过上述介绍,可以发现目前的技术方案有如下缺点:

缺乏全栈性和系统性整合;虽然厂商提供了卸载各协议的FPGA硬件实现IP核,但是仍存在两个问题:一方面是对于实际应用中的计算密集型任务卸载不彻底,例如当原始应用数据本身是图片、压缩包等数据时,仍然需要通过软件来实现对这些数据的处理计算,即不够全栈性;另一方面,虽然各
个上游厂商提供了处理这些协议的FPGA实现,但是缺乏系统性的整合。

在全栈性的基础上,缺乏对自定义类型的原始应用数据的灵活卸载;目前大数据处理纷繁复杂,广泛使用的标准协议或数据格式并不能完全覆盖所有FPGA网卡使用者的需求。当FPGA网卡使用者所发送或接收的原始应用数据是自定义类型,且包含繁重的计算密集型任务时,则需要进一步对“原始应用数据”进行处理,得到“处理后的数据”。例如,在神经网络大行其道的今天,在FPGA中部署神经网络模型已经是常见的做法,而神经网络模型多种多样,如果能根据使用者的需求,动态的更新FPGA中的神经网络模型,并将SSL/TLS卸载引擎解密得到的数据,直接传递给FPGA中的神经网络模型进行处理,将会是十分有利的做法。

技术实现思路

[0006]有鉴于此,为了使FPGA网卡所要达到的目标是提供尽可能高的任务卸载能力,同时尽可能满足不同使用者的需求,也就是提供尽可能多的场景服务能力。一个服务提供商所具有的硬件设备始终是有限的,为了实现上述目标,需要一种方法来动态的满足FPGA网卡中数据处理的最后一站原始应用数据的处理,实现FPGA资源利用率、各类外围设备利用率等的最大化。本专利技术提供了一种基于FPGA的全栈网卡任务处理系统,所述系统包括:网络接口控制器,所述网络接口控制器用于接收待处理数据,并通过内置的TCP卸载引擎将所述待处理数据中TCP/IP协议任务卸载得到第一处理数据;SSL/TLS协议处理模块,所述SSL/TLS协议处理模块用于接收所述第一处理数据,并将所述第一处理数据中SSL/TLS协议任务卸载得到第二处理数据;PR区域,所述PR区域用于接收所述第二处理数据;其中,PR是指部分重配置即Partial Reconfiguration。
[0007]重配置模块,所述重配置模块用于通过主机获取所述PR区域的动态配置信息,并基于所述动态配置信息对所述PR区域进行配置以使所述PR区域卸载并处理所述第二处理数据中的计算密集型任务。
[0008]在一些实施例中,所述SSL/TLS协议处理模块包括第一仲裁模块、第二仲裁模块和多个并行于所述第一仲裁模块和所述第二仲裁模块之间的SSL/TLS引擎;所述第一仲裁模块用于从所述网络接口控制器接收所述第一处理数据,并根据各个SSL/TLS引擎反馈的状态信号将第一处理数据分发给空闲的SSL/TLS引擎执行SSL/TLS协议任务处理以生成第二处理数据;所述第二仲裁模块用于从各个SSL/TLS引擎获取所述第二处理数据并传递给所述PR区域。
[0009]在一些实施例中,所述SSL/TLS协议处理模块还包括与所述第一仲裁模块和所述第二仲裁模块均连接的FIFO存储器;所述第一仲裁模块还用于将本次执行SSL/TLS协议任务处理的SSL/TLS引擎编号写入所述FIFO存储器;以及所述第二仲裁模块还用于从所述FIFO存储器中读取SSL/TLS引擎编号,并从所述SSL/TLS引擎编号对应的SSL/TLS引擎中获取所述第二处理数据。
[0010]在一些实施例中,所述重配置模块包括PR IP核、DDR、DMA控制器和Checker;DMA控制器用于根据主机发送DMA描述符从主机的内存中获取重配置数据,并将所
述重配置数据存储到所述DDR中;以及DMA控制器还用于通过DDR控制器从DDR中取出所述重配置数据并发送给PR IP核,并在发送完成后向Checker发出中断信号;所述PR IP核基于所述重配置数据通过预设协议固定的端口对PR区域进行重配置编程;所述Checker用于读取所述PR IP核的预设寄存器以判断重配置是否成功,并将判断结果通过PCIe上报给主机。
[0011]在一些实施例中,所述PR IP核包括CRC模块和PR控制模块;所述CRC模块用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的全栈网卡任务处理系统,其特征在于,所述系统包括:网络接口控制器,所述网络接口控制器用于接收待处理数据,并通过内置的TCP卸载引擎将所述待处理数据中TCP/IP协议任务卸载得到第一处理数据;SSL/TLS协议处理模块,所述SSL/TLS协议处理模块用于接收所述第一处理数据,并将所述第一处理数据中SSL/TLS协议任务卸载得到第二处理数据;PR区域,所述PR区域用于接收所述第二处理数据;重配置模块,所述重配置模块用于通过主机获取所述PR区域的动态配置信息,并基于所述动态配置信息对所述PR区域进行配置以使所述PR区域卸载并处理所述第二处理数据中的计算密集型任务。2.根据权利要求1所述的系统,其特征在于,所述SSL/TLS协议处理模块包括第一仲裁模块、第二仲裁模块和多个并行于所述第一仲裁模块和所述第二仲裁模块之间的SSL/TLS引擎;所述第一仲裁模块用于从所述网络接口控制器接收所述第一处理数据,并根据各个SSL/TLS引擎反馈的状态信号将第一处理数据分发给空闲的SSL/TLS引擎执行SSL/TLS协议任务处理以生成第二处理数据;所述第二仲裁模块用于从各个SSL/TLS引擎获取所述第二处理数据并传递给所述PR区域。3.根据权利要求2所述的系统,其特征在于,所述SSL/TLS协议处理模块还包括与所述第一仲裁模块和所述第二仲裁模块均连接的FIFO存储器;所述第一仲裁模块还用于将本次执行SSL/TLS协议任务处理的SSL/TLS引擎编号写入所述FIFO存储器;以及所述第二仲裁模块还用于从所述FIFO存储器中读取SSL/TLS引擎...

【专利技术属性】
技术研发人员:肖麟阁郝锐阚宏伟
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1