CN110069441A - 一种用于流计算的fpga网络及流计算系统与方法 - Google Patents
一种用于流计算的fpga网络及流计算系统与方法 Download PDFInfo
- Publication number
- CN110069441A CN110069441A CN201910216953.4A CN201910216953A CN110069441A CN 110069441 A CN110069441 A CN 110069441A CN 201910216953 A CN201910216953 A CN 201910216953A CN 110069441 A CN110069441 A CN 110069441A
- Authority
- CN
- China
- Prior art keywords
- fpga
- network
- data
- computing
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 title claims description 22
- 238000012545 processing Methods 0.000 claims abstract description 58
- 238000004891 communication Methods 0.000 claims abstract description 40
- 230000005540 biological transmission Effects 0.000 claims abstract description 29
- 238000005538 encapsulation Methods 0.000 claims description 4
- 230000008901 benefit Effects 0.000 abstract description 4
- 239000010410 layer Substances 0.000 description 23
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 2
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种用于流计算的FPGA网络,该FPGA网络由多个FPGA通信连接而成,用于处理用户数据以获取处理结果,其中该FPGA包括:计算逻辑单元组模块,用于进行数据处理以获得中间结果;控制逻辑模块,用于将用户数据传输给该计算逻辑单元组模块,并根据路由表,将该中间结果传输至下一个FPGA,或将该中间结果作为处理结果传输至该FPGA网络出口;通信模块,用于进行该FPGA的外部数据传输。本发明采用软硬件相互协同的方式进行工作,可以充分发挖掘大数据计算数据流中的并行成分,发挥FPGA高并行度的计算优势,大大降低流计算的计算延迟,提高推荐系统、计算广告等大数据应用事务的反馈速度。
Description
技术领域
本发明涉及大数据计算技术领域,特别涉及一种流计算加速方法及系统。
背景技术
流计算是一种分布式的大数据计算模式,在流计算中,无法确定数据到来的时间和它们到来的顺序,也无法将这些数据全部存储起来,而需要对数据进行实时的分析和处理。流计算模式需要流计算框架的支持(如Apache Storm),一个应用通常会分成多个计算组件,并分布在若干台的服务器中,构成一个相对固定的拓扑结构,数据通过网络在组件之间流动,在大数据时代,数据往往以流式数据的形式呈现出来,像计算广告、舆情分析和推荐系统等大数据应用,在用户使用过程中需要实时对用户的行为进行分析和判断,并根据判断结果做出实时的反应。以推荐系统为例,当用户点击某一种商品或者在某一商品的网页上停留时间较长时,浏览器会将用户的这一动作上传给数据中心的流计算系统,然后根据用户画像、历史数据等信息对用户的行为进行分析,根据分析结果将相应的产品显示给用户,供用户选取。为了能对大量用户的行为进行实时分析处理,以诱使用户购买更多的商品或服务,低延迟和高并发度是各种流计算系统的重要特点。随着越来越多的实时性要求较高的应用部署在流计算系统中,以及用户群体的增加、业务复杂度的增长和延迟要求的进一步降低,流计算框架的设计面临若干的挑战。
传统的流计算框架一般采用纯软件的方式实现,并运行于基于CPU的标准服务器上,同一个流式应用的若干组件之间通过以太网实现数据的交互,这种方式虽然具有编程容易、实现简单等优势,但是在延迟、并行度和功耗等方面有很大的不足。首先,在延迟方面,像计算广告、舆情分析等流式应用的每个组件的计算通常很简单,而运行于不同服务器中的计算组件之间的通信必须经过服务器TCP/IP协议栈的处理,需要大量的时间,通信延迟成为流式处理,系统延迟的最主要部分。其次,在并行度方面,当前的流计算系统需要同时处理几百万甚至数千万个请求,而CPU通常只有有限几个处理核心,其并行度只能通过增加服务器的数量来提升,极大增加了成本支出。最后,在功耗方面,复杂的通信协议在处理过程消耗了大量的处理器周期,而CPU并行度低的缺点意味着必须增加了处理器的数量来提高性能,这都增加了流式处理系统的总体能耗。
中国发明专利申请“可适应多种数据流计算模式的动态可重构系统及运作方法”(公开号CN103218345A),公开了一种可适应多种数据流计算模式的动态可重构系统及运作方法,该系统通过嵌入式微处理器可对各可重构处理单元的功能和互联结构进行动态配置,以适应多种数据流计算模式;但该发明申请的系统模型用到了嵌入式处理器和配置控制器等模块,增加了系统的复杂性,同时,该系统只针对单个的FPGA,并没有涉及到FPGA网络中的流计算。中国发明专利申请“一种高效FPGA技术映射算法”(公开号CN105488285A),公开了一种高效FPGA技术映射算法,将技术映射划分为逻辑优化与结构优化,逻辑优化部分采用AIG模型以及balance、rewrite以及refactor等技术对电路进行优化;结构优化部分采用DAG模型;但该发明申请只是将算法映射为FPGA硬件电路,并没有提出解决流计算具体问题的方法。
发明内容
本发明的目的是克服上述现有技术中流计算能耗高、通讯延迟等缺陷,提出了一种基于FPGA网络的流计算系统及方法,以FPGA网络为基础,利用软硬件相互协同的方式进行工作,以降低流式计算的计算延迟,提高大数据应用事务的反馈速度。
具体来说,本发明提出一种用于流计算的FPGA网络,由多个FPGA通信连接而成,通过处理用户数据以获取处理结果,其中该FPGA包括:计算逻辑单元组模块,用于进行数据处理以获得中间结果;控制逻辑模块,用于将用户数据传输给该计算逻辑单元组模块,并根据路由表,将该中间结果传输至下一个FPGA,或将该中间结果作为处理结果传输至该FPGA网络出口;通信模块,用于进行该FPGA的外部数据传输。
本发明所述的FPGA网络,其中每个该计算逻辑单元组模块包括至少一个计算组件,由该控制逻辑模块将该用户数据分配给该计算组件。
本发明所述的FPGA网络,其中该FPGA网络还包括端口物理层,用于FPGA之间的数据传输。
本发明所述的FPGA网络,其中该通信模块包括:网络通信协议栈,用于实现FPGA之间的数据通信;MAC模块,与该端口物理层通信连接,用于FPGA之间数据传输中数据帧的封装、卸装、寻址、识别、接收和发送,以及数据帧传输链路管理和数据帧差错控制。
本发明所述的FPGA网络,其中该网络通信协议栈为硬件结构,包括物理层、网络层和数据链路层。
本发明所述的FPGA网络,其中该数据帧的结构依次包括:目的MAC地址、源MAC地址、数据类型、数据负载和帧校验序列。
本发明所述的FPGA网络,其中该FPGA网络为二维网格网络或三维网格网络。
本发明还提出一种流计算系统,包括:FPGA网络,用于对用户数据进行处理以得到处理结果;入口服务器,与外部网络连接,用于接收用户的事务请求,获取该用户数据,并将该用户数据分配给该FPGA网络;出口服务器,与外部网络连接,用于将该FPGA网络获得的处理结果封装后,发送给该用户;控制模块,与该入口服务器、该出口服务器和该FPGA网络通信连接,用于配置该FPGA网络中每个FPGA的路由表,并控制该入口服务器对该用户数据进行分配,及控制该出口服务器将该处理结果发送给该用户。
本发明还提出一种流计算方法,包括:分析用户事务特征,确定事务类型;根据该事务类型配置FPGA网络拓扑结构,确定流计算中数据流的转发顺序;配置该FPGA网络中每个FPGA的路由表;获取用户数据,进行流计算,并将处理结果发送给用户。
本发明所述的流计算方法,其中通过下载计算组件至对应FPGA,构建该FPGA的计算逻辑单元组模块,以配置FPGA网络拓扑结构。
本发明采用FPGA加速流式处理组件,将流式处理系统的核心操作通过硬件逻辑的方式映射到FPGA中,并通过FPGA中的轻量级通信协议接口实现多FPGA之间的直接通信,从而降低流式计算部件之间的通信延迟;在软件结构中,通过统一的编程接口和流量分配方式,实现流式计算框架的负载均衡等操作。经原型系统和模拟实验验证,该计算系统可以大幅度降低流式计算部件之间的数据交互延迟,在选取的测试模型中可以取得7.89倍的加速效果,处理延迟只有处理器系统的1/11。
附图说明
图1是本发明的流计算系统框架示意图。
图2是本发明的FPGA结构示意图。
图3是本发明的网络通信协议栈原理示意图。
图4是本发明的数据帧结构示意图。
图5是本发明的流计算方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明提出的用于流计算的FPGA网络及流计算系统与方法进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本发明,并不用于限定本发明。
发明人在进行流计算研究时,发现现有技术中该项缺陷一方面由于传统的CPU在高并行度计算问题处理能力不足并且功耗较高以及TCP/IP网络传输协议太过厚重导致的,发明人经过对流计算的计算数据流以及FPGA计算网络的研究发现,解决该项缺陷可以通过用设计一种基于FPGA的流计算加速框架来实现。该流计算加速框架包括硬件和软件两部分。在硬件部分,FPGA作为最为核心的处理单元,可以通过定制的方式来硬件实现流计算的各个组件,同时利用FPGA中定义的众多计算部件并行处理大量的事务请求;系统中的若干FPGA通过直连网络和轻量级的硬件协议栈完成组件之间的数据交互操作,数据的交互过程完全不需要软件协议栈的参与,从而大大降低了事务的处理延迟。在软件方面,通过统一的软件系统完成若干FPGA之间的协调和网络拓扑的重配操作,用来完成业务的重配和流量的调度。这种基于FPGA的流计算加速框架利用软硬件相互协同的方式进行工作,它可以充分发挖掘大数据计算数据流中的并行成分,发挥FPGA高并行度的计算优势,大大降低流计算的计算延迟,这样可以提高推荐系统、计算广告等大数据应用事务的反馈速度。
本发明提出一种用于流计算的FPGA网络,是由多个FPGA通信连接而成二维网格网络或三维网格网络,通过处理用户数据以获取处理结果,其中FPGA包括:计算逻辑单元组模块,用于进行数据处理以获得中间结果;控制逻辑模块,用于将用户数据传输给计算逻辑单元组模块,并根据路由表,将中间结果传输至下一个FPGA,或将中间结果作为处理结果传输至FPGA网络的出口;通信模块,用于进行FPGA的外部数据传输。
其中,每个计算逻辑单元组模块包括至少一个计算组件,由控制逻辑模块将用户数据分配给计算组件;通信模块包括:硬件结构的网络通信协议栈,包括物理层、网络层和数据链路层,用于实现FPGA之间的数据通信;MAC模块,与FPGA网络的端口物理层通信连接,用于FPGA之间数据传输中数据帧的封装、卸装、寻址、识别、接收和发送,以及数据帧传输链路管理和数据帧差错控制;数据帧的结构依次包括:目的MAC地址、源MAC地址、数据类型、数据负载和帧校验序列。
本发明还提出一种流计算系统,包括:FPGA网络,用于对用户数据进行处理以得到处理结果;入口服务器,与外部网络连接,用于接收用户的事务请求,获取用户数据,并将用户数据分配给FPGA网络;出口服务器,与外部网络连接,用于将FPGA网络获得的处理结果封装后,发送给用户;控制模块,与入口服务器、出口服务器和FPGA网络通信连接,用于配置FPGA网络中每个FPGA的路由表,并控制入口服务器对用户数据进行分配,及控制出口服务器将处理结果发送给用户。
本发明还提出一种流计算方法,包括:分析用户事务特征,确定事务类型;根据该事务类型配置FPGA网络拓扑结构,确定流计算中数据流的转发顺序;配置该FPGA网络中每个FPGA的路由表;获取用户数据,进行流计算,并将处理结果发送给用户;其中通过下载计算组件至对应FPGA,构建该FPGA的计算逻辑单元组模块,以配置FPGA网络拓扑结构。
本发明的目的是克服现有技术的延迟高、功耗大问题,提出一种基于FPGA网络的流计算框架,包括硬件和软件两部分组成。
在硬件部分,FPGA作为计算引擎最为核心的处理单元,可以通过定制的方式来硬件实现流计算的各个组件,同时利用FPGA中定义的众多计算部件并行处理大量的事务请求;系统中的若干FPGA通过直连网络和轻量级的硬件协议栈完成组件之间的数据交互操作,数据的交互过程完全不需要软件协议栈的参与,从而大大降低了事务的处理延迟。在软件方面,通过统一的软件系统完成若干FPGA之间的协调和网络拓扑的重配操作,用来完成业务的重配和流量的调度。
所述的硬件加速引擎具体是指,将流计算中的各种计算组件单元映射为具体的硬件模块,完成相应组件的计算功能。简而言之就是将原本CPU进行的计算,改为专用的硬件来完成。由于FPGA中拥有丰厚的资源,因此在一个FPGA上我们可以定义大量的相同组件来实现并行计算,充分发挥FPGA高度的并行性来减低计算延迟,提高计算效率。
所述的直连网络,指的是由FPGA通过以太网相互连接所组成的网络,随着电子工艺的不断发展,FPGA中可以集成的可编程资源越来越多,但是,单块FPGA中的资源还是有限的,在数据量及其庞大的时候,单块FPGA上的资源往往是不够的,如果将多块FPGA用网络连接起来组成分布式的计算平台,那么系统可以使用所有FPGA上的资源,这将会大大提高计算系统处理问题的能力。
所述的轻量级的硬件协议栈,是指在FPGA直连网络中该发明自主定义的一种轻量级的硬件网络通信协议栈。在最为常用的以太网通信中,网络通信需要依靠多个层次的网络协议的支持,当运行于两台不同的服务器上的组件要传输数据时,它首先需要将数据从应用层复制到核心层的TCP/IP协议栈,并由协议栈增加TCP包头、IP包头,然后将IP包通过DMA发送到网卡中,由网卡传输到对端;为了保证数据安全可靠的传输到对端,需要复杂的协议完成可靠性保证;由于采用纯软件的协议处理,不仅延迟高,而且消耗了大量的处理器时间。该发明中的网络通信协议栈则是用硬件的方式实现,并且去掉了传统网络ISO模型中的上面几层,保留网络层、数据链路层、物理层。网络通信协议是轻量级的(层数较少)并且是由硬件电路实现的(实现流水线后每个时钟周期产生一个计算结果),因此数据传输的延迟将被大大降低,完全满足大规模数据运算所需的低延迟和高速率要求。
所述的软件系统,是指该平台的软件部分。该发明的控制软件是流式处理系统的计算、网络的控制中枢,其在任务部署阶段完成流计算组件的部署和网络拓扑的构建,并通过配置数据流表来完成流量的转发操作。控制软件会根据应用的逻辑拓扑对每个FPGA中的路由转发表进行修改,以便组件之间的数据包按照预定义的方式转发。
上述的FPGA的路由转发表记录了FPGA中计算流量的转发路径。在本发明公布的流计算平台中,每个FPGA作为流计算中的一环类似于Storm中的一个bolt组件,在完成自己的计算后通过网络将中间结果转发至下一级运算部件中,而路由转发表则记录了应当转移到的运算部件。该路由转移表是由系统控制软件根据应用的不同具体定义的。
图1是本发明的流计算系统框架示意图。如图1所示,具体来说,整个流计算系统从结构上由四部分组成,分别为入口服务器、FPGA网络(FPGA计算引擎)、出口服务器和控制模块。
当流计算系统侦测到用户发起的行为时,首先将用户行为作为用户事务传输给入口服务器,由入口服务器控制进行进一步的事务分发。在本发明中入口服务器是流计算系统的入口,通过以太网连接到外部网络中,主要负责接收用户的事务请求并将事务请求中的用户数据分发给FPGA网络进行处理。
FPGA计算引擎是流计算系统的核心部分,是一个由若干FPGA通过直连网络连接而成的计算网络。该计算引擎利用FPGA内部的可重构逻辑和硬核计算资源完成流计算组件配置和计算任务;若干的FPGA之间通过二维网格网络(2D mesh)或者三维网格网络(3D mesh)拓扑直接相连,由自定义的网络通信协议栈完成计算组件之间的数据传输,整个传输过程不需要软件的参与。
出口服务器是流计算系统的出口部分,它连接到流计算系统外部的以太网,将FPGA计算引擎得到的处理结果进行封装,并向用户进行计算结果的反馈,从而完成一个事务请求。
控制模块是流计算系统进行数据处理和网络控制的中枢,其在任务部署阶段完成流计算组件的部署和网络拓扑的构建,并通过配置路由表来完成数据流的转发操作。
在流计算系统运行前,由用户使用可综合的高层编程语言完成各个FPGA的计算逻辑单元组模块设计,使用FPGA的工具链综合成可下载的比特文件,并将若干计算组件下载到对应的FPGA中;控制模块根据应用的逻辑拓扑对每个FPGA中的路由表进行修改,以便FPGA之间的数据流按照预定义的方式转发。在运行过程中,用户数据被封装成为数据流传输到入口服务器,由入口服务器根据用户事务相应的类型分配给FPGA计算引擎中若干FPGA的计算逻辑单元组模块进行处理;一个FPGA完成计算任务后,通过FPGA中内置的网络通信协议栈将中间结果发送到下一个FPGA中的计算逻辑单元组模块中处理;当最后一个FPGA完成处理之后,将得到的中间结果作为处理结果传输给出口服务器,由出口服务器将结果输出给用户或其它处理系统。
图2是本发明的FPGA结构示意图。如图2所示,在每个FPGA中,主要包括4大功能性模块,分别是计算逻辑单元组模块,控制逻辑模块,LTL(轻量级网络通信协议栈)模块以及MAC模块。为了实现网络互联的功能,每个FPGA还将会挂载一个FPGA网络中的端口物理层(PHY)。
在FPGA中,数据处理被映射为一系列的硬件计算电路,每种计算电路可以完成特定的计算功能,由此组成计算逻辑单元组模块。FPGA中的这种实现方式,几乎为每种不同的数据处理都设计了一种硬件计算电路,相比较传统的通用CPU来说略显的复杂与繁琐,但是对流计算中对大量的相同并且简单的运算来说则是十分高效的。FPGA计算逻辑单元组模块采用流水线技术来设计,当高速的数据流量使得流水线满负载工作时,意味着在FPGA的每个时钟周期内,都会产生一个计算结果。同时由于FPGA结构的特点,可以实现高度的并行性计算,换言之,FPGA的计算平台能够以一种比较低的主频使得计算性能超越传统的CPU。
FPGA中的资源分配与任务管理依靠控制逻辑模块来实现。该控制逻辑模块会协调另外三个模块的工作,它会根据计算任务,将接收到的数据分配到计算逻辑单元组模块中完成计算。同时,将计算完成的数据通过由轻量级的网络通信协议栈(LTL)和MAC模块通过PHY传输到下一层FPGA。
LTL模块和MAC模块是FPGA网络的通信模块部分,基于FPGA自身可定制的结构特点,通过编程定制可以轻松地由PHY接入到以太网中,同时不必像PC机那样需要加载OSI完整的七层模型。FPGA可以根据需求灵活的定义自己的通信协议。因此在FPGA中可以使用LTL协议,这将大大降低网络传输的延迟,会对流计算系统起到进一步的加速作用。MAC模块的主要功能包括数据帧的封装/卸装,数据帧的寻址和识别,数据帧的接收与发送,数据链路的管理,数据帧的差错控制等,MAC子层的存在屏蔽了不同物理链路种类的差异性,可以说网络传输到了MAC层就已经是一个可靠的传输了。物理层PHY,在本发明中不在FPGA中进行定制实现而是采用外接的PHY,这样做一方面是因为市场上存在十分成熟的PHY芯片,另一方面可以不占用FPGA的资源。
图3是本发明的网络通信协议栈原理示意图。如图3所示。FPGA之间的以太网通信使用LTL实现。LTL通过发送和接受连接表来实现有序可靠的连接。每当FPGA与网络中其他的FPGA建立以太网连接的时候,在发送或者接收的连接表中就会有相应的记录。这种连接一般来说是可靠的并且是持久的。可靠的消息传递可以减少通信延迟延迟。LTL通过基于ACK/NACK的重传方案提供了强大的可靠性保证。在Unack的帧队列中缓冲和跟踪传出的数据包,直到接收器确认它们的接收为止(参见图3中的Ack生成器和Ack接收器)。超过一定的时间会触发重传Unacked的数据包。在某些情况下,例如当检测到数据包重新排序时,NACK用于请求及时重传而不等待超时。超时也可用于识别那些连接失败的计算节点从而会重新配置网络,保证计算的正确进行。超时触发的阈值是可以配置的。
其中发送和接收的缓存(Buffer)采用FIFO(First Input First Output,先入先出模式)来实现。在发送端,当发送状态机的发送控制逻辑检测到发送Buffer中存有一定量的数据并且达到了组成一个数据包的数据量的时候,发送状态机触发发送程序,将FIFO中的数据封装成以太网帧的格式传送给MAC层。当发送FIFO中数据量不足的时候,发送状态机将会停止数据的发送。在接收端,接收状态机会检查接收Buffer(FIFO)中的剩余空间,当FIFO中的剩余空间小于一定的阈值的时候(一般来说设置为FIFO总大小的三分之一),接受状态机会发送信号给MAC终止网络数据的传输过程。
在实际的以太网传输的过程中,发生丢包的情况并不经常发生,绝大多数的情况下接收端接收到的数据都是正确的。这里设置错误重传的机制可以说是为错误买了“保险”,真实情况下系统启动重传机制的情况并不多,因此采用FPGA实现流计算网络,在多数的时间网络传输系统会以满负荷进行工作,数据吞吐量十分巨大,传输效率很高。
图4是本发明的数据帧结构示意图。如图4所示,数据帧(MAC帧)结构主要包括五部分,分别是目的地址,源地址,数据帧的类型,有效数据负载以及FCS检测(采用CRC的方式)。发送数据时,信息被处理成MAC帧的格式传送给物理层,在接收数据时,物理层将以太网中的编码数据解码为MAC帧的形式行发送给FPGA中MAC模块,MAC模块接收到MAC帧的信息后首先判断目的地址是否为自己,如果是则接收,如果不是那么将信息丢弃并通知主机发送错误。接收到MAC帧后会解析出有效的数据信息,随后提取FCS部分的错误校验信息,根据错误校验部分提供的正确信息的特征来检验信息是否出错,如果信息正确,这个有效信息会被提取出来存入数据缓存(Data Buffer)接收区中。若出现丢包或者错误,则丢弃信息通知主机重新发送。错误检验采用CRC(循环冗余校验码)的校验方法。CRC生成的数字在传输或者存储之前计算出来并且附加到数据后面,然后接收方进行检验CRC部分确定数据是否发生变化。
图5是本发明的流计算方法流程图。如图5所示,本发明的流计算系统应用于具体的用户事务的时候,控制模块首先会分析用户事务的特征,确定该用户事务的具体类型。根据用户事务的具体类型,控制模块会配置FPGA计算引擎的拓扑结构,确定流计算的基本结构。随后,控制模块根据确定的拓扑结构为每个FPGA配置路由表,FPGA会根据配置的路由表确定计算流量的转移方向。当整个FPGA网络的数据处理完成之后,控制模块会接收FPGA网络产生的处理结果并将结果反馈给用户。
具体来说,本发明的流计算方法包括:
步骤S1,分析用户事务特征,确定事务类型;
步骤S2,根据该事务类型配置FPGA网络拓扑结构;通过下载计算组件至对应FPGA,构建该FPGA的计算逻辑单元组模块;
步骤S3,确定流计算中数据流的转发顺序;
步骤S4,配置该FPGA网络中每个FPGA的路由表;
步骤S5,获取用户数据,进行流计算,并将处理结果发送给用户。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。
Claims (10)
1.一种用于流计算的FPGA网络,其特征在于,该FPGA网络由多个FPGA通信连接而成,通过处理用户数据以获取处理结果,该FPGA包括:
计算逻辑单元组模块,用于进行数据处理以获得中间结果;
控制逻辑模块,用于将用户数据传输给该计算逻辑单元组模块,并根据路由表,将该中间结果传输至下一个FPGA,或将该中间结果作为处理结果传输至该FPGA网络出口;
通信模块,用于进行该FPGA的外部数据传输。
2.如权利要求1所述的FPGA网络,其特征在于,每个该计算逻辑单元组模块包括至少一个计算组件,由该控制逻辑模块将该用户数据分配给该计算组件。
3.如权利要求1所述的FPGA网络,其特征在于,该FPGA网络还包括端口物理层,用于FPGA之间的数据传输。
4.如权利要求3所述的FPGA网络,其特征在于,该通信模块包括:
网络通信协议栈,用于实现FPGA之间的数据通信;
MAC模块,与该端口物理层通信连接,用于FPGA之间数据传输中数据帧的封装、卸装、寻址、识别、接收和发送,以及数据帧传输链路管理和数据帧差错控制。
5.如权利要求4所述的FPGA网络,其特征在于,该网络通信协议栈为硬件结构,包括物理层、网络层和数据链路层。
6.如权利要求4所述的FPGA网络,其特征在于,该数据帧的结构依次包括:目的MAC地址、源MAC地址、数据类型、数据负载和帧校验序列。
7.如权利要求1所述的FPGA网络,其特征在于,该FPGA网络为二维网格网络或三维网格网络。
8.一种流计算系统,其特征在于,包括:
如权利要求1~7任一项所述的FPGA网络,用于对用户数据进行处理以得到处理结果;
入口服务器,与外部网络连接,用于接收用户的事务请求,获取该用户数据,并将该用户数据分配给该FPGA网络;
出口服务器,与外部网络连接,用于将该FPGA网络获得的处理结果封装后,发送给该用户;
控制模块,与该入口服务器、该出口服务器和该FPGA网络通信连接,用于配置该FPGA网络中每个FPGA的路由表,并控制该入口服务器对该用户数据进行分配,及控制该出口服务器将该处理结果发送给该用户。
9.一种流计算方法,采用如权利要求8所述的流计算系统进行流计算,其特征在于,该方法包括:
分析用户事务特征,确定事务类型;
根据该事务类型配置FPGA网络拓扑结构;
确定流计算中数据流的转发顺序;
配置该FPGA网络中每个FPGA的路由表;
获取用户数据,进行流计算,并将处理结果发送给用户。
10.如权利要求9所述的流计算方法,其特征在于,通过下载计算组件至对应FPGA,构建该FPGA的计算逻辑单元组模块,以配置FPGA网络拓扑结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910216953.4A CN110069441A (zh) | 2019-03-21 | 2019-03-21 | 一种用于流计算的fpga网络及流计算系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910216953.4A CN110069441A (zh) | 2019-03-21 | 2019-03-21 | 一种用于流计算的fpga网络及流计算系统与方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110069441A true CN110069441A (zh) | 2019-07-30 |
Family
ID=67366454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910216953.4A Pending CN110069441A (zh) | 2019-03-21 | 2019-03-21 | 一种用于流计算的fpga网络及流计算系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069441A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990059A (zh) * | 2019-11-28 | 2020-04-10 | 中国科学院计算技术研究所 | 一种用于倾斜数据的流式计算引擎运行方法及系统 |
CN111740847A (zh) * | 2020-08-24 | 2020-10-02 | 常州楠菲微电子有限公司 | 一种基于fpga的高速网络数据传输系统及方法 |
CN111984328A (zh) * | 2020-04-30 | 2020-11-24 | 中科院计算所西部高等技术研究院 | 具有ooda循环分区机制的流式处理器 |
CN112084016A (zh) * | 2020-07-27 | 2020-12-15 | 北京明略软件系统有限公司 | 一种基于flink的流计算性能优化系统及方法 |
CN112202899A (zh) * | 2020-09-30 | 2021-01-08 | 北京百度网讯科技有限公司 | 用于工作流的处理方法、装置、智能工作站和电子设备 |
CN112486895A (zh) * | 2019-09-12 | 2021-03-12 | 阿里巴巴集团控股有限公司 | 一种fpga芯片及其互联控制方法 |
CN112579300A (zh) * | 2020-12-28 | 2021-03-30 | 云南电网有限责任公司电力科学研究院 | 一种面向终端的电力网络火灾监控识别方法 |
CN112579511A (zh) * | 2020-12-19 | 2021-03-30 | 南京理工大学 | 一种新型流式大数据平台硬件架构及其实现方法 |
WO2021155642A1 (zh) * | 2020-02-05 | 2021-08-12 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、分布式数据流编程框架及相关组件 |
CN114297962A (zh) * | 2021-12-08 | 2022-04-08 | 北京轩宇信息技术有限公司 | 一种自适应接口fpga软硬件协同仿真加速系统 |
CN115291898A (zh) * | 2022-08-03 | 2022-11-04 | 江苏新质信息科技有限公司 | 一种多fpga从模式快速烧录方法及装置 |
WO2023093043A1 (zh) * | 2021-11-26 | 2023-06-01 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、装置及介质 |
-
2019
- 2019-03-21 CN CN201910216953.4A patent/CN110069441A/zh active Pending
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486895B (zh) * | 2019-09-12 | 2024-01-09 | 阿里巴巴集团控股有限公司 | 一种fpga芯片及其互联控制方法 |
CN112486895A (zh) * | 2019-09-12 | 2021-03-12 | 阿里巴巴集团控股有限公司 | 一种fpga芯片及其互联控制方法 |
CN110990059A (zh) * | 2019-11-28 | 2020-04-10 | 中国科学院计算技术研究所 | 一种用于倾斜数据的流式计算引擎运行方法及系统 |
CN110990059B (zh) * | 2019-11-28 | 2021-11-19 | 中国科学院计算技术研究所 | 一种用于倾斜数据的流式计算引擎运行方法及系统 |
WO2021155642A1 (zh) * | 2020-02-05 | 2021-08-12 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、分布式数据流编程框架及相关组件 |
JP7400105B2 (ja) | 2020-02-05 | 2023-12-18 | ▲蘇▼州浪潮智能科技有限公司 | データ処理方法、装置、分散型データフロープログラミングフレームワーク及び関連コンポーネント |
JP2022549527A (ja) * | 2020-02-05 | 2022-11-25 | ▲蘇▼州浪潮智能科技有限公司 | データ処理方法、装置、分散型データフロープログラミングフレームワーク及び関連コンポーネント |
CN111984328B (zh) * | 2020-04-30 | 2023-01-20 | 中科院计算所西部高等技术研究院 | 具有ooda循环分区机制的流式处理器 |
CN111984328A (zh) * | 2020-04-30 | 2020-11-24 | 中科院计算所西部高等技术研究院 | 具有ooda循环分区机制的流式处理器 |
CN112084016A (zh) * | 2020-07-27 | 2020-12-15 | 北京明略软件系统有限公司 | 一种基于flink的流计算性能优化系统及方法 |
CN112084016B (zh) * | 2020-07-27 | 2024-02-23 | 北京明略软件系统有限公司 | 一种基于flink的流计算性能优化系统及方法 |
CN111740847A (zh) * | 2020-08-24 | 2020-10-02 | 常州楠菲微电子有限公司 | 一种基于fpga的高速网络数据传输系统及方法 |
CN111740847B (zh) * | 2020-08-24 | 2020-12-11 | 常州楠菲微电子有限公司 | 一种基于fpga的高速网络数据传输系统及方法 |
CN112202899A (zh) * | 2020-09-30 | 2021-01-08 | 北京百度网讯科技有限公司 | 用于工作流的处理方法、装置、智能工作站和电子设备 |
CN112202899B (zh) * | 2020-09-30 | 2022-10-25 | 北京百度网讯科技有限公司 | 用于工作流的处理方法、装置、智能工作站和电子设备 |
CN112579511A (zh) * | 2020-12-19 | 2021-03-30 | 南京理工大学 | 一种新型流式大数据平台硬件架构及其实现方法 |
CN112579300A (zh) * | 2020-12-28 | 2021-03-30 | 云南电网有限责任公司电力科学研究院 | 一种面向终端的电力网络火灾监控识别方法 |
CN112579300B (zh) * | 2020-12-28 | 2024-08-20 | 云南电网有限责任公司电力科学研究院 | 一种面向终端的电力网络火灾监控识别方法 |
WO2023093043A1 (zh) * | 2021-11-26 | 2023-06-01 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、装置及介质 |
CN114297962A (zh) * | 2021-12-08 | 2022-04-08 | 北京轩宇信息技术有限公司 | 一种自适应接口fpga软硬件协同仿真加速系统 |
CN115291898B (zh) * | 2022-08-03 | 2023-11-10 | 江苏新质信息科技有限公司 | 一种多fpga从模式快速烧录方法及装置 |
CN115291898A (zh) * | 2022-08-03 | 2022-11-04 | 江苏新质信息科技有限公司 | 一种多fpga从模式快速烧录方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069441A (zh) | 一种用于流计算的fpga网络及流计算系统与方法 | |
CN110915173B (zh) | 用于计算节点和存储节点的数据处理单元 | |
US10574592B2 (en) | Compute-communicate continuum technology | |
CN109089029B (zh) | 一种基于FPGA的Gige Vision接口图像传输系统与方法 | |
CN114138707B (zh) | 一种基于fpga的数据传输系统 | |
CN108462642B (zh) | 基于fpga的udp/ip硬件协议栈及实现方法 | |
CN102185833B (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN103618673A (zh) | 一种保障服务质量的片上网络路由方法 | |
Correa et al. | Ultra-low latency communication channels for FPGA-based HPC cluster | |
EP3563535B1 (en) | Transmission of messages by acceleration components configured to accelerate a service | |
US9203895B1 (en) | System and method for lateral connection between interface devices with bypass of external network | |
CN108768667A (zh) | 一种用于多核处理器片内核间网络通信的方法 | |
CN107508828B (zh) | 一种超远程数据交互系统及方法 | |
CN101488923B (zh) | 一种片上网络数据包编码优化的实现方法 | |
CN106941488B (zh) | 基于fpga的多层协议数据包封装装置及方法 | |
WO2007120789A2 (en) | Method and apparatus for processing data at physical layer | |
Yu et al. | Efficient and scalable barrier over quadrics and myrinet with a new nic-based collective message passing protocol | |
CN110311814B (zh) | 可编程NoC万兆以太网资源网络接口系统 | |
CN104598430A (zh) | 一种cpu互联扩展系统的网络接口互联设计与控制系统 | |
CN102790663A (zh) | 一种应用于vlbi硬件相关处理机的全硬件网络接口 | |
Lant et al. | Enabling shared memory communication in networks of mpsocs | |
CN100571183C (zh) | 一种基于胖树拓扑的屏障操作网络系统、装置及方法 | |
CN112995245B (zh) | 一种基于fpga的可配置负载均衡系统与方法 | |
Baymani et al. | Exploring RapidIO technology within a DAQ system event building network | |
Wang et al. | An optimized RDMA QP communication mechanism for hyperscale AI infrastructure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190730 |