CN109753478A - 一种基于fpga的并行数据处理方法、装置 - Google Patents
一种基于fpga的并行数据处理方法、装置 Download PDFInfo
- Publication number
- CN109753478A CN109753478A CN201811645913.3A CN201811645913A CN109753478A CN 109753478 A CN109753478 A CN 109753478A CN 201811645913 A CN201811645913 A CN 201811645913A CN 109753478 A CN109753478 A CN 109753478A
- Authority
- CN
- China
- Prior art keywords
- data
- dsp
- fpga
- module
- srio
- 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.)
- Granted
Links
Abstract
本发明公开了一种基于FPGA并行数据处理方法、装置。基于FPGA并行数据处理方法包括:预处理来自硬件模块的多路模拟或数字信号;启动多个SRIO模块;向多个SRIO模块并行分发数据;将所述多个SRIO传输的数据并行发送至DSP计算组。本发明在FPGA与DSP之间的数据传输接口有多个SRIO传输通道,FPGA通过SRIO同时发送相同的数据帧到多个DSP计算组,FPGA按循环队列发送数据帧,DSP计算组从循环队列选取相应的数据包处理,有效提高了FPGA和DSP计算组之间的数据传输效率,减少了DDR3资源的过度浪费。
Description
技术领域
本发明涉及数字信号处理技术领域,具体涉及一种基于FPGA的并行数据处理方法、装置、计算机设备及可读存储介质。
背景技术
目前,数字信号处理设备已经广泛应用在语音信号处理、图像信号处理等领域,但也面临着严峻的技术挑战——更大的计算量、更多的数据交换、更复杂的信号算法、更严格的实时性要求。
以SAR雷达为例。SAR回波图像距离向采样点数NRN为4096,方位向采样点数NAN为2048,每个采样点所占字节数为8(单精度复数点),合成孔径时间最大为0.5s。则有:单次信号算法所需的数据量为512M比特,FPGA与DSP计算组之间数据传输,多个DSP计算组之间的数据交换,都会占用大量的DSP计算组时间;其次,规定了SAR成像时间在500ms完成,则DSP计算组的时间更是十分宝贵。采用传统的数据分发方案,其效率明显不足,严重影响系统的整机性能。
因此,对于并行数字信号处理系统,数据分发的设计方案尤为关键,大量数据通信将给系统带来超重的负荷,且消耗宝贵的DSP计算组时间,更影响数字信号处理系统的整体性能。
在数字信号处理设备中,为了满足对若干路数字信号实时的并行处理,一般采用多片DSP+FPGA组成的并行信号处理架构,多片DSP之间、DSP和FPGA之间用高速总线互联。其中,FPGA模块预处理来自前端的硬件信号,DSP模块处理更复杂的信号运算及系统控制。但现有技术多片DSP+FPGA组成的并行信号处理架构中,不仅消耗了庞大的系统DDR资源、DSP计算组资源(时间),还增加了系统的耦合度、程序流程复杂度。
因此,如何解决数字信号处理系统中的数据分发效率低,提高系统整体的工作性能,是数字信号处理中亟需解决的问题。
发明内容
本发明提供一种基于FPGA的并行数据处理方法、装置、计算机设备及可读存储介质,能够有效提高FPGA和DSP计算组之间的数据传输效率,几乎不消耗DSP计算组的时间,且减少了DDR3资源的过度浪费,提升了信号处理的实时运算能力、以及系统的整体性能。
本发明实施例一方面提供一种基于FPGA的并行数据处理方法,包括:
预处理来自硬件模块的多路模拟或数字信号;
启动多个SRIO模块;
向多个SRIO模块并行分发相同的数据;
将所述多个SRIO模块传输的数据并行发送至多个DSP计算组。
根据本发明的方法,优选的,由所述多个SRIO模块将数据帧并行的发送至多个DSP计算组,数据帧按循环队列存储在DSP计算组的DDR3协议区域,每个DSP计算组接收到完全相同的原始预处理数据帧,DSP计算组从循环队列选取相应数据帧组成的数据包进行处理。
根据本发明的方法,优选的,所述SRIO模块为FPGA例化的独立工作模块。
根据本发明的方法,优选的,DSP计算组对接收到的数据帧按一定规则组装成完整的数据包,组装规则具体为:
通过循环队列的位置索引,计算出当前数据包的起始和结束位置;
将包括起始位置与结束位置及其之间的两个或多个数据帧组装成数据包;
生成的相邻数据包含有相同的一个数据帧。
根据本发明的方法,优选的,所述数据帧通过swrite包发送给DSP计算组;
所述多个SRIO模块并行发送一帧数据至多个DSP计算组后,接着发送一个Doorbell消息给相应的DSP计算组,告知DSP计算组当前的数据包状态。
本发明实施例另一方面提供一种基于FPGA的并行数据处理装置,包括:
预处理单元,用于预处理来自硬件模块的多路模拟或数字信号;
启动单元,启动多个SRIO模块;
数据分发单元,向多个SRIO模块并行分发相同的数据;
发送单元,将所述多个SRIO模块传输的数据并行发送至多个DSP计算组。
根据本发明的装置,优选的,由所述多个SRIO模块将数据帧并行的发送至多个DSP计算组,数据帧按循环队列存储在DSP计算组的DDR3协议区域,每个DSP计算组接收到完全相同的原始预处理数据帧,DSP计算组从循环队列选取相应数据帧组成的数据包进行处理。
根据本发明的装置,优选的,还包括:消息发送单元,发送Doorbell消息给相应的DSP计算组,告知DSP计算组当前的数据包状态;
DSP计算组对接收到的数据帧按一定规则组装成完整的数据包,组装规则具体为:通过循环队列的位置索引,计算出当前数据包的起始和结束位置,将包括起始位置与结束位置及其之间的两个或多个数据帧组装成数据包,生成的相邻数据包含有相同的一个数据帧。
本发明实施例另一方面提供一种基于FPGA的并行数据处理装置,包括:
硬件模块,输出多路模拟或数字信号给FPGA模块;
FPGA模块,包括数据预处理模块和多个SRIO模块,其中数据预处理模块预处理来自硬件模块的多路模拟或数字信号,并通过启动多个SRIO模块并行分发相同的数据至多个DSP计算组;
多个DSP计算组,对接收到的相同数据进行并行处理,并输出给终端模块;
终端模块,接收多个DSP计算组输出的处理结果。
根据本发明的装置,优选的,FPGA模块通过所述多个SRIO模块发送相同的数据帧,数据帧按循环队列存储在DSP的DDR3协议区域,每个DSP计算组接收到完全相同的原始预处理数据帧,DSP计算组从循环队列选取相应数据帧组成的数据包进行处理;
FPGA模块在发送完一帧数据给DSP计算组之后,发送一个Doorbell消息给相应的DSP计算组,告知DSP计算组当前的数据包状态;
DSP计算组对接收到的数据帧按一定规则组装成完整的数据包,组装规则具体为:通过循环队列的位置索引,计算出当前数据包的起始和结束位置,将包括起始位置与结束位置及其之间的两个或多个数据帧组装成数据包,生成的相邻数据包含有相同的一个数据帧。
本发明另一实施例提供一种计算机设备,所述计算机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任意一项基于FPGA并行数据处理方法的步骤。
本发明另一实施例提供一种计算机可读存储介质,其上存储有计算机程序(指令),其特征在于:所述计算机程序(指令)被处理器执行时实现如上述任意一项基于FPGA并行数据处理方法的步骤。
本发明实施例提供的基于FPGA并行数据处理方法和装置,在FPGA与DSP之间的数据传输接口有多个SRIO传输通道,FPGA通过SRIO同时发送相同的数据帧到多个DSP计算组,FPGA按循环队列发送数据帧,DSP计算组从循环队列选取相应的数据包处理。这种灵活的数据帧组装方法,有效提高了FPGA和DSP计算组之间的数据传输效率,几乎不消耗DSP计算组的时间,且减少了DDR3资源的过度浪费。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1为本发明基于FPGA并行数据处理方法一实施例流程示意图;
图2为本发明基于FPGA并行数据处理方法另一实施例流程示意图;
图3为本发明实施例中SRIO模块发送数据包和数据帧示意图;
图4为本发明实施例中数据处理系统结构示意图;
图5为本发明实施例三基于FPGA并行数据处理装置示意图;
图6为本发明计算机设备实施例。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在数字信号处理设备中,采用多片DSP+FPGA组成的并行信号处理架构,多片DSP之间、DSP和FPGA之间用高速总线互联。其中,FPGA模块预处理来自前端的硬件信号,DSP模块处理更复杂的信号运算及系统控制。本方案的系统组成包括FPGA、多个DSP计算组,高速互联总线。其中,FPGA选用Xilinx公司Virtex-7系列;DSP选用TI公司TMS320C6678;高速互联总线选用SRIO传输链路、HyperLink链路。
FPGA处理硬件前端输入的多路并行数字信号;FPGA例化n个SRIO模块,通过SRIO传输链路分别和n个DSP计算组连接,其中FPGA模组包括预处理模块,以及多个例化的SRIO模块。需要说明的是本发明实施例中的n个SRIO模块,是指两个或两个以上,具体数量根据使用者数据处理具体场景可调整。
DSP计算组处理复杂的信号算法;DSP计算组由2或多片DSP组成;DSP计算组内用hyperlink连接;每个DSP计算组的输出与终端模块通过SRIO/网络连接。
如图1,本发明实施例一中提供了基于FPGA并行数据处理方法,包括:预处理来自硬件模块的多路模拟或数字信号;
启动多个SRIO模块;
向多个SRIO模块并行分发数据;
将所述多个SRIO传输的数据并行发送至DSP计算组。
其中FPGA对来自前端硬件模块的多路模拟或数字信号预处理,在典型的雷达成像系统中,信号预处理阶段包含距离向脉充压缩、距离走动校正、多普勒中心估计、距离弯曲校正和残余徙动校正等。
本发明实施例中的多个SRIO模块,是指两个或两个以上,具体数量根据使用者数据处理具体场景可调整。
需要说明的是,FPGA在信号预处理完成后,同时启动多个SRIO模块开始并行数据分发。FPGA例化n个SRIO模块独立工作,每个SRIO模块均同时发送FPGA预处理模块的数据帧给相应的DSP计算组。经过SRIO传输链路,数据存储在DSP的DDR3协议区域。每个DSP计算组都将接收到完全相同的原始预处理数据帧。数据帧,指FPGA发送数据的基本单元,用swrite包发送给DSP;FPGA发送一帧数据后,接着再发送一个doorbell包告知DSP数据包的状态。
数据包,指DSP计算组的信号处理算法所需要的数据帧集合。
FPGA与DSP传输数据协议,设计了一种高效的循环队列方案。FPGA与DSP的传输协议可以选用:1.FPGA向DSP的DDR3的循环队列区域写入数据帧(不需要DSP参与);2.当数据帧到达DSP的DDR3循环队列区域末尾时,FPGA下一帧数据的发送地址将是循环队列区域的起始位置。如图3中。假定每两帧数据组成一包数据,则帧1和帧2组成一个数据包、帧2和帧3组成一个数据包、帧3和帧4组成一个数据包、帧4和帧1组成一个数据包。
本发明实施例提供的基于FPGA并行数据处理方法和装置,在FPGA与DSP之间的数据传输接口有多个SRIO传输通道,FPGA通过SRIO同时发送相同的数据帧到多个DSP计算组,FPGA按循环队列发送数据帧,DSP计算组从循环队列选取相应的数据包处理。这种灵活的数据帧组装方法,有效提高了FPGA和DSP计算组之间的数据传输效率,几乎不消耗DSP计算组的时间,且减少了DDR3资源的过度浪费。
本发明实施例二中,如图2所示基于FPGA并行数据处理方法,包括:
步骤201:预处理来自硬件模块的多路模拟或数字信号;
步骤203:启动多个SRIO模块;
步骤205:向多个SRIO模块并行分发数据;
步骤207:将所述多个SRIO传输的数据并行发送至DSP计算组。
步骤209:所述多个SRIO模块发送Doorbell消息给相应的DSP计算组,告知DSP计算组当前的数据包状态。
需要说明的是,步骤209中,FPGA每个SRIO模块成功发送一帧数据后,再立即发送Doorbell(门铃)消息给相应的DSP计算组,告知DSP计算组当前的数据包状态。
本发明实施例中的多个SRIO模块,是指两个或两个以上,具体数量根据使用者数据处理具体场景可调整。
如图3所示,FPGA模组中SRIO模块发送的数据包可以两个数据帧组成,其中每个数据针格式包括swrite包和doorbell包。需要说明的是,Doorbell是一种快速的通知类型的短消息,包头和携带信息都很短,用于master srio设备通知slave srio设备,可用于DSP间的消息通知,也可用于FPGA与DSP间的消息通知。
Doorbell包payload的大小为16bit,如下图阴影处为有效位,其他为reserve位。5,6位用于选择Doorbell中断状态寄存器,对于TI DSP的srio包含了四个中断状态寄存器,即DOORBELL[0-3]_ICSR,每个寄存器仅有16位有效,即每个寄存器可以支持16个中断源,所以四个寄存器可以支持64个中断源,在TI Nyquist的4core DSP中,我们在使用中可以为每个core分别配置一个ICSR寄存器,这样当对应的寄存器的某位置位了,相应的core会相应该中断。对应于ISCR的四个寄存器的是4个DOORBELL[0-3]_ICCR寄存器,他与ICSR一一对应,用于清除ISCR寄存器中的中断请求位。
如图4所示为本发明实施例中基于FPGA数据处理系统结构示意图,其中基于FPGA数据处理系统包括硬件模块,FPGA模组,DSP计算组,终端模块。
需要说明的是,在FPGA模组完成本发明实施例二
步骤201:预处理来自硬件模块的多路模拟或数字信号;
步骤203:启动多个SRIO模块;
步骤205:向多个SRIO模块并行分发数据;
步骤207:将所述多个SRIO传输的数据并行发送至DSP计算组。
步骤209:所述多个SRIO模块发送Doorbell消息给相应的DSP计算组,告知DSP计算组当前的数据包状态。
最后,基于FPGA数据处理系统包括步骤:DSP接收数据帧。
DSP的SRIO模块接收到Doorbell消息,即一帧数据接收完成,DSP进入中断服务程序检查数据包状态。
DSP对接收到的数据帧按一定规则组装成完整的数据包,组装规则可以选用:通过循环队列的位置索引,计算出当前数据包的起始和结束位置即可。比如,帧1和帧2组成一个数据包p1;帧2和帧3组成一个数据包p2;p1和p2在数据上有相同部分。
此时FPGA模组对于数据的并行处理方式导致几乎不消耗DSP计算组的时间,且减少了DDR3资源的过度浪费。
DSP信号处理以数据包为基本处理单元,每个DSP计算组执行信号处理算法。
数据包已经同时存储在每个DSP计算组的DDR3循环队列区域,每个DSP计算组将从各自的数据包索引开始选取数据帧区域计算。
以SAR成像算法为例,常见信号处理算法包括高阶多项式拟合、方位向NLCS、方位向高次相位滤波、方位向Dechirp和几何校正处理。信号处理算法以一个数据包作为信号处理算法的数据输入。每次收到一个数据包后启动算法任务。
每个DSP计算组在信号处理完成后,将结果发送给下一级处理单元(终端模块)。以SAR系统为例,终端模块一般为显示控制模块,最终显示成像的效果。
本发明实施例中的多个SRIO模块,是指两个或两个以上,具体数量根据使用者数据处理具体场景可调整。
基于现有技术的不足,本发明公开了一种基于FPGA并行数据处理方法。基于FPGA并行数据处理方法包括:预处理来自硬件模块的多路模拟或数字信号;启动多个SRIO模块;向多个SRIO模块并行分发数据;将所述多个SRIO传输的数据并行发送至DSP计算组。本发明在FPGA与DSP之间的数据传输接口有多个SRIO传输通道,FPGA通过SRIO同时发送相同的数据帧到多个DSP计算组,FPGA按循环队列发送数据帧,DSP计算组从循环队列选取相应的数据包处理,有效提高了FPGA和DSP计算组之间的数据传输效率,减少了DDR3资源的过度浪费。
如图5,本发明实施例三提供一种基于FPGA并行数据处理装置300,包括:预处理单元301,用于预处理来自硬件模块的多路模拟或数字信号;
启动单元303,启动多个SRIO模块;
数据分发单元305,向多个SRIO模块并行分发数据;
发送单元307,将所述多个SRIO传输的数据并行发送至DSP计算组。
其中FPGA对来自前端硬件模块的多路模拟或数字信号预处理,在典型的雷达成像系统中,信号预处理阶段包含距离向脉充压缩、距离走动校正、多普勒中心估计、距离弯曲校正和残余徙动校正等。
需要说明的是,FPGA在信号预处理完成后,同时启动多个SRIO模块开始并行数据分发。FPGA例化n个SRIO模块独立工作,每个SRIO模块均同时发送FPGA预处理模块的数据帧给相应的DSP计算组。经过SRIO传输链路,数据存储在DSP的DDR3协议区域。每个DSP计算组都将接收到完全相同的原始预处理数据帧。数据帧,指FPGA发送数据的基本单元,用swrite包发送给DSP;FPGA发送一帧数据后,接着再发送一个doorbell包告知DSP数据包的状态。
数据包,指DSP计算组的信号处理算法所需要的数据帧集合。
FPGA与DSP传输数据协议,设计了一种高效的循环队列方案。FPGA与DSP的传输协议可以选用:1.FPGA向DSP的DDR3的循环队列区域写入数据帧(不需要DSP参与);2.当数据帧到达DSP的DDR3循环队列区域末尾时,FPGA下一帧数据的发送地址将是循环队列区域的起始位置。
优选的,本实施例中基于高可靠强实时的安全监测装置300还包括消息发送单元309,发送Doorbell消息给相应的DSP计算组,告知DSP计算组当前的数据包状态。
本发明实施例提供的基于FPGA并行数据处理装置,在FPGA与DSP之间的数据传输接口有多个SRIO传输通道,FPGA通过SRIO同时发送相同的数据帧到多个DSP计算组,FPGA按循环队列发送数据帧,DSP计算组从循环队列选取相应的数据包处理。这种灵活的数据帧组装方法,有效提高了FPGA和DSP计算组之间的数据传输效率,几乎不消耗DSP计算组的时间,且减少了DDR3资源的过度浪费。
图6是本发明一实施方式提供的计算机设备的示意图。如图6所示,计算机设备1至少包括:处理器20、存储器30、存储在所述存储器30中并可在所述处理器20上运行的计算机程序40(例如数据处理方法的控制程序)。
其中,所述计算机设备1可以是智能手机、平板电脑、笔记本电脑,台式电脑,服务器电脑,个人数字助理等具有拍摄功能的计算机设备。本领域技术人员可以理解,所述示意图3仅仅是计算机设备1的示例,并不构成对计算机设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备1还可以包括输入输出设备、网络接入设备、总线等。
所述处理器20执行所述计算机程序40时实现上述基于FPGA并行数据处理方法实施方式中的步骤,例如图1所示的基于FPGA并行数据处理方法、图2所示的基于FPGA并行数据处理方法。所述处理器20执行所述计算机程序40时实现上述各装置实施方式中各模块/单元,例如附图3中各个单元的功能。
示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器30中,并由所述处理器20执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序40在所述终端1中的执行过程。各单元的具体功能请参见前面的具体介绍,为节省篇幅及避免重复起见,在此就不再赘述。
所称处理器20可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器20也可以是任何常规的处理器等,所述处理器20是所述基于FPGA并行数据处理装置300/所述计算机设备的控制中心,利用各种接口和线路连接整个基于FPGA并行数据处理装置300/计算机设备1的各个部分。
所述存储器30用于存储所述计算机程序40和/或模块/单元,所述处理器20通过运行或执行存储在所述存储器30内的计算机程序和/或模块/单元,以及调用存储在所述存储器30内的数据,实现所述基于FPGA并行数据处理装置300/计算机设备1的各种功能。所述存储器30可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备1的使用所创建的数据等。此外,所述存储器30可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中所述的基于FPGA并行数据处理方法的步骤。
所述基于FPGA并行数据处理装置300//计算机设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施方式方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施方式的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个具体实施方式中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的终端实施方式仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能模块可以集成在相同处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在相同模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明实施例不限于上述示范性实施例的细节,而且在不背离本发明实施例的精神或基本特征的情况下,能够以其他的具体形式实现本发明实施例。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明实施例的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明实施例内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统、装置或终端权利要求中陈述的多个单元、模块或装置也可以由同一个单元、模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施方式仅用以说明本发明实施例的技术方案而非限制,尽管参照以上较佳实施方式对本发明实施例进行了详细说明,本领域的普通技术人员应当理解,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。
Claims (10)
1.一种基于FPGA的并行数据处理方法,其特征在于,包括:
预处理来自硬件模块的多路模拟或数字信号;
启动多个SRIO模块;
向多个SRIO模块并行分发相同的数据;
将所述多个SRIO模块传输的数据并行发送至多个DSP计算组。
2.如权利要求1所述的并行数据处理方法,其特征在于,
由所述多个SRIO模块将数据帧并行的发送至多个DSP计算组,数据帧按循环队列存储在DSP计算组的DDR3协议区域,每个DSP计算组接收到完全相同的原始预处理数据帧,DSP计算组从循环队列选取相应数据帧组成的数据包进行处理。
3.如权利要求1所述的并行数据处理方法,其特征在于,
所述SRIO模块为FPGA例化的独立工作模块。
4.如权利要求1至3任一项所述的并行数据处理方法,其特征在于,
DSP计算组对接收到的数据帧按一定规则组装成完整的数据包,组装规则具体为:
通过循环队列的位置索引,计算出当前数据包的起始和结束位置;
将包括起始位置与结束位置及其之间的两个或多个数据帧组装成数据包;
生成的相邻数据包含有相同的一个数据帧。
5.如权利要求1-3任一项所述的并行数据处理方法,其特征在于,
所述数据帧通过swrite包发送给DSP计算组;
所述多个SRIO模块并行发送一帧数据至多个DSP计算组后,接着发送一个Doorbell消息给相应的DSP计算组,告知DSP计算组当前的数据包状态。
6.一种基于FPGA的并行数据处理装置,其特征在于,包括:
预处理单元,用于预处理来自硬件模块的多路模拟或数字信号;
启动单元,启动多个SRIO模块;
数据分发单元,向多个SRIO模块并行分发相同的数据;
发送单元,将所述多个SRIO模块传输的数据并行发送至多个DSP计算组。
7.如权利要求6所述的并行数据处理装置,其特征在于,由所述多个SRIO模块将数据帧并行的发送至多个DSP计算组,数据帧按循环队列存储在DSP计算组的DDR3协议区域,每个DSP计算组接收到完全相同的原始预处理数据帧,DSP计算组从循环队列选取相应数据帧组成的数据包进行处理。
8.如权利要求6-7任一项所述的并行数据处理装置,其特征在于,还包括:消息发送单元,发送Doorbell消息给相应的DSP计算组,告知DSP计算组当前的数据包状态;
DSP计算组对接收到的数据帧按一定规则组装成完整的数据包,组装规则具体为:通过循环队列的位置索引,计算出当前数据包的起始和结束位置,将包括起始位置与结束位置及其之间的两个或多个数据帧组装成数据包,生成的相邻数据包含有相同的一个数据帧。
9.一种基于FPGA的并行数据处理装置,包括:
硬件模块,输出多路模拟或数字信号给FPGA模块;
FPGA模块,包括数据预处理模块和多个SRIO模块,其中数据预处理模块预处理来自硬件模块的多路模拟或数字信号,并通过启动多个SRIO模块并行分发相同的数据至多个DSP计算组;
多个DSP计算组,对接收到的相同数据进行并行处理,并输出给终端模块;
终端模块,接收多个DSP计算组输出的处理结果。
10.如权利要求9所述的并行数据处理装置,其特征在于,FPGA模块通过所述多个SRIO模块发送相同的数据帧,数据帧按循环队列存储在DSP的DDR3协议区域,每个DSP计算组接收到完全相同的原始预处理数据帧,DSP计算组从循环队列选取相应数据帧组成的数据包进行处理;
FPGA模块在发送完一帧数据给DSP计算组之后,发送一个Doorbell消息给相应的DSP计算组,告知DSP计算组当前的数据包状态;
DSP计算组对接收到的数据帧按一定规则组装成完整的数据包,组装规则具体为:通过循环队列的位置索引,计算出当前数据包的起始和结束位置,将包括起始位置与结束位置及其之间的两个或多个数据帧组装成数据包,生成的相邻数据包含有相同的一个数据帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811645913.3A CN109753478B (zh) | 2018-12-30 | 2018-12-30 | 一种基于fpga的并行数据处理方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811645913.3A CN109753478B (zh) | 2018-12-30 | 2018-12-30 | 一种基于fpga的并行数据处理方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753478A true CN109753478A (zh) | 2019-05-14 |
CN109753478B CN109753478B (zh) | 2021-01-08 |
Family
ID=66405050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811645913.3A Active CN109753478B (zh) | 2018-12-30 | 2018-12-30 | 一种基于fpga的并行数据处理方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753478B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222519A (zh) * | 2019-06-05 | 2019-09-10 | 郑州信大捷安信息技术股份有限公司 | 一种可配置通道的数据处理系统及方法 |
CN110309086A (zh) * | 2019-05-17 | 2019-10-08 | 全球能源互联网研究院有限公司 | 一种多通道低速口与单通道高速口数据交互方法 |
CN110737219A (zh) * | 2019-10-12 | 2020-01-31 | 四川赛狄信息技术股份公司 | 基于dsp的数字信号处理设备 |
CN113014880A (zh) * | 2021-03-05 | 2021-06-22 | 江苏和正特种装备有限公司 | 一种基于高速数据交换的多源图像共享系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101385439B1 (ko) * | 2013-04-03 | 2014-04-15 | 주식회사 이노와이어리스 | Srio 인터페이스로 연결된 fpga와 dsp간 데이터 전송 방법 |
CN103986931A (zh) * | 2014-04-25 | 2014-08-13 | 北京航空航天大学 | 一种fpga+dsp结构上基于srio总线传输视频数据的实现方法 |
CN104796652A (zh) * | 2015-01-12 | 2015-07-22 | 北京瀚景锦河科技有限公司 | 一种基于srio传输视频帧的数据传输方法和装置 |
CN104991882A (zh) * | 2015-06-11 | 2015-10-21 | 哈尔滨工程大学 | 一种基于多处理器协作的用于软件无线电的基带板卡 |
CN106886177A (zh) * | 2016-12-16 | 2017-06-23 | 北京华航无线电测量研究所 | 一种雷达信号处理系统 |
CN108132467A (zh) * | 2017-12-23 | 2018-06-08 | 成都汇蓉国科微系统技术有限公司 | 基于增强型adc的dsp+fpga双基前视sar成像方法及成像装置 |
CN108564644A (zh) * | 2017-12-27 | 2018-09-21 | 中国科学院光电研究院 | 机载主被动三维影像实时成像装置及方法 |
-
2018
- 2018-12-30 CN CN201811645913.3A patent/CN109753478B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101385439B1 (ko) * | 2013-04-03 | 2014-04-15 | 주식회사 이노와이어리스 | Srio 인터페이스로 연결된 fpga와 dsp간 데이터 전송 방법 |
CN103986931A (zh) * | 2014-04-25 | 2014-08-13 | 北京航空航天大学 | 一种fpga+dsp结构上基于srio总线传输视频数据的实现方法 |
CN104796652A (zh) * | 2015-01-12 | 2015-07-22 | 北京瀚景锦河科技有限公司 | 一种基于srio传输视频帧的数据传输方法和装置 |
CN104991882A (zh) * | 2015-06-11 | 2015-10-21 | 哈尔滨工程大学 | 一种基于多处理器协作的用于软件无线电的基带板卡 |
CN106886177A (zh) * | 2016-12-16 | 2017-06-23 | 北京华航无线电测量研究所 | 一种雷达信号处理系统 |
CN108132467A (zh) * | 2017-12-23 | 2018-06-08 | 成都汇蓉国科微系统技术有限公司 | 基于增强型adc的dsp+fpga双基前视sar成像方法及成像装置 |
CN108564644A (zh) * | 2017-12-27 | 2018-09-21 | 中国科学院光电研究院 | 机载主被动三维影像实时成像装置及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309086A (zh) * | 2019-05-17 | 2019-10-08 | 全球能源互联网研究院有限公司 | 一种多通道低速口与单通道高速口数据交互方法 |
CN110222519A (zh) * | 2019-06-05 | 2019-09-10 | 郑州信大捷安信息技术股份有限公司 | 一种可配置通道的数据处理系统及方法 |
CN110737219A (zh) * | 2019-10-12 | 2020-01-31 | 四川赛狄信息技术股份公司 | 基于dsp的数字信号处理设备 |
CN113014880A (zh) * | 2021-03-05 | 2021-06-22 | 江苏和正特种装备有限公司 | 一种基于高速数据交换的多源图像共享系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109753478B (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753478A (zh) | 一种基于fpga的并行数据处理方法、装置 | |
CN106056212B (zh) | 一种人工神经网络计算核 | |
CN107992543A (zh) | 问答交互方法和装置、计算机设备及计算机可读存储介质 | |
CN106951926A (zh) | 一种混合架构的深度学习系统方法及装置 | |
CN106294233B (zh) | 一种直接内存访问的传输控制方法及装置 | |
CN111563820B (zh) | 智能合约并行执行方法及装置 | |
CN101834786A (zh) | 队列调度的方法和装置 | |
CN110351375A (zh) | 一种数据处理方法、装置及计算机装置、可读存储介质 | |
CN109542608A (zh) | 一种基于混合排队网络的云仿真任务调度方法 | |
CN106484657A (zh) | 一种可重构的信号处理器asic架构及其重构方法 | |
CN110674918A (zh) | 信息处理方法、设备、系统及存储介质 | |
CN109343972A (zh) | 任务处理方法及终端设备 | |
CN110135892A (zh) | Api的调用计费方法、装置、电子设备以及存储介质 | |
CN103577469B (zh) | 数据库连接复用方法和装置 | |
CN108600564A (zh) | 客户服务的方法和装置 | |
CN109800074A (zh) | 任务数据并发执行方法、装置以及电子设备 | |
CN106656103A (zh) | 一种fir滤波器组及滤波方法 | |
CN108647780B (zh) | 面向神经网络的可重构池化操作模块结构及其实现方法 | |
CN103888452B (zh) | 用于报文压缩的保序方法和装置 | |
CN106971229B (zh) | 神经网络计算核信息处理方法和系统 | |
US10867363B2 (en) | Device and method for accelerating graphics processor units, and computer readable storage medium | |
CN103218326B (zh) | 综合仲裁器装置 | |
CN105975436A (zh) | 一种SoC系统中通用可配置加速单元的IP电路 | |
CN110489151A (zh) | 一种终端升级方法及系统 | |
CN112669158B (zh) | 交易系统及其交易服务的控制方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |