一种FPGA并行阵列模块及其计算方法与流程

文档序号:12661786阅读:167来源:国知局
一种FPGA并行阵列模块及其计算方法与流程

本发明涉及FPGA阵列计算领域,尤其涉及一种FPGA并行阵列模块及其计算方法。



背景技术:

目前的FPGA都是采用单板插接在PC主板上的方式进行单独计算,不能有效进行并行计算,而现有的高性能技术主要有GPU,单板FPGA,GPU能耗很高,而且受主板插槽的限制,在商用领域很难有太多GPU实现并行计算,

FPGA能耗低,但目前使用FPGA实现计算时,都是采用PCIE插槽的方式,普通主板也不能并行使用太多FPGA,故不能满足高效计算的需求。

综上,有必要设计一种FPGA并行阵列模块及其计算方法来弥补上述缺陷。



技术实现要素:

本发明提出一种FPGA并行阵列模块及其计算方法,其解决了现有技术中计算能力低的缺陷。本发明采用多个独立的FPGA二级主控模块,并行多个ASIC模块,合理调度分配资源,达到真正的FPGA并行计算,将FPGA的效能发挥到极致,极大提高了计算能力。

本发明的技术方案是这样实现的:

本发明公开一种FPGA并行阵列模块,其连接至上位机,其包括依次设置的对外通信层、任务切分层和计算层;对外通信层、任务切分层、计算层均设有电源模块和散热模块;对外通信层用于与上位机进行通讯,对外通信层设有ARM主控模块,ARM主控模块用于实现软件自定义功能调用;ARM主控模块用于实现Linux软件流程,其设有接口模块,对外通信层通过接口模块连接至上位机,且ARM主控模块与接口模块之间设有破解模块;破解模块用于封装组织FPGA阵列,调度FPGA资源进行密钥计算,计算出正确的密钥;任务切分层用于对任务进行切分并均衡调度,任务均分层设有多个FPGA二级主控模块,FPGA二级主控模块用于进行复杂计算;计算层设有多个ASIC模块,ASIC模块用于进行简单计算;每个FPGA二级主控模块连接至多个ASIC模块;电源模块用于给ARM主控模块、FPGA二级主控模块、ASIC模块提供工作电源;散热模块用于给ARM主控模块、FPGA二级主控模块、ASIC模块散热。

其中,任务切分层进一步设有预设功能模块,其用于提前将复杂计算和简单计算进行设定;多个FPGA二级主控模块上设有第一计算功能识别模块,多个ASIC模块上设有第二计算功能识别模块,预设功能模块与第一计算功能识别模块、第二计算功能识别模块均连接。

其中,第一计算功能识别模块用于识别计算任务中的复杂计算,并将其与预设功能模块中定义的复杂计算进行比对;第二计算功能识别模块用于识别计算任务中的简单计算,并将其与预设功能模块中定义的简单计算进行比对。

其中,对外通信层进一步设有存储模块,存储模块用于数据存储。

其中,接口模块采用TCP/IP接口方式分别连接至上位机和ARM通信模块。

其中,FPGA二级主控模块设有十个、二十个、四十个或八十个。

其中,每个FPGA二级主控模块连接至十个ASIC模块或十二个ASIC模块。

其中,散热模块设有多个对称设置的散热风扇,且多个散热风扇均连接至电源模块,相对设置的两个散热风扇形成对流。

本发明还公开一种FPGA并行阵列模块的计算方法,其包括如下步骤:(S01)上位机将计算任务通过接口模块输送至ARM主控模块;(S02)ARM主控模块针对计算任务,进行软件自定义功能调用后,将计算任务输送至多个FPGA二级主控模块;(S03)多个FPGA二级主控模块对计算任务进行切分,均衡完成其中的复杂计算,将简单计算输送至多个ASIC模块,同时将计算结果反馈至ARM主控模块;(S04)ASIC模块完成简单计算,并将计算结果反馈至ARM主控模块;(S05)ARM主控模块将步骤(S03)和步骤(S04)反馈的计算结果输送至上位机。

其中,步骤(S03)中,FPGA二级主控模块判断复杂计算和简单计算的方法为:(S31)通过预设功能模块提前将简单计算和复杂计算进行定义;(S32)通过第一计算功能识别模块识别出计算任务中的复杂计算,并与预设功能模块中定义的复杂计算进行比对,将计算任务中与预设功能模块中定义的复杂计算相匹配的计算任务分配至多个FPGA二级主控模块,FPGA二级主控模块对该复杂计算进行计算,同时将未识别和未匹配成功的计算任务分配至多个ASIC模块;(S33)通过第二计算功能识别模块识别步骤(32)分配过来的计算任务,将简单计算识别出来,并将其与预设功能模块中的简单计算进行比对,将计算任务中与预设功能模块中定义的简单计算相匹配的计算任务分配至多个ASIC模块,ASIC模块对该简单计算进行计算,同时将未识别和未匹配成功的计算任务反馈至FPGA二级主控模块;(S34)FPGA二级主控模块对步骤(S33)反馈过来的计算任务进行计算。

与现有技术相比,本发明具有如下优点:

本发明采用FPGA进行计算,能耗要显著低于GPU;其实行TCP/IP接口方式,当扩充多个模块时,直接插接路由器即可,不受物理接口数量的限制;且本发明采用单独物理模块,加装合理布局的散热模块,保证散热不影响器件性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明FPGA并行阵列模块的示意图。

图2为本发明FPGA并行阵列模块的分解示意图。

图3为本发明电源模块的电路示意图。

图4为本发明散热模块的电路示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了有助于和澄清随后的实施例的描述,在对本发明的具体实施方式进行详细说明之前,对部分术语进行解释,下列的解释应用于本说明书以及权利要求书。

本发明中出现的FPGA是Field-Programmable Gate Array的缩写,其中文意思是现场可编程门阵列,是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点;本发明中出现的ASIC是Application Specific Integrated Circuit的英文缩写,在集成电路界被认为是一种为专门目的而设计的集成电路。本发明中出现的ARM是Advanced RISC Machines的缩写。其它英文词语均为代码,不代表其它任何意义。

参照图1至图4,作为优选的实施方式,本发明公开一种FPGA并行阵列模块,其连接至上位机,其包括依次设置的对外通信层、任务切分层和计算层;对外通信层、任务切分层、计算层均设有电源模块和散热模块;对外通信层用于与上位机进行通讯,对外通信层设有ARM主控模块,ARM主控模块用于实现软件自定义功能调用;ARM主控模块用于实现Linux软件流程,其设有接口模块,对外通信层通过接口模块连接至上位机,且ARM主控模块与接口模块之间设有破解模块;破解模块用于封装组织FPGA阵列,调度FPGA资源进行密钥计算,计算出正确的密钥;任务切分层用于对任务进行切分并均衡调度,任务均分层设有多个FPGA二级主控模块,FPGA二级主控模块用于进行复杂计算;计算层设有多个ASIC模块,ASIC模块用于进行简单计算;每个FPGA二级主控模块连接至多个ASIC模块;电源模块用于给ARM主控模块、FPGA二级主控模块、ASIC模块提供工作电源,本发明电源模块的电路图如图3所示;散热模块用于给ARM主控模块、FPGA二级主控模块、ASIC模块散热。本发明FPGA并行阵列模块采用分级控制,对外通信层位于上层,其采用编程灵活的ARM作为对外通信接口模块,任务切分层处于二级层面,其用于对计算任务进行切分,负载均衡调度,进行一些相对高性能的复杂计算,计算层位于三级层面,其用于进行高性能,重复率比较高的简单计算。本发明破解模块实现对通用加密工具,加密算法的密钥遍历,计算出正确的密钥,封装组织FPGA阵列,调度FPGA资源进行密钥计算。

本发明任务切分层进一步设有预设功能模块,其用于提前将复杂计算和简单计算进行设定;多个FPGA二级主控模块上设有第一计算功能识别模块,多个ASIC模块上设有第二计算功能识别模块,预设功能模块与第一计算功能识别模块、第二计算功能识别模块均连接。本发明预设功能模块在进行设定时,将AES、DES、RSA设定为复杂计算;将SHA1、MD5、SHA256、MD4、SHA512设定为简单计算,简单计算为原始哈希计算,当然,本领域技术人员根据实际需求,可以对其进行其他的设定。

本发明第一计算功能识别模块用于识别计算任务中的复杂计算,并将其与预设功能模块中定义的复杂计算进行比对;第二计算功能识别模块用于识别计算任务中的简单计算,并将其与预设功能模块中定义的简单计算进行比对。

本发明对外通信层进一步设有存储模块,存储模块用于数据存储;接口模块采用TCP/IP接口方式分别连接至上位机和ARM通信模块。本发明接口模块采用千兆网口,极大程度利用网络传输带宽,配置采用自动发现技术,免配置,上位机自动发现挂载的FPGA阵列信息。

本发明FPGA二级主控模块设有十个、二十个、四十个或八十个;每个FPGA二级主控模块连接至十个ASIC模块或十二个ASIC模块。本领域技术人员可根据项目的规模及实际需求,将FPGA二级主控模块设置为其它的数量,只需满足计算需求即可,且本领域技术人员根据实际需求,将每个FPGA二级主控模块连接至多个ASIC模块,ASIC模块的数量根据需求可任意设置,只需满足计算需求即可。

本发明散热模块设有多个对称设置的散热风扇,且多个散热风扇均连接至电源模块,相对设置的两个散热风扇形成对流。散热风扇的数量由本领域技术人员根据实际需求进行设定,可以为任意数量;本发明采用对流风扇技术,能快速稳定的扩散计算产生的热能。如图4所示,本发明散热模块包括第一散热风扇1、第二散热风扇2、自清洗过滤器3、测温元件4、温度响应安全阀5、真空泵(未图示)、机油箱6、自耦合器7、弹簧旁通阀8和多个管路9,自耦合器包括第一自耦合器、第二自耦合器、第三自耦合器和第四自耦合器;第一散热风扇通过管路连接至第二散热风扇;第二散热风扇通过管路连接至自清洗过滤器;自清洗过滤器通过管路分别连接至第一自耦合器、测温元件;测温元件通过管路连接至温度响应安全阀;温度响应安全阀通过管路连接至真空泵;第一散热风扇通过管路分别连接至弹簧旁通阀、第四自耦合器;弹簧旁通阀通过管路分别连接至第二自耦合器、第三自耦合器、自清洗过滤器、温度响应安全阀;机油箱通过管路连接至系统的曲轴箱通气管、减速齿轮箱、前进齿轮箱、摇臂盒子、鼓风机。本发明多个管路形成散热网路,将系统产生的热量散发出来。本发明测温元件用于实时测量系统的温度,并反馈至温度响应安全阀,当测温元件测得的温度过高时,可通过真空泵抽真空和自清洗过滤器工作,进行降温。

本发明FPGA并行阵列模块内还可封装通用计算功能,本领域技术人员可通过ARM主控模块实现软件自定义功能调用,故当上位机下达计算任务时,本发明可根据计算任务,将通用计算任务进行协调,提高计算效率。

本发明还公开一种FPGA并行阵列模块的计算方法,其包括如下步骤:(S01)上位机将计算任务通过接口模块输送至ARM主控模块;(S02)ARM主控模块针对计算任务,进行软件自定义功能调用后,将计算任务输送至多个FPGA二级主控模块;(S03)多个FPGA二级主控模块对计算任务进行切分,均衡完成其中的复杂计算,将简单计算输送至多个ASIC模块,同时将计算结果反馈至ARM主控模块;(S04)ASIC模块完成简单计算,并将计算结果反馈至ARM主控模块;(S05)ARM主控模块将步骤(S03)和步骤(S04)反馈的计算结果输送至上位机。

本发明步骤(S03)中,FPGA二级主控模块判断复杂计算和简单计算的方法为:(S31)通过预设功能模块提前将简单计算和复杂计算进行定义;(S32)通过第一计算功能识别模块识别出计算任务中的复杂计算,并与预设功能模块中定义的复杂计算进行比对,将计算任务中与预设功能模块中定义的复杂计算相匹配的计算任务分配至多个FPGA二级主控模块,FPGA二级主控模块对该复杂计算进行计算,同时将未识别和未匹配成功的计算任务分配至多个ASIC模块;(S33)通过第二计算功能识别模块识别步骤(32)分配过来的计算任务,将简单计算识别出来,并将其与预设功能模块中的简单计算进行比对,将计算任务中与预设功能模块中定义的简单计算相匹配的计算任务分配至多个ASIC模块,ASIC模块对该简单计算进行计算,同时将未识别和未匹配成功的计算任务反馈至FPGA二级主控模块;(S34)FPGA二级主控模块对步骤(S33)反馈过来的计算任务进行计算。

本领域技术人员在同等条件下,使用本发明FPGA并行阵列模块和CPU计算机进行的对比,其计算效率对比如下表1所示。

表1

如上表1可知,本发明FPGA并行阵列模块的计算效率是CPU计算效率的5000万倍。

本领域技术人员还对本发明与单GPU、单FPGA进行的对比,得出本发明的计算效率是单GPU的320倍,是单FPGA的320倍;且本发明的能耗和单GPU相差不大,本发明的能耗是单FPGA的10倍;使用本发明连续运转*24小时,其箱内温度不高于箱外温度5度;本发明使用80个FPGA二级主控模块时,采用负载均衡模式,合理分配计算任务,80个FPGA二级主控模块平均使用率差值不高于5%;本发明通过RJ45网口连接,即插即用,免配置,不要进行开箱操作。

以上所说实施方式的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应该认为是本说明书记载的范围。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1