首页 / 专利库 / 信号处理 / 信号 / 一种双精度浮点矩阵运算处理器及方法

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

阅读:972发布:2023-05-29

专利汇可以提供一种双精度浮点矩阵运算处理器及方法专利检索,专利查询,专利分析的服务。并且本 发明 公开的一种双 精度 浮点矩阵运算处理器,矩阵运算处理器包括控制单元 接口 单元、存储单元及浮点运算单元;控制单元根据运算模式进行选择,通过对浮点运算单元输入输出进行运算和存储控制;接口单元用于与嵌入式处理器交互,对嵌入式处理器发出指令进行响应并回馈状态,获取矩阵运算所需矩阵数据及放回矩阵运算结果至嵌入式处理器 指定 地址;存储单元包括若干个单口RAM,用于存储矩阵数据;浮点运算单元包括双精度浮点加法模 块 、双精度浮点乘法模块和双精度浮点倒数运算模块,用于进行矩阵数据运算;本发明采用并行双精度浮点运算提升矩阵运算速度;同时采用不同矩阵运算模式共享运算单元与存储单元,降低矩阵协处理面积与功耗。,下面是一种双精度浮点矩阵运算处理器及方法专利的具体信息内容。

1.一种双精度浮点矩阵运算处理器,其特征在于,所述矩阵运算处理器包括控制单元和分别与控制单元连接的接口单元、存储单元及浮点运算单元;
所述控制单元根据运算模式进行选择,通过对浮点运算单元输入输出进行运算和存储的控制,完成不同矩阵运算;控制单元根据接口单元接收的指令,启动对应运算模式的控制模,并连接浮点运算单元与存储单元的输入输出信号,在各运算控制模块内部,使用若干个多路选择器连接浮点运算单元与存储单元的输入输出端口,通过控制浮点运算单元与存储单元的输入输出数据与时序,实现不同的运算模式;
所述接口单元用于与嵌入式处理器交互,对嵌入式处理器发出指令进行响应并回馈状态,获取矩阵运算所需矩阵数据及放回矩阵运算结果至嵌入式处理器指定地址;
所述存储单元包括若干个单口RAM,用于存储矩阵数据;
所述浮点运算单元包括双精度浮点加法模块、双精度浮点乘法模块和双精度浮点倒数运算模块,用于进行矩阵数据运算。
2.根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述控制器的运算模式包括矩阵乘法运算模式、矩阵分解运算模式、矩阵求逆运算模式。
3.根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述接口单元通过DMA方式获取矩阵运算所需要的输入数据。
4.根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述存储单元由M个存储深度为K,数据位宽为64bit的单口RAM组成。
5.根据权利要求4所述的一种双精度浮点矩阵运算处理器,其特征在于,所述RAM个数M根据并行度的提升而提升;所述存储深度K根据支持矩阵运算维度可扩展。
6.根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述浮点运算单元包括L个双精度浮点加法模块、N个双精度浮点乘法模块和P个双精度浮点倒数运算模块。
7.根据权利要求6所述的一种双精度浮点矩阵运算处理器,其特征在于,所述L≥2,N≥
2,P≥1。
8.一种双精度浮点矩阵运算方法,其特征在于,包括以下步骤:
根据矩阵运算模式的不同,嵌入式处理器设置相应的工作模式,并设置相应输入输出矩阵维度与各自内存基地址,启动矩阵运算处理器;
其中,当矩阵运算模式为矩阵乘法运算时,通过DMA传输第一矩阵至存储单元;根据工作模式的不同,传输相应的输入矩阵数据至存储单元;当工作模式为第一工作模式时,通过DMA传输第二矩阵的列向量至存储单元,否则传输第二矩阵的行向量至存储单元;第一矩阵与输入的第二矩阵向量进行矩阵乘法运算,将运算结果存储并传输至第三矩阵的内存空间,直至完成所有运算;当工作模式为第二工作模式时,运算结束,进入空闲状态,否则进入下一步;当工作模式为第三工作模式时,通过DMA传输第四矩阵至存储单元,否则传输第二矩阵至存储单元;通过DMA传输第三矩阵的行数据至存储单元,第二矩阵或第四矩阵与第三矩阵的行数据进行矩阵乘法运算,将运算结果存储并传输至第三矩阵的内存空间,直至所有运算完成,则运算结束,进入空闲状态;
当矩阵运算模式为矩阵分解运算时,通过DMA传输第一矩阵至存储单元;循环计算第一矩阵中数据并缓存至存储单元,完成第一工作模式分解运算;若工作模式为第一工作模式,通过DMA传输第二矩阵、第三矩阵至指定内存空间,否则计算第二矩阵逆矩阵,根据第二矩阵逆矩阵计算第一矩阵逆矩阵,通过DMA传输第一矩阵逆矩阵至指定内存空间;
当矩阵运算模式为矩阵求逆运算时,通过DMA传输第一矩阵至存储单元,读取第一矩阵中第i行第一个数据至第N行第一个数据,记录第i行至第N行中第一个数据为非零的行号,若为i,则无须动作,若不为i,则将对应行数据与第i行数据互换,若不存在,则上报矩阵无法求逆;对数据进行归一化处理,消除其他行对应的列,进行列变换,通过DMA传输第一矩阵逆矩阵至指定内存空间。

说明书全文

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

技术领域

[0001] 本发明涉及矩阵运算的研究领域,特别涉及一种双精度浮点矩阵运算处理器及方法。

背景技术

[0002] 随着GPS、GLONASS、GALILEO与BDS的建设,导航接收机开始逐步由单系统单频点定位解算向多系统多频点融合解算发展,其中相关器的个数也由早期的十几个相关器通道提升至几百个,涉及信号处理与定位解算的矩阵运算维度与矩阵运算次数也在不断攀升。因此,如何降低处理器运算复杂度与运算量并快速实现多种矩阵运算,成为目前导航接收机尤其是高精度导航接收机需要解决的问题。
[0003] 现有技术中,矩阵运算采用外界提供的软件封装库或自己编写代码实现,在嵌入式处理器中运行,如DSP芯片、ARM芯片等。存在以下问题:在嵌入式处理器中完成矩阵运算,由于FPU数目有限运算速度低、处理器占用率高,可能导致接收到的卫星信号、无法实时完成信号处理与定位解算。

发明内容

[0004] 本发明的目的在于克服现有技术的缺点与不足,提供一种双精度浮点矩阵运算处理器,只需嵌入式处理器在设置运算模式、矩阵维度与输入输出矩阵基地址等信息后,启动双精度浮点矩阵运算处理器,双精度浮点矩阵运算处理器将自行通过DMA方式传输输入矩阵数据进行运算,并将矩阵运算结果通过DMA方式返回嵌入式处理器,为嵌入式处理器节约了大量的双精度浮点运算时间,嵌入式处理器可将更多运算资源投入流程控制、资源调度,有效降低嵌入式处理器占用率高的问题,同时双精度浮点矩阵运算处理器采取多路双精度浮点运算模方式进行运算加速,不受嵌入式处理器FPU数目有限运算速度低的限制。
[0005] 本发明的另一目的在于提供一种双精度浮点矩阵运算处理方法。
[0006] 本发明的目的通过以下的技术方案实现:
[0007] 一种双精度浮点矩阵运算处理器,其特征在于,所述矩阵运算处理器包括控制单元和分别与控制单元连接的接口单元、存储单元及浮点运算单元;
[0008] 所述控制单元根据运算模式进行选择,通过对浮点运算单元输入输出进行运算和存储的控制,完成不同矩阵运算;控制单元根据接口单元接收的指令,启动对应运算模式的控制模块,并连接浮点运算单元与存储单元的输入输出信号。在各运算控制模块内部,使用多个多路选择器连接浮点运算单元与存储单元的输入输出端口,通过控制浮点运算单元与存储单元的输入输出数据与时序,实现不同的运算模式。
[0009] 所述接口单元通过外部总线连接嵌入式处理器,用于与嵌入式处理器交互,对嵌入式处理器发出指令进行响应并回馈状态,获取矩阵运算所需矩阵数据及放回矩阵运算结果至嵌入式处理器指定地址;
[0010] 所述存储单元包括若干个单口RAM,用于存储矩阵数据;
[0011] 所述浮点运算单元包括双精度浮点加法模块、双精度浮点乘法模块和双精度浮点倒数运算模块,用于进行矩阵数据运算。
[0012] 进一步地,根据权利要求1所述的一种双精度浮点矩阵运算处理器,其特征在于,所述控制器的运算模式包括矩阵乘法运算模式、矩阵分解运算模式、矩阵求逆运算模式。
[0013] 进一步地,所述接口单元通过DMA方式获取矩阵运算所需要的输入数据。
[0014] 进一步地,所述存储单元由M个存储深度为K,数据位宽为64bit的单口RAM组成。
[0015] 进一步地,所述RAM个数M根据并行度的提升而提升;所述存储深度K根据支持矩阵运算维度可扩展。
[0016] 进一步地,所述浮点运算单元包括L个双精度浮点加法模块、N个双精度浮点乘法模块和P个双精度浮点倒数运算模块。矩阵乘法、矩阵LDLτ分解和矩阵求逆的绝大部分运算由双精度浮点乘法和双精度浮点加法组成,其中矩阵LDLτ分解和矩阵求逆还需进行少量的双精度浮点除法运算,为节约资源和运算时间,除法部分由倒数运算和乘法运算替代。因此,若需提升双精度浮点矩阵运算处理器的运行速度,需同步提升双精度浮点加法模块和双精度浮点乘法模块的数量,同时增加同等数量的存储模块。
[0017] 进一步地,所述L≥2,N≥2,P≥1。
[0018] 本发明的另一目的通过以下的技术方案实现:
[0019] 一种双精度浮点矩阵运算方法,其特征在于,包括以下步骤:
[0020] 根据矩阵运算模式的不同,嵌入式处理器设置相应的工作模式,并设置相应输入输出矩阵维度与各自内存基地址,启动矩阵运算处理器;
[0021] 其中,当矩阵运算模式为矩阵乘法运算时,通过DMA传输第一矩阵至存储单元;根据工作模式的不同,传输相应的输入矩阵数据至存储单元;当工作模式为第一工作模式时,通过DMA传输第二矩阵的列向量至存储单元,否则传输第二矩阵的行向量至存储单元;第一矩阵与输入的第二矩阵向量进行矩阵乘法运算,将运算结果存储并传输至第三矩阵的内存空间,直至完成所有运算;当工作模式为第二工作模式时,运算结束,进入空闲状态,否则进入下一步;当工作模式为第三工作模式时,通过DMA传输第四矩阵至存储单元,否则传输第二矩阵至存储单元;通过DMA传输第三矩阵的行数据至存储单元,第二矩阵或第四矩阵与第三矩阵的行数据进行矩阵乘法运算,将运算结果存储并传输至第三矩阵的内存空间,直至所有运算完成,则运算结束,进入空闲状态;
[0022] 当矩阵运算模式为矩阵分解运算时,通过DMA传输第一矩阵至存储单元;循环计算第一矩阵中数据并缓存至存储单元,完成第一工作模式分解运算;若工作模式为第一工作模式,通过DMA传输第二矩阵、第三矩阵至指定内存空间,否则计算第二矩阵逆矩阵,根据第二矩阵逆矩阵计算第一矩阵逆矩阵,通过DMA传输第一矩阵逆矩阵至指定内存空间;
[0023] 当矩阵运算模式为矩阵求逆运算时,通过DMA传输第一矩阵至存储单元,读取第一矩阵中第i行第一个数据至第N行第一个数据,记录第i行至第N行中第一个数据为非零的行号,若为i,则无须动作,若不为i,则将对应行数据与第i行数据互换,若不存在,则上报矩阵无法求逆;对数据进行归一化处理,消除其他行对应的列,进行列变换,通过DMA传输第一矩阵逆矩阵至指定内存空间。
[0024] 本发明与现有技术相比,具有如下优点和有益效果:
[0025] 本发明采用DMA主动传输,无需嵌入式处理器介入,处理器计算资源占用极少;浮点运算采用并行双精度浮点运算提升矩阵运算速度;同时采用不同矩阵运算模式共享运算单元与存储单元,降低矩阵协处理面积与功耗;采用不同矩阵运算模式共享存储单元与浮点运算单元的模式,资源与面积占用小;可支持矩阵乘法、矩阵分解与矩阵求逆等多种运算模式,应用范围广泛;后续可通过修改控制单元增添其他矩阵运算模式,且可通过提升浮点运算单元并行度进一步提升运行速度,拥有较大的性能提升空间。附图说明
[0026] 图1为本发明所述一种双精度浮点矩阵运算处理器结构框图
[0027] 图2为本发明所述实施例中控制单元运算模式组成框图;
[0028] 图3为本发明所述实施例中浮点运算单元组成结构框图;
[0029] 图4为本发明所述实施例中矩阵乘法运算模式运算流程图
[0030] 图5为本发明所述实施例中矩阵分解运算模式运算流程图;
[0031] 图6为本发明所述实施例中矩阵求逆运算模式初等变换求逆运算流程图。

具体实施方式

[0032] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0033] 实施例
[0034] 一种双精度浮点矩阵运算处理器,如图1所示,所述矩阵运算处理器包括控制单元和分别与控制单元连接的接口单元、存储单元及浮点运算单元;
[0035] 所述控制单元根据运算模式进行选择,通过对浮点运算单元输入输出进行运算和存储的控制,完成不同矩阵运算模式的运算功能;所述控制器的运算模式包括矩阵乘法运算模式、矩阵分解运算模式、矩阵求逆运算模式,如图2所示;控制单元根据接口单元接收的指令,启动对应运算模式的控制模块,并连接浮点运算单元与存储单元的输入输出信号。在各运算控制模块内部,使用多个多路选择器连接浮点运算单元与存储单元的输入输出端口,通过控制浮点运算单元与存储单元的输入输出数据与时序,实现不同的运算模式。
[0036] 所述接口单元通过外部总线连接嵌入式处理器,用于与嵌入式处理器交互,对嵌入式处理器发出指令进行响应并回馈状态,通过DMA方式获取矩阵运算所需矩阵数据及放回矩阵运算结果至嵌入式处理器指定地址;
[0037] 所述存储单元包括137个存储深度128、数据位宽64bit的单口RAM,用于存储矩阵数据,RAM个数可根据并行度的提升而提升,RAM存储深度可根据最大支持矩阵运算维度进行扩展;
[0038] 所述浮点运算单元如图3所示,包括8个双精度浮点加法模块、8个双精度浮点乘法模块和1个双精度浮点倒数运算模块,用于进行矩阵数据运算。矩阵乘法、矩阵LDLτ分解和矩阵求逆的绝大部分运算由双精度浮点乘法和双精度浮点加法组成,其中矩阵LDLτ分解和矩阵求逆还需进行少量的双精度浮点除法运算,为节约资源和运算时间,除法部分由倒数运算和乘法运算替代。因此,若需提升双精度浮点矩阵运算处理器的运行速度,需同步提升双精度浮点加法模块和双精度浮点乘法模块的数量,同时增加同等数量的存储模块。
[0039] 根据不同模式的运算过程如下:
[0040] 矩阵乘法运算,如图4所示,对于AB、ABAτ、AτBA等常见的矩阵乘法运算,为节约存储资源带来的面积与功耗,对于ABAτ、AτBA采用分步骤计算的方式,第一步计算矩阵乘法AB、AτB,第二步计算矩阵乘法ABAτ、AτBA。此外,在矩阵乘法中,采用数据传输与矩阵运算同步进行的设计,降低传输时间对矩阵运算速度的影响。具体如下:
[0041] 1)嵌入式处理器设置工作模式为AB、ABAτ或AτBA,设置输入输出矩阵维度与各自内存基地址,启动矩阵运算处理器;
[0042] 2)DMA传输第一矩阵B至存储单元;
[0043] 3)若工作模式为第一工作模式AτBA,则DMA传输第二矩阵A的列向量至存储单元,否则传输第二矩阵A的行向量至存储单元;
[0044] 4)第一矩阵B与输入的第二矩阵A向量进行矩阵乘法运算;
[0045] 5)存储并传输矩阵乘法运算结果至第三矩阵C的内存空间,若所有运算完毕,则进入下一步,否则重复步骤3)~5);
[0046] 6)若工作模式为第二工作模式AB,运算结束,进入空闲状态,否则进入下一步;
[0047] 7)若工作模式为第三工作模式ABAτ,则DMA传输第四矩阵Aτ至存储单元,否则传输第二矩阵A至存储单元;
[0048] 8)DMA传输第三矩阵C的行数据至存储单元;
[0049] 9)第二矩阵A或第四矩阵Aτ与第三矩阵C的行数据进行矩阵乘法运算;
[0050] 10)存储并传输矩阵乘法运算结果至第三矩阵C的地址空间,若所有运算完毕,则运算结束,进入空闲状态;否则重复步骤8)~10)。
[0051] 矩阵分解运算,如图5所示,针对正定矩阵的LDLτ分解及基于LDLτ分解的矩阵求逆,由于LDL分解部分共用,对其控制部分进行统一设计,根据模式选择是否求逆运算。正定矩阵的LDLτ分解表达式为A=LDLτ,其中:
[0052]
[0053]
[0054] 其递推公式为:
[0055] λi,j=0(j>i),
[0056] λi,i=1(i=1,2,…,n),
[0057]
[0058]
[0059]
[0060] 需要进行基于LDLτ分解的求逆运算,在LDLτ分解的基础上计算L-1。
[0061]
[0062] 其递推公式为:
[0063] ρi,i=1,
[0064]
[0065] 对于A-1,其计算公式为:
[0066]
[0067] 其中,
[0068] 具体过程如下:
[0069] 1)嵌入式处理器设置运算模式为LDLτ矩阵分解或LDLτ矩阵分解求逆,设置输入输出矩阵维度与各自内存基地址,启动矩阵运算处理器;
[0070] 2)DMA传输第一矩阵A至存储单元;
[0071]
[0072] 3)循环计算x、λ、d、1/d并缓存至存储单元,完成LDLτ分解运算;
[0073]
[0074] 4)若运算模式为第一工作模式LDLτ矩阵分解,则DMA传输第二矩阵L、第三矩阵D至指定内存空间;否则计算第二矩阵逆矩阵L-1。
[0075]
[0076] 5)根据第二矩阵逆矩阵L-1,计算第一矩阵逆矩阵A-1;
[0077]
[0078] 6)DMA传输第一矩阵逆矩阵A-1至指定内存空间。
[0079] 矩阵求逆运算,如图6所示,与只针对正定矩阵的基于LDLτ分解的矩阵求逆不同,初等变换矩阵求逆适用于所有可逆矩阵。对于初等变换求逆,其原理为通过行变换来完成求逆过程,求逆过程中固定数值或被消除的数值均无需存储,每次需要缓存的数据数量保持不变。为适应非正定矩阵的求逆运算,在过程中需增加非零项的处理,若存在非零项,在归一化之前进行行交换,并在求逆运算完毕后进行列变换。
[0080] 矩阵A的初等变换矩阵求逆过程如下:
[0081]
[0082] 由上可见,初等变换求逆的过程即通过行变换消元的方式将单位矩阵I变换为矩阵A的逆矩阵的过程。根据观察,矩阵变换过程中左侧矩阵已运算部分和右侧矩阵待运算部分均为单位矩阵I的其中一部分为固定值,在实际运算过程中可只存储非固定值部分,此方法可节约近一半的存储空间。
[0083] 具体过程如下:
[0084] 1)嵌入式处理器设置运算模式为初等变换矩阵求逆,设置输入输出矩阵维度与各自内存基地址,启动矩阵运算处理器;
[0085] 2)DMA传输第一矩阵A至存储单元;
[0086] 3)读取第i行第一个数据(归一化第i行时,该行的第i列数据已经存储至第一个数据)至第N行第一个数据,记录第i行至第N行中第一个数据为非零的行号,若为i,则无需动作;若非i,则将对应行数据与第i行数据互换,若不存在,则上报矩阵无法求逆。(若为正定矩阵,无需此步骤)
[0087] 4)求1/Ai,i后归一化;
[0088] 5)消除其他行对应的列;
[0089] 6)列变换,消除初等行变换造成的影响;
[0090] 7)DMA传输矩阵A-1至指定内存空间。
[0091] 与现有的方法相比,双精度浮点矩阵运算处理器在矩阵运算速度上有如下优点:矩阵数据传输采用DMA主动传输,无需嵌入式处理器介入,处理器计算资源占用极少;浮点运算并行度,速度提升明显;采用不同矩阵运算模式共享存储单元与浮点运算单元的模式,资源与面积占用小;可支持矩阵乘法、矩阵分解与矩阵求逆等多种运算模式,应用范围广泛;后续可通过修改控制单元增添其他矩阵运算模式,且可通过提升浮点运算单元并行度进一步提升运行速度,拥有较大的性能提升空间。
[0092] 上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈