一种双精度浮点矩阵运算处理器及方法技术

技术编号:23763466 阅读:44 留言:0更新日期:2020-04-11 18:37
本发明专利技术公开的一种双精度浮点矩阵运算处理器,矩阵运算处理器包括控制单元接口单元、存储单元及浮点运算单元;控制单元根据运算模式进行选择,通过对浮点运算单元输入输出进行运算和存储控制;接口单元用于与嵌入式处理器交互,对嵌入式处理器发出指令进行响应并回馈状态,获取矩阵运算所需矩阵数据及放回矩阵运算结果至嵌入式处理器指定地址;存储单元包括若干个单口RAM,用于存储矩阵数据;浮点运算单元包括双精度浮点加法模块、双精度浮点乘法模块和双精度浮点倒数运算模块,用于进行矩阵数据运算;本发明专利技术采用并行双精度浮点运算提升矩阵运算速度;同时采用不同矩阵运算模式共享运算单元与存储单元,降低矩阵协处理面积与功耗。

A double precision floating point matrix operation processor and method

【技术实现步骤摘要】
一种双精度浮点矩阵运算处理器及方法
本专利技术涉及矩阵运算的研究领域,特别涉及一种双精度浮点矩阵运算处理器及方法。
技术介绍
随着GPS、GLONASS、GALILEO与BDS的建设,导航接收机开始逐步由单系统单频点定位解算向多系统多频点融合解算发展,其中相关器的个数也由早期的十几个相关器通道提升至几百个,涉及信号处理与定位解算的矩阵运算维度与矩阵运算次数也在不断攀升。因此,如何降低处理器运算复杂度与运算量并快速实现多种矩阵运算,成为目前导航接收机尤其是高精度导航接收机需要解决的问题。现有技术中,矩阵运算采用外界提供的软件封装库或自己编写代码实现,在嵌入式处理器中运行,如DSP芯片、ARM芯片等。存在以下问题:在嵌入式处理器中完成矩阵运算,由于FPU数目有限运算速度低、处理器占用率高,可能导致接收到的卫星信号失锁、无法实时完成信号处理与定位解算。
技术实现思路
本专利技术的目的在于克服现有技术的缺点与不足,提供一种双精度浮点矩阵运算处理器,只需嵌入式处理器在设置运算模式、矩阵维度与输入输出矩阵基地址等信息后,启动双精度浮点矩阵运算处理器,双精度浮点矩阵运算处理器将自行通过DMA方式传输输入矩阵数据进行运算,并将矩阵运算结果通过DMA方式返回嵌入式处理器,为嵌入式处理器节约了大量的双精度浮点运算时间,嵌入式处理器可将更多运算资源投入流程控制、资源调度,有效降低嵌入式处理器占用率高的问题,同时双精度浮点矩阵运算处理器采取多路双精度浮点运算模块方式进行运算加速,不受嵌入式处理器FPU数目有限运算速度低的限制。本专利技术的另一目的在于提供一种双精度浮点矩阵运算处理方法。本专利技术的目的通过以下的技术方案实现:一种双精度浮点矩阵运算处理器,其特征在于,所述矩阵运算处理器包括控制单元和分别与控制单元连接的接口单元、存储单元及浮点运算单元;所述控制单元根据运算模式进行选择,通过对浮点运算单元输入输出进行运算和存储的控制,完成不同矩阵运算;控制单元根据接口单元接收的指令,启动对应运算模式的控制模块,并连接浮点运算单元与存储单元的输入输出信号。在各运算控制模块内部,使用多个多路选择器连接浮点运算单元与存储单元的输入输出端口,通过控制浮点运算单元与存储单元的输入输出数据与时序,实现不同的运算模式。所述接口单元通过外部总线连接嵌入式处理器,用于与嵌入式处理器交互,对嵌入式处理器发出指令进行响应并回馈状态,获取矩阵运算所需矩阵数据及放回矩阵运算结果至嵌入式处理器指定地址;所述存储单元包括若干个单口RAM,用于存储矩阵数据;所述浮点运算单元包括双精度浮点加法模块、双精度浮点乘法模块和双精度浮点倒数运算模块,用于进行矩阵数据运算。进一步地,根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述控制器的运算模式包括矩阵乘法运算模式、矩阵分解运算模式、矩阵求逆运算模式。进一步地,所述接口单元通过DMA方式获取矩阵运算所需要的输入数据。进一步地,所述存储单元由M个存储深度为K,数据位宽为64bit的单口RAM组成。进一步地,所述RAM个数M根据并行度的提升而提升;所述存储深度K根据支持矩阵运算维度可扩展。进一步地,所述浮点运算单元包括L个双精度浮点加法模块、N个双精度浮点乘法模块和P个双精度浮点倒数运算模块。矩阵乘法、矩阵LDLτ分解和矩阵求逆的绝大部分运算由双精度浮点乘法和双精度浮点加法组成,其中矩阵LDLτ分解和矩阵求逆还需进行少量的双精度浮点除法运算,为节约资源和运算时间,除法部分由倒数运算和乘法运算替代。因此,若需提升双精度浮点矩阵运算处理器的运行速度,需同步提升双精度浮点加法模块和双精度浮点乘法模块的数量,同时增加同等数量的存储模块。进一步地,所述L≥2,N≥2,P≥1。本专利技术的另一目的通过以下的技术方案实现:一种双精度浮点矩阵运算方法,其特征在于,包括以下步骤:根据矩阵运算模式的不同,嵌入式处理器设置相应的工作模式,并设置相应输入输出矩阵维度与各自内存基地址,启动矩阵运算处理器;其中,当矩阵运算模式为矩阵乘法运算时,通过DMA传输第一矩阵至存储单元;根据工作模式的不同,传输相应的输入矩阵数据至存储单元;当工作模式为第一工作模式时,通过DMA传输第二矩阵的列向量至存储单元,否则传输第二矩阵的行向量至存储单元;第一矩阵与输入的第二矩阵向量进行矩阵乘法运算,将运算结果存储并传输至第三矩阵的内存空间,直至完成所有运算;当工作模式为第二工作模式时,运算结束,进入空闲状态,否则进入下一步;当工作模式为第三工作模式时,通过DMA传输第四矩阵至存储单元,否则传输第二矩阵至存储单元;通过DMA传输第三矩阵的行数据至存储单元,第二矩阵或第四矩阵与第三矩阵的行数据进行矩阵乘法运算,将运算结果存储并传输至第三矩阵的内存空间,直至所有运算完成,则运算结束,进入空闲状态;当矩阵运算模式为矩阵分解运算时,通过DMA传输第一矩阵至存储单元;循环计算第一矩阵中数据并缓存至存储单元,完成第一工作模式分解运算;若工作模式为第一工作模式,通过DMA传输第二矩阵、第三矩阵至指定内存空间,否则计算第二矩阵逆矩阵,根据第二矩阵逆矩阵计算第一矩阵逆矩阵,通过DMA传输第一矩阵逆矩阵至指定内存空间;当矩阵运算模式为矩阵求逆运算时,通过DMA传输第一矩阵至存储单元,读取第一矩阵中第i行第一个数据至第N行第一个数据,记录第i行至第N行中第一个数据为非零的行号,若为i,则无须动作,若不为i,则将对应行数据与第i行数据互换,若不存在,则上报矩阵无法求逆;对数据进行归一化处理,消除其他行对应的列,进行列变换,通过DMA传输第一矩阵逆矩阵至指定内存空间。本专利技术与现有技术相比,具有如下优点和有益效果:本专利技术采用DMA主动传输,无需嵌入式处理器介入,处理器计算资源占用极少;浮点运算采用并行双精度浮点运算提升矩阵运算速度;同时采用不同矩阵运算模式共享运算单元与存储单元,降低矩阵协处理面积与功耗;采用不同矩阵运算模式共享存储单元与浮点运算单元的模式,资源与面积占用小;可支持矩阵乘法、矩阵分解与矩阵求逆等多种运算模式,应用范围广泛;后续可通过修改控制单元增添其他矩阵运算模式,且可通过提升浮点运算单元并行度进一步提升运行速度,拥有较大的性能提升空间。附图说明图1为本专利技术所述一种双精度浮点矩阵运算处理器结构框图;图2为本专利技术所述实施例中控制单元运算模式组成框图;图3为本专利技术所述实施例中浮点运算单元组成结构框图;图4为本专利技术所述实施例中矩阵乘法运算模式运算流程图;图5为本专利技术所述实施例中矩阵分解运算模式运算流程图;图6为本专利技术所述实施例中矩阵求逆运算模式初等变换求逆运算流程图。具体实施方式下面结合实施例及附图对本专利技术作进一步详细的描述,但本专利技术的实施方式不限于此。实施例一种双精度浮点矩阵运算处理器,如图1所示,所述矩阵运算处理器包括控制单元本文档来自技高网...

【技术保护点】
1.一种双精度浮点矩阵运算处理器,其特征在于,所述矩阵运算处理器包括控制单元和分别与控制单元连接的接口单元、存储单元及浮点运算单元;/n所述控制单元根据运算模式进行选择,通过对浮点运算单元输入输出进行运算和存储的控制,完成不同矩阵运算;控制单元根据接口单元接收的指令,启动对应运算模式的控制模块,并连接浮点运算单元与存储单元的输入输出信号,在各运算控制模块内部,使用若干个多路选择器连接浮点运算单元与存储单元的输入输出端口,通过控制浮点运算单元与存储单元的输入输出数据与时序,实现不同的运算模式;/n所述接口单元用于与嵌入式处理器交互,对嵌入式处理器发出指令进行响应并回馈状态,获取矩阵运算所需矩阵数据及放回矩阵运算结果至嵌入式处理器指定地址;/n所述存储单元包括若干个单口RAM,用于存储矩阵数据;/n所述浮点运算单元包括双精度浮点加法模块、双精度浮点乘法模块和双精度浮点倒数运算模块,用于进行矩阵数据运算。/n

【技术特征摘要】
1.一种双精度浮点矩阵运算处理器,其特征在于,所述矩阵运算处理器包括控制单元和分别与控制单元连接的接口单元、存储单元及浮点运算单元;
所述控制单元根据运算模式进行选择,通过对浮点运算单元输入输出进行运算和存储的控制,完成不同矩阵运算;控制单元根据接口单元接收的指令,启动对应运算模式的控制模块,并连接浮点运算单元与存储单元的输入输出信号,在各运算控制模块内部,使用若干个多路选择器连接浮点运算单元与存储单元的输入输出端口,通过控制浮点运算单元与存储单元的输入输出数据与时序,实现不同的运算模式;
所述接口单元用于与嵌入式处理器交互,对嵌入式处理器发出指令进行响应并回馈状态,获取矩阵运算所需矩阵数据及放回矩阵运算结果至嵌入式处理器指定地址;
所述存储单元包括若干个单口RAM,用于存储矩阵数据;
所述浮点运算单元包括双精度浮点加法模块、双精度浮点乘法模块和双精度浮点倒数运算模块,用于进行矩阵数据运算。


2.根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述控制器的运算模式包括矩阵乘法运算模式、矩阵分解运算模式、矩阵求逆运算模式。


3.根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述接口单元通过DMA方式获取矩阵运算所需要的输入数据。


4.根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述存储单元由M个存储深度为K,数据位宽为64bit的单口RAM组成。


5.根据权利要求4所述的一种双精度浮点矩阵运算处理器,其特征在于,所述RAM个数M根据并行度的提升而提升;所述存储深度K根据支持矩阵运算维度可扩展。


6.根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述浮点运算单元包括L个双精度浮点加法模块、N个双精度浮点乘法模块和P个双精度浮点倒数运算模块。

...

【专利技术属性】
技术研发人员:邹四
申请(专利权)人:广州海格通信集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1