一种基于FPGA的数据处理方法、装置及系统与流程

文档序号:11198953阅读:354来源:国知局
一种基于FPGA的数据处理方法、装置及系统与流程
本发明实施例涉及数据处理
技术领域
,特别是涉及一种基于fpga的数据处理方法。本发明实施例还涉及一种基于fpga的数据处理装置及系统。
背景技术
:当前,lz77压缩是常用的一种压缩方法,为了提高对数据压缩的效率,采用fpga(fieldprogramablegatearray,现场可编程与门阵列)的opencl(opencomputinglanguage,开放运算语言)实现lz77压缩,并且在基于fpga的opencl实现lz77压缩的过程中,匹配有效位置的计算是一个关键过程,该过程直接影响到整个系统的压缩性能。现有技术中,在对多个输入进行匹配有效位置计算时采用的是串行计算的方式(如图1所示,图1为现有技术中所提供的串行计算函数模型),每一级的两个或多个输入经计算后将其计算结果用于下一级的运算,一级执行完以后将其计算结果输入至下一级,并进行下一级的计算,直至串行计算结束。因为最终的匹配有效位置的结果需要在完成所有级运算后才能得到,所以在fpga实现的过程中造成时钟频率下降,降低了数据处理的速度,影响了整个系统的性能。综上所述可以看出,如何提供一种解决上述技术问题的基于fpga的数据处理方法、装置及系统是目前有待解决的问题。技术实现要素:本发明实施例的目的是提供一种基于fpga的数据处理方法,在使用过程中大大缩短了计算过程中的时间延迟,提高了数据处理的速度和系统性能。为解决上述技术问题,本发明实施例提供了一种基于fpga的数据处理方法,包括:接收多个输入,并采用超前进位计算方法并行计算出每个输入的选择路径结果;对各个所述选择路径结果进行判断分析,并得出计算结果。可选的,采用超前进位计算方法计算出每个输入的选择路径结果的过程具体为:将每个输入均分别与位于其后面的各个输入做布尔函数运算,得到多个相应的运算结果;依据各个所述运算结果得到与每个输入相应的选择路径结果。可选的,所述对各个选择路径结果进行判断分析,并得出计算结果的过程具体为:依据各个选择路径结果得出相应的布尔序列;将所述布尔序列作为输出的判断条件,并依据所述布尔序列得出计算结果。可选的,所述布尔函数运算为比较运算;所述将每个输入均分别与位于其后面的各个输入做布尔函数运算,得到多个相应的运算结果的过程为:将每个输入均分别与位于其后面的各个输入做比较运算,得到多个相应的运算结果。为解决上述技术问题,本发明实施例提供了一种基于fpga的数据处理装置,包括:计算模块,用于接收多个输入,并采用超前进位计算方法并行计算出每个输入的选择路径结果;判断分析模块,用于对各个所述选择路径结果进行判断分析,并得出计算结果。可选的,所述计算模块,包括:布尔函数计算单元,用于将每个输入均分别与位于其后面的各个输入做布尔函数运算,得到多个相应的运算结果;选择路径计算单元,用于依据各个所述运算结果得到与每个输入相应的选择路径结果。可选的,所述判断分析模块,包括:布尔序列计算单元,用于依据各个选择路径结果得出相应的布尔序列;分析判断单元,用于将所述布尔序列作为输出的判断条件,并依据所述布尔序列得出计算结果。可选的,所述布尔函数计算单元包括比较运算单元,用于将每个输入均分别与位于其后面的各个输入做比较运算,得到多个相应的运算结果。为解决上述技术问题,本发明实施例提供了一种基于fpga的数据处理系统,包括如上述所述的基于fpga的数据处理装置。本发明实施例提供了一种基于fpga的数据处理方法、装置及系统,包括:接收多个输入,并采用超前进位计算方法并行计算出每个输入的选择路径结果;对各个选择路径结果进行判断分析,并得出计算结果。可见,本发明实施例采用超前进位计算方法同时对多个输入进行并行计算,计算出每个输入对应的选择路径结果,再通过对各个选择路径结果进行判断分析后得出计算结果,以完成匹配有效位置的计算。本发明在使用过程中大大缩短了计算过程中的时间延迟,提高了数据处理的速度和系统性能。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中所提供的一种串行计算函数模型;图2为本发明实施例提供的一种基于fpga的数据处理方法的流程示意图;图3为本发明实施例提供的一种并行计算的函数模型;图4为本发明实施例提供的一种基于fpga的数据处理装置的结构示意图。具体实施方式本发明实施例提供了一种基于fpga的数据处理方法,在使用过程中大大缩短了计算过程中的时间延迟,提高了数据处理的速度和系统性能。为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参照图2,图2为本发明实施例提供的一种基于fpga的数据处理方法的流程示意图。该方法包括:s11:接收多个输入,并采用超前进位计算方法并行计算出每个输入的选择路径结果;s12:对各个选择路径结果进行判断分析,并得出计算结果。具体的,本发明实施例对于接收的多个输入,可以同时对其进行并行计算,采用超前进位计算方法可以并行处理多个输入,并得到每个输入的选择路径结果,然后依据各个输入的选择路径结果得出最终的计算结果。在实际应用中对于多级选择器采用超前计算方法计算出每个输入的选择路径结果,即超前计算完成各个输入的选择路径结果,然后通过多级选择器输出最终的计算结果。具体请参照图3,图3为本发明实施例提供的一种并行计算的函数模型,在实际应用中可以将现有技术中串行的电路结构转化为与本发明实施例对应的并行计算的电路结构,以实现对多个输入的并行计算,提高计算速度,并在一定程度上提升系统的性能。本发明实施例提供了一种基于fpga的数据处理方法、装置及系统,包括:接收多个输入,并采用超前进位计算方法并行计算出每个输入的选择路径结果;对各个选择路径结果进行判断分析,并得出计算结果。可见,本发明实施例采用超前进位计算方法同时对多个输入进行并行计算,计算出每个输入对应的选择路径结果,再通过对各个选择路径结果进行判断分析后得出计算结果,以完成匹配有效位置的计算。本发明在使用过程中大大缩短了计算过程中的时间延迟,提高了数据处理的速度和系统性能。本发明实施例公开了一种基于fpga的数据处理方法,相对于上一实施例,本实施例对技术方案做了进一步的说明和优化。具体的:在上一实施例s11中,采用超前进位计算方法计算出每个输入的选择路径结果的过程具体可以包括下面的s110和s111:s110:将每个输入均分别与位于其后面的各个输入做布尔函数运算,得到多个相应的运算结果;s111:依据各个运算结果得到与每个输入相应的选择路径结果。需要说明的是,在实际应用中,多个输入并行计算时,采用一个选择器即可,每一级的功能可以分解为两个部分,第一部分是选择器,第二部分是决定选择器开关状态的布尔函数运算,布尔函数运算可以用f(x,y)表示。对于n级计算,共有n+1个输入,为了避免当n过大时,并行计算的电路过于复杂,所以采用超前计算方法对多个输入进行并行计算,在展开布尔函数运算的同时,可以针对性的优化电路模型,并计算出每个输入对应的选择路径结果。对于现有技术中的串行计算,与图1中的函数模型对应的布尔函数方程可以表示如下:本发明实施例中采用超前计算的思想将该布尔函数展开,以对多个输入同时进行并行计算。可以理解的是,n级计算中共有n+1个输入,在具体计算过程中,将第一个输入和与位于其后的每一个输入做布尔函数运算,得到并保存各个相应的运算结果。例如,第一个输入与第二个输入做布尔函数运算后得到的运算结果可以用f1,2表示,第一个输入与第三个输入做布尔函数运算后得到的运算结果可以用f1,3表示,…第一个输入与第n+1个输入做布尔函数运算得到的运算结果可以用f1,n+1表示;当第一个输入与其后面的各个输入计算完毕后,对第二个输入与位于其后面的各个输入(第三个输入至第n+1个输入)分别进行布尔函数运算,直至第n个输入与第n+1个输入做布尔函数运算,并得到相应的计算结果,该计算结果可以用fn,n+1表示。所以的输入均做布尔函数运算完毕后,可以将所得到的各个运算结果以矩阵的形式表示出了,并得到路径转移的状态矩阵,由该矩阵可以得出各个输入对应的选择路径结果。具体可以参照表1,表1为n级计算对应的路径转移状态矩阵表,其中,fi,j表示第i个输入和第j个输入对应的布尔函数运算的运算结果,f=0或1表示选择本级的两个输入中的某一个。表1b2b3bn+1b1f1,2f1,3-f1,n+1b2.f2,3-f2,n+1b3..-f3,n+1---fi,j-bnfn,n+1进一步,上一实施例s12中,对各个选择路径结果进行判断分析,并得出计算结果的过程具体可以包括下面s120和s121:s120:依据各个选择路径结果得出相应的布尔序列;s121:将布尔序列作为输出的判断条件,并依据布尔序列得出计算结果。具体的,可以依据各个输入分别对应的选择路径得到关于每个输入对应的布尔函数序列s=(s1,s2,…sn),并且将各个布尔函数序列作为多路选择器判断的输入条件,决定多路选择器的最终输出结果。对于n级计算的布尔序列可以表示为s=(s1,s2,…sn),则可以得到:其中,s表示多路选择器的开光状态,也即各个选择器的开光状态的集合,即为一个布尔序列;si为第i个选择器的开光状态。可以证明关系式与关系式是等价的,并且在实际应用中(即采用硬件实现时),的具体形式可以根据实际实现的n的长度适度进行调整迭代展开的情况,较小复杂度。可选的,布尔函数运算为比较运算;将每个输入均分别与位于其后面的各个输入做布尔函数运算,得到多个相应的运算结果的过程为:将每个输入均分别与位于其后面的各个输入做比较运算,得到多个相应的运算结果。可以理解的,采用比较运算可以是计算更加简单,当也可以采用其他的布尔函数运算,具体采用哪种运算可以根据实际情况而定,本发明实施例对此不做特殊的限定,能实现本发明实施例的目的即可。请参照图4,图4为本发明实施例提供的一种基于fpga的数据处理装置的结构示意图。在上述实施例的基础上:该装置包括:计算模块1,用于接收多个输入,并采用超前进位计算方法并行计算出每个输入的选择路径结果;判断分析模块2,用于对各个选择路径结果进行判断分析,并得出计算结果。具体的,上述计算模块1,可以包括布尔函数计算单元和选择路径计算单元,其中:布尔函数计算单元,用于将每个输入均分别与位于其后面的各个输入做布尔函数运算,得到多个相应的运算结果;选择路径计算单元,用于依据各个运算结果得到与每个输入相应的选择路径结果。进一步,上述判断分析模块2,包括布尔序列计算单元和分析判断单元,其中:布尔序列计算单元,用于依据各个选择路径结果得出相应的布尔序列;分析判断单元,用于将布尔序列作为输出的判断条件,并依据布尔序列得出计算结果。更具体的,本实施例中,上述布尔函数计算单元包括比较运算单元,用于将每个输入均分别与位于其后面的各个输入做比较运算,得到多个相应的运算结果。可见,本发明实施例采用超前进位计算方法同时对多个输入进行并行计算,计算出每个输入对应的选择路径结果,再通过对各个选择路径结果进行判断分析后得出计算结果,以完成匹配有效位置的计算。本发明在使用过程中提高了数据处理的速度和系统性能。另外,对于本发明实施例中所涉及到的数据处理方法的具体介绍,请参照上述方法实施例,本申请在此不再赘述。在上述实施例的基础上,本发明实施例提供了一种基于fpga的数据处理系统,包括如上述的基于fpga的数据处理装置。需要说明的是,本发明实施例采用超前进位计算方法同时对多个输入进行并行计算,计算出每个输入对应的选择路径结果,再通过对各个选择路径结果进行判断分析后得出计算结果,以完成匹配有效位置的计算。本发明在使用过程中提高了数据处理的速度和系统性能。另外,对于本发明实施例中所涉及到的数据处理方法的具体介绍,请参照上述方法实施例,本申请在此不再赘述。还需要说明的是,在本说明书中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1