一种用于求解微分方程的硬件加速装置及加速方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201611088172.4
(22)申请日 2016.12.01
(71)申请人 中国船舶重工集团公司第七一六研
究所
地址 222000 江苏省连云港市圣湖路18号
(72)发明人 姚小城 殷进勇 刘煜 王洋 
吴建鲁 李毅 陶峥嵘 董海祥 
王永 李小亮 
(74)专利代理机构 南京理工大学专利中心
32203
代理人 马鲁晋
(51)Int.Cl.
G06F  3/06(2006.01)
G06F  9/50(2006.01)
G06F  13/16(2006.01)
G06F  17/13(2006.01)
(54)发明名称
一种用于求解微分方程的硬件加速装置及
加速方法
(57)摘要
本发明公开了一种用于求解微分方程的硬
件加速装置,由输入输出缓存模块、串并转换模
块和基于龙哥库塔的硬件加速模块组成。输入输
出缓存模块主要用于与主控直接交互数据的缓
存,加速单元与主控之间的所有数据均通过输入
输出缓存交互。串并/并串转换模块主要是负责
将输入缓存的读出的数据根据需要多种并行输
出,将硬件加速模块的并行输出数据转换为串行
数据。基于龙哥库塔的硬件加速模块主要负责实
现微分方程求解的硬件加速。该用于求解微分方
程的硬件加速装置通过提出通用的计算架构,结
合FPGA局部可重构特性,通过对核心计算单元的灵活配置,实现对微分方程组求解的硬件加速的通用化,从而有效地满足各种微分方程组快速求
解的应用需求。权利要求书2页  说明书4页  附图2页CN 106527999 A 2017.03.22
C N  106527999
A
1.一种用于求解微分方程的硬件加速装置,其特征在于,包括输入缓存模块、输出缓存模块、串并转换模块、并串转换模块和基于龙哥库塔的硬件加速单元;输入缓存模块、输出缓存模块中缓存的数据位宽与总线位宽匹配,输入缓存模块与串并转换模块相连,输出缓存模块与并串转换模块相连,串并转换模块的输出与基于龙哥库塔的硬件加速单元相连,提供微分方程计算所需的所有数据,基于龙哥库塔的硬件加速单元的输出与并串转换模块相连,将计算结果输出到并串转换模块;
其中输入缓存模块通过串并转换模块与基于龙哥库塔的硬件加速单元进行信息交互,输出缓存模块通过并串转换模块和基于龙哥库塔的硬件加速单元进行信息交互,输入缓存模块、输出缓存模块用于与主控单元之间交互数据的缓存,基于龙哥库塔的硬件加速单元与主控单元之间的所有数据均通过输入输出缓存模块交互;
所述串并转换模块将输入缓存读出的数据进行并行输出给硬件加速模块,并串转换模块将基于龙哥库塔的硬件加速模块的并行输出数据转换为串行数据;
基于龙哥库塔的硬件加速模块用于实现微分方程求解的硬件加速。
2.根据权利要求1所述的用于求解微分方程的硬件加速装置,其特征在于,所述输入缓存模块包含输入FIFO和控制寄存器组两部分,输入FIFO用于数据传递,控制寄存器组用于控制信号的传递,控制寄存器由上位机赋值,由基于龙哥库塔的硬件加速单元进行复位。
3.根据权利要求1所述的用于求解微分方程的硬件加速装置,其特征在于,所述的输出缓存模块包含输出FIFO和状态寄存器组两部分,输出FIFO用于计算结果数据传递,状态寄存器组用于状态信号的传递,状态寄存器由基于龙哥库塔的硬件加速单元进行赋值,由上位机进行复位。
4.根据权利要求1所述的用于求解微分方程的硬件加速装置,其特征在于,所述串并转换模块根据控制信号对输入缓存模块的输入FIFO进行读操作控制,读取的数据进行并行输出,同时对控制信号进行转换,产生基于龙哥库塔的硬件加速单元的控制信号,同时对控制信号进行复位操作。
5.根据权利要求1所述的用于求解微分方程的硬件加速装置,其特征在于,所述并串转换模块根据控制信号对输出缓存的输出FIFO进行写操作控制,对状态寄存器进行赋值。
6.根据权利要求1所述的用于求解微分方程的硬件加速装置,其特征在于,所述基于龙哥库塔的硬件加速单元采用经典的四阶龙哥库塔法,所有计算均采用单精度/双精度浮点计算,用于保证精度和统一位
宽,该模块提供常用的浮点运算硬件加速单元,支持的浮点运算单元包括加减乘除浮点运算单元、三角函数、幂函数单元,其核心的微分方程求解部分采用FPGA的可重构方案,通过参数设置和重构即可完成对不同的微分方程求解。
7.根据权利要求1所述的用于求解微分方程的硬件加速装置,其特征在于,串并转换模块的数据输入位宽为32位,输出数据位宽最大支持4096位宽;并串转换模块是将计算结果以32位位宽输出并控制输出缓存模块的写操作。
8.根据权利要求6所述的用于求解微分方程的硬件加速装置,其特征在于,所述基于龙哥库塔的硬件加速单元的计算中间数据通过DMA方式进行传送。
9.一种基于权利要求1所述的用于求解微分方程的硬件加速装置的加速方法,其特征在于,包括以下步骤:
步骤1、判断是否为高阶微分方程,如果为高阶微分方程,则将高阶微分方程化为一阶
微分方程组,然后执行步骤2;如果为一阶方程组,则直接执行步骤2;
步骤2、对一阶微分方程组采用经典的4阶龙哥库塔方法求解;其中主迭代采用相同的硬件结构,每次主迭代中的子迭代采用相同的硬件结构,子迭代采用最大限度的并行硬件结构进行实现。
10.根据权利要求9所述的加速方法,其特征在于,步骤2中子迭代时,到每次子迭代中的最大时延路径,通过增加并行度来减少计算时延时。
一种用于求解微分方程的硬件加速装置及加速方法
技术领域
[0001]本发明涉及一种求解微分方程的加速装置,特别是一种针对龙格库塔微分方程求解法的硬件加速装置及加速方法。
背景技术
[0002]常微分方程是研究自然科学与社会科学中事物、物体和现象运动、演化和变化规律的最为基本的数学理论和方法。各领域中的许多原理均可描述成适当的常微分方程,如牛顿的运动定律、万有引力定律、能量守恒定律、人口发展规律、疾病传染、市场均衡价格的变化趋势等。多数情况下,寻复杂常微分方程的解析表达式极其困难,因此常用近似求解方法获取计算结果,工程中一般使用数值计算研究数值解。随着计算机科学技术的快速发展,经典的常微分数值计算方法经历了一个重新评价、筛选、改造和创新的过程,涌现了许多新概念、新课题和能发挥计算机潜力的新方案。采用全硬件加速的方式提高其运算效率已成为一个研究热点。
[0003]但是现有技术中尚无相关描述。
发明内容
[0004]本发明的目的在于提供一种求解微分方程的加速装置及加速方法,加速微分方程组的求解。
[0005]实现本发明目的的技术解决方案为:一种求解微分方程的加速装置,该装置由输入输出缓存模块、串并转换模块和基于龙哥库塔的硬件加速模块组成。输入输出缓存模块主要用于与主控直接交互数据的缓存,加速单元与主控之间的所有数据均通过输入输出缓存交互。串并/并串转换模块主要是负责将输入缓存的读出的数据根据需要多种并行输出,将硬件加速模块的并行输出数据转换为串行数据。基于龙哥库塔的硬件加速模块主要负责实现微分方程求解的硬件加速。
[0006]该用于求解微分方程的硬件加速装置通过提出通用的计算架构,结合FPGA局部可重构特性,通过对核心计算单元的灵活配置,实现对微分方程组求解的硬件加速的通用化。[0007]串并转换模块主要将控制输入缓存的读操作,并根据读取的指示信号,将读取的数据并行与基于龙哥库塔的硬件加速单元连接,该模块数据输入位宽为32位,输出数据位宽最大支持4096位宽,具体可以根据需求进行配置。并串转换模块主要是将计算结果以32位位宽输出并控制输出缓存的写操作。
[0008]一种用于求解微分方程的硬件加速装置的计算流程如下:
[0009]a)首先判断是否为高阶微分方程,如果为高阶微分方程,则将高阶微分方程化为1阶微分方程组;如果为一阶方程组,则直接进行步骤b);
[0010]b)对1阶微分方程组采用经典的4阶龙哥库塔方法求解;
[0011]c)针对b)步骤的4阶龙哥库塔的硬件实现,对每次迭代中的4次子迭代过程进行深度优化,主迭代采用相同的硬件结构,每次主迭代中的子迭代采用相同的硬件结构,对子迭
代中的实现最大限度的并行硬件结构;
[0012]d)为了达到b)中的目的,对解根号、三角函数求解、除法、遍历查等较为复杂的算法,采用并行的运算单元进行,并采用多种优化手段,如除法增加每次迭代步长、三角函数采用两步合并、对于一些需要遍历的常量表采用编码的方式以查表的方式替代遍历比较操等等。到每次子迭代中的最大时延路径,通过增加并行度来减少计算时延时,其它的非最大时延路径需要进行资源与速度的折中。
[0013]由于加速模块与主处理器的通信耗时较大,采用将整个算法全硬件化运行,减少交互,主处理器只需要将参数初始化值、步长和一些控制信号发送到加速模块,加速模块的计算中间数据则通过DMA方式进行,成功将通信占时比控制在较低的水平,其通信占时比随着算法变量数目、计算复杂度和迭代次数的增大而降低。
[0014]与现有技术相比,本发明的显著优点是:1)本发明采用硬件实现微分方程组求解加速,具有更高的加速比;2)本发明提出了通用的接口结构,使得该发明可以满足不同参数量、变量数的微分方程组的求解需求;3)核心计算加速单元借用FPGA可重构功能,针对不同的方程组,重构该核心计算单元,提高资源利用率和发明的通用性。
[0015]下面结合附图对本发明作进一步详细描述。
附图说明
[0016]图1是一种求解微分方程的加速装置组成示意图。
[0017]图2是串并转换和并串转换模块示意图,其中图(a)是串并转换模块示意图,图(b)是并串转换模块示意图。
[0018]图3是基于龙哥库塔的硬件加速单元计算流程图。
具体实施方式
[0019]结合图1,一种用于求解微分方程的硬件加速装置,由输入输出缓存模块、串并转换模块和基于龙哥库塔的硬件加速模块组成。输入输出缓存模块主要用于与主控直接交互数据的缓存,加速单元与
主控之间的所有数据均通过输入输出缓存交互。串并/并串转换模块主要是负责将输入缓存的读出的数据根据需要多种并行输出,将硬件加速模块的并行输出数据转换为串行数据。基于龙哥库塔的硬件加速模块主要负责实现微分方程求解的硬件加速。该用于求解微分方程的硬件加速装置通过提出通用的计算架构,结合FPGA局部可重构特性,通过对核心计算单元的灵活配置,实现对微分方程组求解的硬件加速的通用化。[0020]结合图2,串并转换模块主要将控制输入缓存的读操作,并根据读取的指示信号,将读取的数据并行与基于龙哥库塔的硬件加速单元连接,该模块数据输入位宽为32位,输出数据位宽最大支持4096位宽,具体可以根据需求进行配置。并串转换模块主要是将计算结果以32位位宽输出并控制输出缓存的写操作。
[0021]具体而言,本发明的一种用于求解微分方程的硬件加速装置,包括输入缓存模块、输出缓存模块、串并转换模块、并串转换模块和基于龙哥库塔的硬件加速单元;输入缓存模块、输出缓存模块中缓存的数据位宽与总线位宽匹配,输入缓存模块与串并转换模块相连,输出缓存模块与并串转换模块相连,串并转换模块的输出与基于龙哥库塔的硬件加速单元相连,提供微分方程计算所需的所有数据,基于龙哥库塔的硬件加速单元的输出与并串转

本文发布于:2024-09-21 16:23:30,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/409344.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   硬件加速   缓存   单元   输出   计算   求解
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议