一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种存内模拟式线性方程组求解器、求解系统及求解方法与流程

2022-03-14 01:24:16 来源:中国专利 TAG:


1.本发明属于模拟电路技术领域,更具体地,涉及一种存内模拟式线性方程组求解器、求解系统及求解方法。


背景技术:

2.基于各种非易失性存储器的存算一体化架构是一种用于处理数据密集型任务的新兴计算架构,由于计算过程直接在存储器中进行,最大限度的降低了运算过程中的数据传输,使得存算一体化架构具有很高的计算能效,在线性方程组求解领域也具有较大的应用潜力。
3.然而,当前基于非易失存储器的线性方程组求解器通常基于混合精度架构或模数混合架构实现,在这些架构上执行传统的数值求解方法存在运算时间复杂度高,运算延时相对纯模拟计算高的特点,尤其在解决超大规模稀疏问题上存在困难。基于非易失性存储器的纯模拟线性方程组求解方案为克服上述挑战提出了新的思路。然而,受限于现阶段非易失性存储器件的非理想效应,使用非易失性存储器执行纯模拟计算存在着数据存储不精确,计算误差大的问题。


技术实现要素:

4.针对现有技术的以上缺陷或改进需求,本发明提供了一种存内模拟式线性方程组求解器、求解系统及求解方法,其目的在于提高存算一体化的计算精度、并且通过可扩展存算一体化的阵列模块,实现大规模线性方程组的快速处理。
5.为实现上述目的,按照本发明的第一方面,提供了一种存内模拟式线性方程组求解器,其包括存内计算模块和模拟运算模块,其中:
6.所述存内计算模块具有运算核,每个所述运算核包括l个运算组,每个所述运算组包括正向输入阵列和反向输入阵列,在每个所述运算组中,正向输入阵列的各列线作为运算组的输入端且通过反相器与反向输入阵列的各列线连接,反向输入阵列的行线的一端与正向输入阵列的行线相连,另一端作为对应运算组的输出端;
7.所述模拟运算模块包括n个加法器,每个加法器具有l个阵列输入端、1个外部输入端和1个输出端,第i加法器的各阵列输入端分别与各运算组的第i输出端连接,第i加法器的输出端分别与各所述运算组的第i输入端连接,n个所述加法器用于实现各运算组输出结果的移位和累加以及与外部输入端输入数据的求和。
8.优选地,每个所述加法器包括l个移位电路和1个加法电路,第i加法器的第g移位电路的输入端作为对应加法器的阵列输入端与第g运算组的第i输出端连接,第g移位电路用于对第g运算组的输出结果进行缩放以实现移位,所述加法电路的一端作为对应加法器的外部输入端接入外部电压,另一端与对应加法器中的l个移位电路的输出端连接,用于实现l个移位电路输出结果以及外部电压的累加。
9.优选地,在同一加法器中,第g移位电路包括第g运放以及第g电阻,所述第g运放的
同相输入端接地、反相输入端作为g移位电路的输入端接入第g运算组的运算结果,第g电阻连接于第g运放的反相输入端与输出端之间,第g运放的输出端作为对应第g移位电路的输出端输出对第g运算组的移位结果。
10.优选地,第g运算组的映射精度为mg,第g运算组用于映射第sg位开始的mg位数据,第g移位电路接收到第g运算组的运算结果后将运算结果向前移位s
g-1位,第g移位电路中的第g电阻的阻值rg=ag*r

,其中,为第g电阻的电阻比例系数。
11.优选地,每个加法器中的加法电路包括加法运放;
12.在同一加法器中:l个移位电路的输出端分别通过l个第一连接电阻连接至所述加法运放的反相输入端,所述加法运放的同相输入端通过第二连接电阻与输出端连接,加法运放的同相输入端通过分压电路接入外部输入电压,所述第一连接电阻与所述第二连接电阻的阻值相同。
13.优选地,所述正向输入阵列和反向输入阵列均为n*n阵列。
14.按照本发明的第二方面,提供了一种模拟式线性方程组求解系统,其包括:
15.上述任一项所述的模拟式线性方程组求解器;
16.处理器,所述处理器包括:
17.方程式转换单元,用于将原始线性方程组a
·
x=b转换为迭代等式x
k 1
=b
·
xk f;
18.矩阵转换单元,用于将矩阵b转换为二进制矩阵c,二进制矩阵c的精度为p;
19.矩阵拆分单元,用于将二进制矩阵c拆分为l个数据段,第g数据段的分割精度为mg,其中,
20.映射单元,用于将l个数据段分别映射至同一运算核中的l个运算组中,其中,第g数据段映射至第g运算核,第g运算核的存储精度大于或等于mg;
21.输入单元,用于将f输入加法器的外部输入端,以及将初始解矢量分别输入l个运算组的输入端。
22.按照本发明的第三方面,提供了一种模拟式线性方程组求解方法,其包括:
23.将原始线性方程组a
·
x=b转换为迭代等式x
k 1
=b
·
xk f;
24.将矩阵b转换为二进制矩阵c,二进制矩阵c的精度为p;
25.将二进制矩阵c拆分为l个数据段,第g数据段的分割精度为mg,其中,
[0026][0027]
将l个数据段分别映射至存内模拟式线性方程组求解器同一运算核的l个运算组中,将f输入存内模拟式线性方程组求解器中加法器的外部输入端,其中,第g数据段映射至第g运算核,第g运算核的存储精度大于或等于mg,所述存内模拟式线性方程组求解器为权利要求1至6任一项所述的存内模拟式线性方程组求解器;
[0028]
将初始解矢量分别输入l个运算组的输入端,并在n个加法器的输出端获取输出结果。
[0029]
优选地,初始解矢量的各元素为0。
[0030]
优选地,利用数值迭代算法将原始线性方程组a
·
x=b转换为迭代等式x
k 1
=b
·
xk f。
[0031]
总体而言,本发明所构思的以上技术方案与现有技术相比,由于求解器中包括存内计算模块和模拟运算模块,其中,模拟运算模块中的加法器的数量与运算组的输出端数量相同,每个加法器的输入端数量与运算组的数量相同。当运算矩阵被拆分为多个二进制矩阵后,每个二进制矩阵可存入一个运算组内的存储阵列中,每个运算组用于计算输入向量与运算阵列中元素相同位的计算结果,第i加法器用于获取l个运算组中第i行的计算结果并进行移位累加,输出第i行运算结果,并将运算结构反馈至l个运算组中的第i列输入端,使内计算模块和模拟运算模块相互连接并形成闭合循环回路,提高求解精度,且通过扩展运算组,实现大规模线性方程组的快速处理。同时,基于上述求解器的求解方法和系统,通过将原始线性方程组转变为迭代等式,并将矩阵拆分成二进制矩阵后映射入上述求解器中的运算组中,当在求解器的输入端输入初始矢量解后,便能在求解器的输出端输出最终矢量解。
附图说明
[0032]
图1是本技术一实施例中的存内模拟式线性方程组求解器的架构示意图;
[0033]
图2是本技术一实施例中的运算核内单个存储阵列的示意图;
[0034]
图3是本技术一实施例中的运算组构成示意图;
[0035]
图4是本技术一实施例中的运算组与加法器的连接方式示意图;
[0036]
图5是本技术一实施例中的反相器的结构示意图;
[0037]
图6是本技术一实施例中的加法器的结构示意图;
[0038]
图7是本技术一实施例中的模拟式线性方程组求解系统的框架图;
[0039]
图8是本技术一实施例中的模拟式线性方程组求解方法的步骤流程图。
具体实施方式
[0040]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0041]
如图1所示为本技术一实施例中的存内模拟式线性方程组求解器的架构示意图,该求解器包括存内计算模块和模拟运算模块。其中,存内计算模块具有多个运算核,每个运算核内包括l个运算组,每个运算组内又包括两个存储阵列。运算核的输出端与模拟运算模块的输入端连接,模拟运算模块的输出端与运算核的输入端连接,模拟运算模块核存内计算模块的运算核构成闭合循环回路。
[0042]
如图2所示为运算核内单个存储阵列的示意图,存储阵列为n*n阵列,即包括n条行线和n条列线,结构为十字交叉结构,存储节点位于十字交叉点上,矩阵数值以电导量写入存储阵列。具体的,该存储阵列为非易失存储器阵列,所选用的非易存储器件可以为阻变存储器(rram),相变存储器(pcm),nor-flash,自旋转移力矩磁存储器(stt-mram),铁电场效应晶体管(fefet)等。所述的非易失存储器件可以进行二值存储也可以进行多值存储。
[0043]
如图3所示为运算组构成示意图,同一个运算组内具有两个存储阵列,分别为正向
输入阵列和反向输入阵列,每个正向输入阵列与反向输入阵列编为一个运算组。正向输入阵列和反向输入阵列的行线一一对应连接,正向输入阵列的各列线作为运算组的输入端直接接入输入值,反向输入阵列的各列线通过反相器与输入端连接,输入值通过反相器进行反相后输入反向输入阵列,反向输入阵列的各列线未与正向输入阵列的一端作为运算组的输出端。因此,运算组具有n个输入端和n个输出端。输入信号以电压的形式输入阵列,在阵列内部执行模拟式矢量矩阵乘法运算,计算结果以电流量从阵列的输出端输出。
[0044]
如图4所示为运算组与加法器的连接方式示意图,模拟运算模块包括n个加法器,即加法器的数量与存储阵列的输出端数量相同,每个加法器具有l个阵列输入端,即每个加法器的阵列输入端的数量与运算组的数量相同,第i加法器的l个阵列输入端分别与l个运算核的第i输出端连接,即第i加法器用于实现l个运算组中的第i行元素与输入矢量的运算,n个加法器用于实现l个运算组各行元素与输入矢量的运算,即实现向量阵列与矢量的计算。其中,每个加法器还包括一个外部输入端,外部输入端用于独立输入求和数值,每个加法器实现l个运算组中的第i行元素与输入矢量的运算后,还与外部输入端所输入的数值进行求和。每个加法器包括一个输出端,第i加法器的输出端分别与各运算组的第i输入端连接,每个加法器最后的计算结果通过输出端输出并输入至运算组的第i输入端,形成迭代模式。在图4中,运算核中具有l=2个运算组,分别为第1运算组和第2运算组,每个运算组内具有2个3*3阵列,即n=3,加法器的数量与阵列的行线数量相同,为3个,分别为第1加法器、第2加法器和第3加法器,每个加法器的阵列输入端的数量与运算组的数量相同,为2个,分别为第1阵列输入端和第2阵列输入端。
[0045]
3个加法器和2个运算组的连接关系如下:
[0046]
对于第1加法器:
[0047]
第1阵列输入端与第1运算组的第1输出端连接,
[0048]
第2阵列输入端与第2运算组的第1输出端连接,
[0049]
第1加法器的输出端分别与第1运算组和第2运算组的第1输入端连接;
[0050]
对于第2加法器:
[0051]
第1阵列输入端与第1运算组的第2输出端连接,
[0052]
第2阵列输入端与第2运算组的第2输出端连接,
[0053]
第2加法器的输出端分别与第1运算组和第2运算组的第2输入端连接;
[0054]
对于第3加法器:
[0055]
第1阵列输入端与第1运算组的第3输出端连接,
[0056]
第2阵列输入端与第2运算组的第3输出端连接,
[0057]
第3加法器的输出端分别与第1运算组和第2运算组的第3输入端连接。
[0058]
在一实施例中,如图5所示为反相器的结构示意图,该反相器包括运放u
11
、电阻r
11
和电阻r
12
,其中,运算组的输入端通过电阻r
11
与运放u
11
的反相输入端连接,运放u
11
的反相输入端与运放u
11
的输出端连接,运放u
11
的正相输入端接地,运放u
11
的输出端与反向输入阵列的列线连接。
[0059]
在一实施例中,如图6所示为加法器的结构示意图,每个加法器中包括l个移位电路和1个加法电路。其中,第i加法器通过第g移位电路与第g运算组的第i输出端连接,第g移位电路用于对第g运算组的输出结果进行缩放以实现移位。加法电路的一端作为对应加法
器的外部输入端接入外部电压,另一端与对应加法器中的l个移位电路的输出端连接,用于实现外部l个移位电路输出结果以及外部电压的累加。图6为对应图4中的情况为例说明,模拟运算模块具有3个加法器.每个加法器具有2个移位电路和1个加法电路,每个移位电路的输入端对应一个阵列输入端,即每个加法器具有2个阵列输入端,分别为第1阵列输入端(lsb)和第2阵列输入端(msb)。
[0060]
在一具体的实施例中,具体参见图6,在同一加法器中具有l个移位电路,用于对运算组的输出根据二进制规则进行移位操作。具体的,第g移位电路包括第g运放以及第g电阻,第g运放的同相输入端接地、反相输入端作为g移位电路的输入端接入第g运算组的运算结果,第g电阻连接于第g运放的反相输入端与输出端之间,第g运放的输出端作为对应第g移位电路的输出端输出对第g运算组的移位结果。
[0061]
进一步的,第g运算组的映射精度为mg,即第g运算组用于映射mg位数据,l个运算组的数值映射精度分别为m1,m2,m3…ml
,每个运算组的数值映射精度小于当前存储阵列的存储精度。若运算核需要计算的数据为k-bit,将k-bit拆分为l个二进制数值后分别映射入l个运算组,则假设第g运算组用于映射第sg位开始的mg位数据,则
[0062]
第g移位电路接收到第g运算组的运算结果后将运算结果向前移位s
g-1位,第g移位电路中的第g电阻的阻值rg=ag*r

,其中,为第g电阻的电阻比例系数,也即移位系数。第g移位电路的移位结果为vg=ig*rg,ig为第g运算组的输出结果。
[0063]
继续以运算核具有2个运算组,每个加法器具有2个移位电路和1个加法电路为例说明,将2-bit的数据拆分为两组1-bit的数据分别映射入2个运算组:
[0064]
对于第1运算组,g=1,m1=1,s1=1,其映射第1位开始的1位数据,其输出的运算结果无需进行移位,其移位电路中的电阻r1=r


[0065]
对于第2运算组,g=2,m2=1,s2=2,其映射第2位开始的1位数据,其输出的运算结果需向前移动1位,其移位电路中的电阻r2=2r

,即r2=2r1。
[0066]
进一步的,继续参见图6,每个加法器中的加法电路包括加法运放u3,在同一加法器中:l个移位电路的输出端分别通过l个第一连接电阻r
21
连接至加法运放的反相输入端,加法运放的同相输入端通过第二连接电阻r
22
与输出端连接,加法运放u3的同相输入端通过分压电路接入外部输入电压,r
21
=r
22
。加法电路最终的输出结果为其中,vf为加法运放u3同相输入端从外部输入端输入电压v
in
所获得的分压,且通过设置分压电路,使-(l 1)*vf=v
in
,即使加法电路最终的输出结果为实现l个移位电路输出结果以及外部电压的累加。继续接上述运算核具有2个运算组,每个加法器具有2个移位电路和1个加法电路为例说明,l=2,在设置分压电路时,只要满足r
23
=2r
24
,便能满足加法电路最终的输出结果为
[0067]
当求解原始线性方程组a
·
x=b时,只需要确定其迭代等式x
k 1
=b
·
xk f,将矩阵b转换为二进制矩阵c并拆分为l个数据段,将l个数据段分别映射至上述模拟式线性方程组
求解器同一运算核中的l个运算组,在运算组的输入端输入初始解矢量后,便能在加法器输出端获取原始线性方程组的解,通过上述求解器,其计算精度较高且计算速度较快。
[0068]
本技术还涉及一种基于上述模拟式线性方程组求解器的模拟式线性方程组求解系统,如图7所示,模拟式线性方程组求解系统包括处理器以及与该处理器通信连接的模拟式线性方程组求解器。其中,处理器包括:
[0069]
方程式转换单元,用于将原始线性方程组a
·
x=b转换为迭代等式x
k 1
=b
·
xk f;
[0070]
矩阵转换单元,用于将矩阵b转换为二进制矩阵c,二进制矩阵c的精度为p;
[0071]
矩阵拆分单元,用于将二进制矩阵c拆分为l个数据段,第g数据段的分割精度为mg,其中,
[0072]
映射单元,用于将l个数据段分别映射至同一运算核中的l个运算组中,其中,第g数据段映射至第g运算核,第g运算核的存储精度大于或等于mg;
[0073]
输入单元,用于将f输入加法器的外部输入端,以及将初始解矢量分别输入l个运算组的输入端。
[0074]
其中,处理器和求解器可以为分离的两个器件,也可以整合为一个器件,在此对两者结合的形式不做限定。在一实施例中,处理器可为任意计算机或任意终端内的处理器。
[0075]
通过上述模拟式线性方程组求解系统,便可快速求解原始线性方程组a
·
x=b。
[0076]
本技术还涉及一种模拟式线性方程组求解方法,如图8所示,该求解方法包括:
[0077]
步骤s100:将原始线性方程组a
·
x=b转换为迭代等式x
k 1
=b
·
xk f。
[0078]
具体的,可以使用数值迭代算法将原始线性方程组a
·
x=b转换为迭代等式x
k 1
=b
·
xk f。数值迭代算法具体可为雅克比算法、高斯-赛德尔算法、sor算法等。
[0079]
步骤s200:将矩阵b转换为二进制矩阵c,二进制矩阵c的精度为p。
[0080]
步骤s300:将二进制矩阵c拆分为l个数据段。
[0081]
其中,第g数据段的分割精度为mg,
[0082]
步骤s400:将l个数据段分别映射至存内模拟式线性方程组求解器同一运算核的l个运算组中,将f输入存内模拟式线性方程组求解器中加法器的外部输入端。
[0083]
其中,第g数据段映射至第g运算核,第g运算核的存储精度大于或等于mg,存内模拟式线性方程组求解器为上述存内模拟式线性方程组求解器。
[0084]
步骤s500:将初始解矢量分别输入l个运算组的输入端,并在n个加法器的输出端获取输出结果。
[0085]
为便于理解,以下以一具体的实施例进行说明。
[0086]
求解线性方程组根据数值迭代方法,该线性方程组的数值迭代公式为x
k 1
=b
·
xk xf,得到矩阵b和矢量f
[0087][0088]
f=[1/4 1/2 1/4]
t
[0089]
考虑对矩阵b的存储过程,将b根据比例系数进行缩放,则得到将矩阵b1按照二进制方式进行表示,则有将矩阵b1按照二进制方式进行表示,则有映射时将其分解为和和分别存入运算组中。将叠加向量中的元素表示为对应大小的电压作为加法器的输入电压。即将迭代过程中的累加向量xf映射进入电路中加法器单元的输入电压。由于本实施例中f=[1/4 1/2 1/4]
t
,因此在图4中本实施例的加法器模块的三个电压输入端口对应输入的外部输入电压v
in
分别为0.25v、0.5v和0.25v。即直接将f中的元素数值作为对应加法器单元的输入电压。此时向电路输入初始解矢量x0=[0 0 0]
t
,即可得到本实施例所求解的线性方程组的解。
[0090]
综上,由于求解器中包括存内计算模块和模拟运算模块,其中,模拟运算模块中的加法器的数量与运算组的输出端数量相同,每个加法器的输入端数量与运算组的数量相同。当运算矩阵被拆分为多个二进制矩阵后,每个二进制矩阵可存入一个运算组内的存储阵列中,每个运算组用于计算输入向量与运算阵列中元素相同位的计算结果,第i加法器用于获取l个运算组中第i行的计算结果并进行移位累加,输出第i行运算结果,并将运算结构反馈至l个运算组中的第i列输入端,使内计算模块和模拟运算模块相互连接并形成闭合循环回路,提高求解精度,且通过扩展运算组,实现大规模线性方程组的快速处理。同时,基于上述求解器的求解方法和系统,通过将原始线性方程组转变为迭代等式,并将矩阵拆分成二进制矩阵后映射入上述求解器中的运算组中,当在求解器的输入端输入初始矢量解后,便能在求解器的输出端输出最终矢量解。
[0091]
本领域的技术人员容易理解,以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献