一种基于fpga的多通道计算加速设备

文档序号:974731 发布日期:2020-11-03 浏览:11次 >En<

阅读说明:本技术 一种基于fpga的多通道计算加速设备 (Multichannel calculation accelerating equipment based on FPGA ) 是由 诸俊辉 刘一清 李俊伟 于 2020-07-06 设计创作,主要内容包括:本发明公开了一种基于FPGA的多通道计算加速设备,该设备包括:万兆以太网接口模块、光口数据收发模块、仲裁调度模块、运算加速模块、DDR4控制模块、后处理模块、监控模块、三速以太网接口模块、DDR4存储芯片、电源模块及时钟模块。本发明为了解决边缘计算应用中,硬件加速设备资源共享的问题。本发明包括了多个万兆以太网接口,可以同时接收来自多台服务器的数据。通过本发明的资源调度机制,为这些数据安排了计算顺序,从而可以使本发明的硬件运算加速资源被多台服务器共享,提高了资源利用率。(The invention discloses a multichannel calculation accelerating device based on FPGA, comprising: the device comprises a gigabit Ethernet interface module, an optical port data transceiver module, an arbitration scheduling module, an operation acceleration module, a DDR4 control module, a post-processing module, a monitoring module, a three-speed Ethernet interface module, a DDR4 memory chip, a power supply module and a clock module. The invention aims to solve the problem of resource sharing of hardware acceleration equipment in edge computing application. The invention comprises a plurality of gigabit Ethernet interfaces and can simultaneously receive data from a plurality of servers. Through the resource scheduling mechanism, the calculation sequence is arranged for the data, so that the hardware operation acceleration resource can be shared by a plurality of servers, and the resource utilization rate is improved.)

一种基于FPGA的多通道计算加速设备

技术领域

本发明涉及网络通信技术、硬件加速技术领域,专用于多台应用服务器运算加速的一种基于FPGA的多通道计算加速设备。

技术背景

随着大数据、人工智能等技术的发展,传统的以CPU为核心的计算设备已经不足以应对大数据量、高复杂度、低延时等计算要求。因此,市面上产生了许多以GPU为核心的显卡,或是以专用硬件芯片为核心的加速板卡设备。这些设备能够协助服务器完成复杂数据的计算工作,并且其内部结构比起CPU来说,能够更好的应对复杂计算,从而提高了计算效率,降低了计算延时且分担了服务器压力,极大地释放了服务器资源。

然而,在现有的硬件加速设备中仍存在一些不足,尤其是资源利用率方面的问题。当前的GPU显卡以及加速板卡等硬件加速设备大多只能安装在一台服务器上,专为这一台服务器提供硬件加速服务。在这种情况下,若此台服务器暂时处于空闲状态,没有数据计算的需求,那么硬件加速设备的利用率便大大降低,徒增了功耗且降低了使用效率。

发明内容

本发明的目的是为了解决边缘计算、人工智能、深度学习等应用中,硬件加速中传统的硬件加速设备(如硬件加速板卡或硬件加速棒)只能专用于一台服务器,使得计算资源只能被这一台服务器所使用的问题而提供的一种基于FPGA的多通道计算加速设备,该设备可以同时接收来自多台服务器的数据,通过资源调度机制,为这些数据安排了计算顺序,从而可以使本发明的硬件运算加速资源被多台服务器共享,提高了资源利用率。

实现本发明的具体技术方案是:

一种基于FPGA的多通道计算加速设备,特点是该设备包括万兆以太网接口模块、FPGA模块、三速以太网接口模块、DDR4存储芯片、电源模块及时钟模块,所述万兆以太网接口模块与FPGA模块及电源模块相连,用于接收服务器的原始运算数据及发送数据运算结果;

所述FPGA模块与万兆以太网接口模块、三速以太网接口模块、DDR4存储芯片、电源模块及时钟模块相连,接收来自万兆以太网接口模块的原始运算数据,通过仲裁调度算法,为原始运算数据安排计算顺序,对原始数据进行硬件加速运算,并将运算结果封装为网络数据包,发送至万兆以太网接口模块;所述FPGA模块还产生工作状态数据包,工作状态数据包包括:FPGA运算资源使用量、DDR4存储资源使用量及各万兆以太网端口的流量统计;

所述三速以太网接口模块与FPGA模块、电源模块及时钟模块相连,用于发送FPGA模块产生的工作状态数据包;

所述DDR4存储芯片与FPGA模块、电源模块及时钟模块相连,用于存储来自数台服务器的原始运算数据;

所述电源模块与FPGA模块、三速以太网接口模块、DDR4存储芯片及时钟模块相连,用于为各模块供电;

所述时钟模块与FPGA模块、三速以太网接口模块及DDR4存储芯片相连用于向各模块提供参考时钟。

所述万兆以太网接口模块与数台服务器进行数据通信,包括数个万兆通信端口,每一个万兆通信端口包括一个SFP+万兆光模块接口及一个光模块配置电路。

所述FPGA模块包括光口数据收发模块、仲裁调度模块、运算加速模块、DDR4控制模块、后处理模块及监控模块;

所述光口数据收发模块与万兆以太网接口模块、仲裁调度模块、后处理模块及监控模块相连,用于处理万兆以太网中的MAC层,将从万兆以太网接口模块中接收到的原始运算数据转换为六十四位位宽的AXI-Stream格式,为来自不同通信端口的数据添加端口标记,并发送给仲裁调度模块;所述光口数据收发模块还用于接收来自后处理模块的运算结果数据包,检查数据包的端口标记并发送至万兆以太网接口模块中端口标记所对应的端口;

所述仲裁调度模块与DDR4控制模块及运算加速模块相连,用于运算加速资源的分配及调度,仲裁调度模块通过仲裁算法从来自光口数据收发模块的原始运算数据及DDR4芯片中缓存的各个端口的原始运算数据中选择一个原始运算数据提交至运算加速模块进行运算;

所述运算加速模块与仲裁调度模块、后处理模块及监控模块相连,用于对数据进行硬件加速计算,得到数据运算结果;

所述DDR4控制模块与仲裁调度模块、DDR4存储芯片及监控模块相连,用于生成DDR4芯片的总线控制信号,完成DDR4芯片的数据存储及读取;DDR4控制模块将DDR4存储芯片分为了数个地址空间,对应万兆以太网接口模块中的数个通信端口;在每一个地址空间中建立了FIFO,用于存储来自对应通信端口的原始运算数据包;

所述后处理模块与运算加速模块及光口数据收发模块相连,决定运算加速的结果发送至哪一个端口,为运算结果添加端口标记,并封装成万兆以太网络数据包;

所述监控模块与千兆以太网接口模块、运算加速模块、光口数据收发模块及DDR4控制模块相连,用于统计FPGA运算资源使用量、DDR4存储资源使用量及各个万兆以太网端口的数据流量;将统计结果打包为工作状态数据包并发送至三速以太网接口模块。

所述三速以太网接口模块为监控端口,包括一个RJ45以太网插座以及PHY接口芯片,用于通过网线与外部监控设备连接,发送来自监控模块的工作状态数据包。

与现有技术相比,本发明的有益效果是:

(1)本设备包含多个数据传输端口,内部采用仲裁调度机制,可以为多台服务器提供硬件加速计算,实现计算加速资源的共享,大幅提高了计算加速资源的利用率,降低了多台服务器实现硬件加速的成本,提升了计算加速的经济效益。

(2)本设备采用多个万兆以太网接口,用于完成服务器与板卡之间的数据传输,每个接口数据通信速率高达10Gbps,提升了数据传输效率,确保了整个硬件加速过程的低延时。

(3)本设备采用FPGA作为核心芯片,具有强大的并行处理数据的能力,能够为数据计算提供更深层次的加速服务。

附图说明

图1为本发明实施例的结构框图;

图2为本发明实施例数据接收的工作流程图;

图3为本发明实施例数据处理的工作流程图;

图4为本发明连接应用系统的示意图。

具体实施方式

下面结合附图及实施例对本发明作详细描述。

实施例

参阅图1,本实施例包括:万兆以太网接口模块1、FPGA模块2、三速以太网接口模块3、DDR4存储芯片4、电源模块5及时钟模块6。

万兆以太网接口模块1分别与FPGA模块2及电源模块5相连。

FPGA模块2分别与万兆以太网接口模块1、三速以太网接口模块3、DDR4存储芯片4、电源模块5及时钟模块6相连。

三速以太网接口模块3分别与FPGA模块2、电源模块5及时钟模块6相连。

DDR4存储芯片4分别与电源模块5及时钟模块6相连。

电源模块5分别与万兆以太网接口模块1、FPGA模块2、三速以太网接口模块3、DDR4存储芯片4及时钟模块6相连。

时钟模块6分别与三速以太网接口模块3、FPGA模块2及DDR4存储芯片4相连。

本实施例的万兆以太网接口模块1接收服务器的原始运算数据及发送数据运算结果。可与十二台服务器进行数据通信,包括十二个万兆通信端口,依次为端口101,端口102,端口103,端口104,端口105,端口106,端口107,端口108,端口109,端口110,端口111及端口112。每一个通信万兆端口包括一个SFP+万兆光模块接口及一个光模块配置电路。

本实施例的FPGA模块2包括光口数据收发模块21、仲裁调度模块22、运算加速模块23、DDR4控制模块24、后处理模块25及监控模块26。光口数据收发模块21处理万兆以太网中的MAC层,将从万兆以太网接口模块1中接收到的数据转换为64位位宽的AXI-Stream格式,并发送给仲裁调度模块22。此外,光口数据收发模块21还接收后来自处理模块25的运算结果数据包,检查数据包的端口标记并发送至万兆以太网接口模块1中端口标记所对应的端口。仲裁调度模块22完成运算加速资源的分配及调度,其通过仲裁算法从光口数据收发模块21发送过来的原始运算数据及DDR4芯片4中缓存的各个端口的原始运算数据中选择一个作为执行数据发送至运算加速模块23进行运算。若来自光口数据收发模块21的数据没有被仲裁调度模块22选择为执行数据,则仲裁调度模块22会将该数据发送至DDR4控制模块24进行缓存。运算加速模块23用于对执行数据进行硬件加速计算,得到数据运算结果。DDR4控制模块24生成DDR4芯片4的总线控制信号,完成DDR4存储芯片4的数据存储及读取工作。DDR4控制模块24将DDR4存储芯片4分为了十二个地址空间,对应万兆以太网接口模块1中的十二个通信端口。在每一个地址空间中建立了FIFO,用于存储来自对应通信端口的原始运算数据包;后处理模块25负责决定运算加速的结果应该发送至哪一个端口,为运算结果添加端口标记并将结果封装成网络数据包。监控模块26统计FPGA模块2的运算资源使用量、DDR4存储芯片4的资源使用量及万兆以太网接口模块1中各个通信端口的数据流量;将统计结果打包为工作状态数据包并发送至三速以太网接口模块3。

三速以太网接口模块3包括一个RJ45以太网插座以及PHY接口芯片,为监控端口。用于通过网线与外部监控设备连接,发送来自监控模块26的工作状态数据包。

DDR4存储芯片用于缓存来自各个端口的等待处理的数据。

电源模块5用于为各个模块提供电源。

时钟模块6用于产生FPGA模块2、三速以太网模块3及DDR4存储芯片4所需要的时钟。

参阅图2及图3,本实施例是这样工作的,工作原理包括数据接收及数据处理两个部分,这两个部分同时进行:

上电后,在数据接收部分,光口数据收发模块21将监听万兆以太网接口模块1中各个通信端口,若任意通信端口接收到数据,将该数据添加端口标记,并转换为64bit AXI-Stream格式后发送至仲裁调度模块22。仲裁调度模块22检查当前计算状态是否为空闲状态,若为空闲状态,则将该数据交由运算加速模块23;若为忙碌状态,则将数据发送至DDR4控制模块24进行数据的存储工作。DDR4控制模块24根据端口标记,将数据存入DDR4存储芯片4中端口对应的FIFO之中。

在数据处理部分,仲裁调度模块22首先会将计算状态标记为空闲状态,之后不断通过DDR4控制模块24检查DDR4存储芯片4中的各端口对应的FIFO中是否存储有原始运算数据。若存在,首先将计算状态标记为忙绿状态,之后则通过仲裁调度算法决定该从DDR4存储芯片4中取出哪一个原始运算数据并将该数据交给运算加速模块23。仲裁调度算法是这样工作的:首先决定下一次计算哪一个端口的数据。下一次的端口为前一次计算数据的端口标记加一所对应的端口。如前一次计算的是端口102的数据,则下一次计算的为端口103的数据;前一次计算的数据为端口112的数据,下一次计算的数据为端口101。之后查看该端口对应的FIFO中是否存在原始运算数据,有则取出,交给运算加速模块23,如果为空则继续查看下一个端口对应的FIFO中是否有原始运算数据。若所有FIFO遍历一遍后,都为空,则将计算状态标记为空闲状态。在运算加速模块23中,FPGA会对原始运算数据进行加速运算,得到运算结果。运算结果在后处理模块25中被打包为万兆以太网网络数据包,根据该包数据的端口标记,光口数据收发模块21将运算结果数据包发送至万兆以太网接口模块1中的对应端口,以此将计算结果返还给对应的服务器。

参阅图4为本发明的连接应用系统示意图,其中P为本发明的多通道计算加速设备、S1至 SN(N最大取12)为应用服务器、F1至 FN(N最大取12)为光纤、M为监控设备、C为六类网线。多台应用服务器将原始运算数据通过光纤发送至本设备(最少支持一台应用服务器,最多支持十二台应用服务器),本设备为这些数据安排计算顺序,依次进行硬件加速计算,并将运算结果返还给对应的应用服务器。监控设备完成对本设备运行状态的监控。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于SONiC交换机实现错误回报的方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!