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

向量乘加器的ROM存内计算装置和电子设备的制作方法

2023-02-02 02:41:44 来源:中国专利 TAG:

向量乘加器的rom存内计算装置和电子设备
技术领域
1.本技术涉及存内计算技术领域,特别涉及一种向量乘加器的rom存内计算装置和电子设备。


背景技术:

2.基于传统冯诺依曼架构进行计算的方式,大量的性能功耗都用在了数据传输和读写上,效率比较低。基于上述问题,出现了存内计算(computing-in-memory,cim)架构,cim架构将计算单元和存储单元集成于同一芯片,构成具有计算能力的存储单元,并在其中完成运算,这种极度近邻的布局消除了数据移动的延迟和功耗,改善了“存储墙”和“功耗墙”的问题,因此相对于传统架构的提高了计算能效比。但是,目前cim架构的芯片,在计算较大数据量时,需要较为复杂的电路结构来实现功能。


技术实现要素:

3.一种向量乘加器的rom存内计算装置和电子设备,可以简化存内计算装置的电路结构。
4.第一方面,提供一种向量乘加器的rom存内计算装置,包括:n个单比特输出模块,n>1,每个单比特输出模块包括乘法单元,乘法单元包括存储器和乘法电路,存储器为只读存储器,乘法电路包括第一乘法输入端、第二乘法输入端和乘法输出端,第二乘法输入端电连接于存储器的输出端,乘法电路用于对第一乘法输入端和第二乘法输入端的数值进行乘法计算并通过乘法输出端输出结果至单比特输出模块的输出端;第一加法器,第一加法器包括n个第一加法输入端,第a个第一加法输入端电连接于第a个单比特输出模块的输出端,a的取值为1、2、

、n;移位累加器,用于周期性对第一加法器的输出结果进行单比特移位累加计算。
5.在一种可能的实施方式中,第一加法器为数字加法器。
6.在一种可能的实施方式中,第一加法器包括模拟加法电路和模数转换器;模拟加法电路包括n个电容,第a个电容的第一端为第a个第一加法输入端,n个电容的第二端连接于模数转换器的输入端,模数转换器的输出端作为第一加法器的输出端。
7.在一种可能的实施方式中,每个单比特输出模块包括多路选通电路和m个乘法单元,m>1,在每个单比特输出模块中,每个乘法输出端通过多路选通电路电连接于单比特输出模块的输出端。
8.在一种可能的实施方式中,对于同一个单比特输出模块,m个乘法单元的第一乘法输入端电连接于同一个初始输入端。
9.在一种可能的实施方式中,每个多路选通电路包括m个选通开关,在每个单比特输出模块中,第j个选通开关串联于第j个乘法单元的乘法输出端与单比特输出模块的输出端之间,j的取值为0、1、2、

、m-1;存内计算装置工作于m个周期,每个周期包括q个子周期;在第j个周期,每个多路选通电路中第q-1-j个选通开关导通;在每个周期的第k个子周期,初
始输入端输入第q-1-k位数值,k的取值为0、1、2、

、q-1。
10.在一种可能的实施方式中,每个多路选通电路包括m个选通开关,在每个单比特输出模块中,第j个选通开关串联于第j个乘法单元的乘法输出端与单比特输出模块的输出端之间,j的取值为0、1、2、

、m-1;存内计算装置工作于m个周期,每个周期包括q个子周期;在第j个周期,初始输入端输入第q-1-k位数值,k的取值为0、1、2、

、q-1;在每个周期的第k个子周期,每个多路选通电路中第q-1-j个选通开关导通。
11.在一种可能的实施方式中,每个单比特输出模块包括p个第一多路选通电路和p个乘法单元组,每个乘法单元组包括m个乘法单元,p>1,m>1,在每个单比特输出模块中,第b个乘法单元组中的每个乘法输出端通过第b个第一多路选通电路电连接于单比特输出模块的输出端,b的取值为1、2、

、p;每个单比特输出模块还包括p个初始输入节点,在第b个乘法单元组中,m个乘法单元的第一乘法输入端电连接于第b个初始输入节点;每个单比特输出模块还包括第二多路选通电路,第二多路选通电路包括一个初始输入端和p个选通端,第b个选通端电连接于第b个初始输入节点;每个初始输入节点通过开关器件电连接于低电平输出端。
12.在一种可能的实施方式中,存内计算装置包括:m个输出模块组,m>1,每个输出模块组均包括n个单比特输出模块和第一加法器,第c个输出模块组还包括移位器,c的取值为2、3、

、m,第c个输出模块组中移位器用于对第一加法器的输出结果进行c-1比特的移位;第二加法器,第二加法器包括m个第二加法输入端,第1个输出模块组中第一加法器的输出端电连接于第1个第二加法输入端,第c个输出模块组中移位器的输出端电连接于第c个第二加法输入端;移位累加器具体用于,周期性对第二加法器的输出结果进行单比特移位累加计算。
13.在一种可能的实施方式中,存内计算装置还包括:n个初始输入端;对于每个输出模块组,第a个单比特输出模块中第一乘法输入端电连接于第a个初始输入端。
14.在一种可能的实施方式中,存内计算装置工作于m个周期;在第j个周期,初始输入端输入第q-1-k位数值,k的取值为0、1、2、

、q-1;第1个第一加法器用于将从n个第一加法输入端得到的数值进行加法计算,并输出至第1个第二加法输入端;第c个第一加法器用于将从n个第一加法输入端得到的数值进行加法计算,并输出至第c个输出模组的移位器;第c个输出模组的移位器对输入的数值进行单比特移位并输出至第c个第二加法输入端。
15.在一种可能的实施方式中,每个单比特输出模块包括p个乘法单元,p>1,在每个单比特输出模块中,每个乘法单元的乘法输出端电连接于单比特输出模块的输出端;存内计算装置还包括n个输入节点组,每个输入节点组包括p个初始输入节点,对于每个输出模块组,第a个单比特输出模块的第b个乘法单元的第一乘法输入端电连接于第a个输入节点组的第b个初始输入节点;存内计算装置还包括n个第二多路选通电路,每个第二多路选通电路包括一个初始输入端和p个选通端,第a个第二多路选通电路的第b个选通端电连接于第a个输入节点组的第b个初始输入节点;每个初始输入节点通过开关器件电连接于低电平输出端。
16.在一种可能的实施方式中,移位累加器还用于对移位累加计算的结果进行二进制补码计算。
17.在一种可能的实施方式中,乘法电路包括:第一晶体管,其第一端电连接于乘法输
出端,其控制端电连接于第一乘法输入端;第二晶体管,其第一端电连接于第一晶体管的第二端,其第二端电连接于低电平输出端,其控制端电连接于第二乘法输入端;第一晶体管和第二晶体管为n型晶体管。
18.在一种可能的实施方式中,存内计算装置还包括:与第一加法器对应的n个预充电晶体管,第一加法器的第a个第一加法输入端电连接于第a个预充电晶体管的第一端,预充电晶体管的第二端电连接于高电平输出端。
19.第二方面,提供一种电子设备,包括上述的存内计算装置。
20.本技术实施例中的向量乘加器的rom存内计算装置和电子设备,通过单比特输出模块中乘法电路和存储器的配合实现一个比特的乘法计算,通过第一加法器获取来自于不同单比特输出模块的数值进行加法计算,移位累加器周期性对第一加法器的输出结果进行单比特移位累加计算,通过这种方式,可以基于较为简单的电路结构实现多位二进制数值和多个权重之间的乘加计算,即简化了存内计算装置的电路结构。另外,移位累加还用于对移位累加计算的结果进行二进制补码计算,以实现带符号位的计算。
附图说明
21.图1为本技术实施例中一种存内计算装置的结构示意图;
22.图2a为本技术实施例中一种单比特输出模块的结构示意图;
23.图2b为本技术实施例中另一种单比特输出模块的结构示意图;
24.图3为本技术实施例中另一种存内计算装置的结构示意图;
25.图4a为本技术实施例中另一种存内计算装置的结构示意图;
26.图4b为本技术实施例中另一种存内计算装置的结构示意图;
27.图4c为本技术实施例中一种存内计算装置中部分电路的结构示意图;
28.图5a为本技术实施例中另一种存内计算装置的结构示意图;
29.图5b为本技术实施例中另一种存内计算装置的结构示意图;
30.图6a为本技术实施例中另一种存内计算装置的结构示意图;
31.图6b为本技术实施例中另一种存内计算装置的结构示意图;
32.图7a为本技术实施例中另一种存内计算装置的结构示意图;
33.图7b为本技术实施例中另一种存内计算装置的结构示意图;
34.图8a为本技术实施例中另一种存内计算装置的结构示意图;
35.图8b为本技术实施例中另一种存内计算装置的结构示意图。
具体实施方式
36.本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术。
37.如图1和图2a所示,本技术实施例提供一种向量乘加器的只读存储器(read-only memory,rom)存内计算装置,包括:n个单比特输出模块10,n>1,每个单比特输出模块10包括乘法单元m,乘法单元m包括存储器20和乘法电路30,存储器20为rom,相对于可读写的存储器,只读存储器的结构更加简单,节省空间,乘法电路30包括第一乘法输入端min1、第二乘法输入端min2和乘法输出端mout,第二乘法输入端min2电连接于存储器20的输出端,乘
法电路30用于对第一乘法输入端min1和第二乘法输入端min2的数值进行乘法计算并通过乘法输出端mout输出结果至单比特输出模块10的输出端;第一加法器a1,第一加法器a1具体可以包括模拟加法电路,或者第一加法器a1为数字加法器,第一加法器a1包括n个第一加法输入端,例如n=4,第一加法器a1包括4个第一加法输入端ain1、ain2、ain3、ain4,第a个第一加法输入端aina电连接于第a个单比特输出模块的输出端out,a的取值为1、2、

、n,例如存内计算装置包括4个单比特输出模块10,4个单比特输出模块10的输出端out分别电连接于4个第一加法输入端;移位累加器40,用于周期性对第一加法器a1的输出结果进行单比特移位累加计算,也就是说,移位累加器40在每个周期中对第一加法器a1的输出结果和待累加值进行加法计算并将计算结果进行单比特移位后作为下个周期的待累加值。
38.具体地,存内计算装置用于实现二进制乘加运算。存储器20用于存储1比特的二进制数值,例如1或0,高电平代表1,低电平代表0,存储器20中存储的数值可以通过存储器20的输出端输出至乘法电路30的第二乘法输入端min2。每个单比特输出模块10的4个存储器20用于存储一个二进制数值,这个二进制数值可以称为权重w,权重w是二进制乘加运算中的一个输入值,4个单比特输出模块10的4个存储器20即存储了4个权重w。乘法电路30的第一乘法输入端min1用于获取二进制乘加运算中的另一个输入值x。移位累加器40用于输出二进制乘加运算的结果y,图中的y即为二进制乘加运算的结果y的输出端。
39.在本技术实施例中,通过初始输入端输入的输入值为2位或2位以上的二进制数值,下面对具体乘加计算过程进行说明。
40.假设存内计算装置还包括4个初始输入端x1、x2、x3和x4,分别电连接于4个单比特输出模块10的4个第一乘法输入端min1。假设需要计算其中,xi《2:0》为一个3位二进制数,xi《0》为其中的最低有效位(least significant bit,lsb),权值为20,即为1;xi《1》为lsb 1位,权值为21,即为2;xi《2》为最高有效位(most significant bit,msb),权值为22,即为4。另外根据二进制乘法的原理,据此将所要计算的公式展开,即为4。另外根据二进制乘法的原理,据此将所要计算的公式展开例如,x1用于输入x1《2:0》,x2用于输入x2《2:0》,x3用于输入x3《2:0》。x1所对应连接的乘法单元m中存储器20所存储的权重为w1,x2所对应连接的乘法单元m中存储器20所存储的权重为w2,x3所对应连接的乘法单元m中存储器20所存储的权重为w3,x4所对应连接的乘法单元m中存储器20所存储的权重为w4。如表1所示。
41.表1
[0042][0043]
[0044]
表1示意了图1中存内计算装置工作过程中各端的信号,在第一周期,初始输入端x1、x2、x3和x4分别输入一个比特位x1《2》、x2《2》、x3《2》、x4《2》,以第1个单比特输出模块10为例进行说明,其中乘法电路30对通过第一乘法输入端min1获取的x1《2》和通过第二乘法输入端min2获取的w1进行乘法计算,得到x1《2》
×
w1并输出至ain1,类似的每个单比特输出模块10均进行乘法计算并输出对应的数值至第一加法器a1,第一加法器a1将从4个第一加法输入端得到的数值进行加法计算,得到并输出至移位累加器40,此时由于没有待累加值,因此移位累加器40将进行单比特移位操作变为并作为下个周期的待累加值;在第二周期,初始输入端输入第二个比特位xi《1》,以第1个单比特输出模块10为例进行说明,其中乘法电路30对通过第一乘法输入端min1获取的x1《1》和通过第二乘法输入端min2获取的w1进行乘法计算,得到x1《1》
×
w1并输出至ain1,类似的每个单比特输出模块10均进行乘法计算并输出对应的数值至第一加法器a1,第一加法器a1将从4个第一加法输入端得到的数值进行加法计算,得到并输出至移位累加器40,移位累加器40将在第一周期得到的待累加值与第一加法器a1在第二周期输出的进行加法计算,得到进行加法计算,得到并将进行单比特移位操作,得到作为下个周期的待累加值;在第三周期,初始输入端输入第三个比特位xi《0》,以第1个单比特输出模块10为例进行说明,其中乘法电路30对通过第一乘法输入端min1获取的x1《0》和通过第二乘法输入端min2获取的w1进行乘法计算,得到x1《0》
×
w1并输出至ain1,类似的每个单比特输出模块10均进行乘法计算并输出对应的数值至第一加法器a1,第一加法器a1将从4个第一加法输入端得到的数值进行加法计算,得到并输出至移位累加器40,移位累加器40将在第二周期得到的待累加值与第一加法器a1在第三周期输出的进行加法计算,得到进行加法计算,得到即实现了的乘加计算。
[0045]
本技术实施例中的存内计算装置,通过单比特输出模块中乘法电路和存储器的配合实现一个比特的乘法计算,通过第一加法器获取来自于不同单比特输出模块的数值进行加法计算,移位累加器周期性对第一加法器的输出结果进行单比特移位累加计算,通过这种方式,可以基于较为简单的电路结构实现多位二进制数值和多个权重之间的乘加计算,即简化了存内计算装置的电路结构。
[0046]
在一种可能的实施方式中,第一加法器a1为数字加法器。
[0047]
在一种可能的实施方式中,如图3所示,第一加法器a1包括模拟加法电路和模数转换器(analog-to-digital converter,adc);模拟加法电路包括n个电容,第a个电容的第一端为第a个第一加法输入端,n个电容的第二端连接于模数转换器adc的输入端,模数转换器adc的输出端作为第一加法器a1的输出端。例如,模拟加法电路包括c1、c2、c3、c4这四个电容,通过电荷的方式即可以实现单比特的加法计算,这种计算方法利用电容来实现,相比于数字加法器,电容更加节省空间,不过需要增加adc来将加法计算的结果进行模数转换,以
便于后续基于数字的加法计算结果继续进行移位累加。
[0048]
在一种可能的实施方式中,如图2a所示,乘法电路30包括:第一晶体管m1,其第一端电连接于乘法输出端mout,其控制端电连接于第一乘法输入端min1;第二晶体管m2,其第一端电连接于第一晶体管m1的第二端,其第二端电连接于低电平输出端v1,其控制端电连接于第二乘法输入端min2;第一晶体管m1和第二晶体管m2为n型晶体管。
[0049]
具体地,第一晶体管m1和第二晶体管m2组成的乘法电路30实际是一个与非门,当第一晶体管m1和第二晶体管m2中的任意一者截止时,乘法输出端mout均保持高电平,即输出1,在本技术实施例中,高电平代表1,低电平代表0,低电平输出端v1用于输出代表0的低电平;只有当第一晶体管m1和第二晶体管m2均导通时,乘法输出端mout会被低电平输出端v1拉低,从而变为低电平,即输出0。第一晶体管m1和第二晶体管m2均为n型晶体管,即在高电平的控制下会导通,在低电平的控制下会截止。如表2所示。
[0050]
表2
[0051]
min1min2mout110101011001
[0052]
表2示意了图2a中乘法电路30各端在不同状态下对应的数值,可见,乘法输出端mout输出的值实际上是第一乘法输入端min1和第二乘法输入端min2的数值乘法结果的取反值,取反值可以在后续电路中通过取反恢复,例如可以在第一加法器a1处取反恢复。所以说,可以通过由第一晶体管m1和第二晶体管m2组成的乘法电路30来实现乘法运算的功能。需要说明的是,图2a中的乘法电路30结构仅为举例,本技术实施例对于乘法电路的具体结构不做限定,只要能够实现单比特二进制数值的乘法计算即可。
[0053]
在一种可能的实施方式中,如图2a所示,存内计算装置还包括:与第一加法器对应的n个预充电晶体管m0,第一加法器a1的第a个第一加法输入端aina电连接于第a个预充电晶体管m0的第一端,预充电晶体管m0的第二端电连接于高电平输出端v2。在乘法电路30每次进行乘法计算之前,控制预充电晶体管m0导通,以实现通过预充电晶体管m0向乘法输出端mout充入高电平的作用。然后控制预充电晶体管m0截止,此时乘法电路30可以进行乘法计算,如果第一晶体管m1和第二晶体管m2中的至少一者截止,则乘法输出端mout输出之前预充的高电平,即输出1;如果第一晶体管m1和第二晶体管m2均导通,则乘法输出端mout被低电平输出端v1拉低,变为低电平,即输出0。
[0054]
在一种可能的实施方式中,如图2b、图4a和图4b所示,图4a中第一加法器为数字加法器,图4b中第一加法器包括模拟加法电路,每个单比特输出模块10包括多路选通电路11和m个乘法单元m,m>1,在每个单比特输出模块10中,每个乘法输出端mout通过多路选通电路11电连接于单比特输出模块10的输出端out。例如,在每个单比特输出模块10中,多路选通电路11包括与每个乘法单元m对应的选通开关,选通开关串联于乘法单元m的第二乘法输入端min2和单比特输出模块10的输出端out之间。
[0055]
在一种可能的实施方式中,如图2b、图4a和图4b所示,对于同一个单比特输出模块10,m个乘法单元m的第一乘法输入端min1电连接于同一个初始输入端。
[0056]
在一种可能的实施方式中,每个多路选通电路11包括m个选通开关s,例如s0、s1、s2、

、s7,在每个单比特输出模块10中,第j个选通开关s串联于第j个乘法单元m的乘法输出端mout与单比特输出模块10的输出端out之间,j的取值为0、1、2、

、m-1,也就是说,每个乘法单元m的乘法输出端mout与单比特输出模块10的输出端out之间均串联有一个选通开关s;存内计算装置工作于m个周期t,每个周期t包括q个子周期t;在第j个周期tj,每个多路选通电路11中第q-1-j个选通开关s
q-1-j
导通;在每个周期t的第k个子周期tk,初始输入端输入第q-1-k位数值,k的取值为0、1、2、

、q-1。
[0057]
具体地,如图2b、图4a和图4b所示,例如n=8,m=8,q=8。n表示单比特输出模块10的数量,即存内计算装置包括8个单比特输出模块10;m表示单比特输出模块10中乘法单元m的数量,或者说单比特输出模块10中选通开关s的数量,每个单比特输出模块10包括8个乘法单元m,每个乘法单元m对应一个选通开关s;q表示每个周期t中子周期t的数量。对于同一个单比特输出模块10,其中的8个乘法单元m中的第一乘法输入端min1电连接于同一个初始输入端,即每个单比特输出模块10对应一个初始输入端,8个单比特输出模块10对应8个初始输入端,这8个初始输入端分别为x0、x1、

、xi、

、x7,x0用于输入x0《7:0》,x1用于输入x1《7:0》,x2用于输入x2《7:0》,x3用于输入x3《7:0》,x4用于输入x4《7:0》,x5用于输入x5《7:0》,x6用于输入x6《7:0》,x7用于输入x7《7:0》,也就是说,每个初始输入端均输入一个8位二进制数。多路选通电路11包括8个选通开关,分别为s0、s1、

、s7。第一加法器a1包括8个第一加法输入端,分别为ain0、ain1、

、aini、

ain7。图4b中第一加法器a1包括模拟加法电路和adc,模拟加法电路包括8个电容,分别为c0、c1、c2、

、ci、

、c7,8个电容的第一端分别为8个第一加法输入端,8个电容的第二端电连接于adc的输入端。每个单比特输出模块10的8个乘法单元m的存储器用于存储一个8位二进制数作为权重wi《7:0》,其中每个存储器用于存储8位中的一位,图4a和图4b中示意了每个乘法单元m中所存储的数值,第i个单比特输出模块10中的存储的8个权重分别为wi《0》、wi《1》、

、wi《7》。也就是说,图4a和图4b所示的存内计算装置用于计算
[0058]
存内计算装置周期性工作以实现乘加的计算过程,对于的计算,计算过程包括m个周期t,m=8,即包括8个周期t,分别为t0、t1、t2、

、t7,其中每个周期又包括n个子周期t,n=8,即每个周期t包括8个子周期t,分别为t0、t1、

、t7。
[0059]
表3a
[0060][0061]
如表3a所示,表3a示意了图4a和图4b中存内计算装置工作过程中各端的信号,对于选通开关s0~s7来说,1表示导通,0表示截止,j=0时,在第0个周期t0,第7个选通开关s7导通,其他的选通开关截止,也就是说,在周期t0,只有第7个单比特输出模块10的输出端能够输出数值至第一加法器a1,其他单比特输出模块10的输出端与第一加法器a1之间截止,k=0时,在周期t0的第0个子周期t0,初始输入端xi输入第7位数值xi《7》,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《7》
×
wi《7》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至移位累加器40,此时由于没有待累加值,因此移位累加器40将进行单比特移位操作变为并作为下个子周期的待累加值;k=1时,在周期t0的第1个子周期t1,初始输入端xi输入第6位数值xi《6》,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《6》
×
wi《7》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至移位累加器40,移位累加器40将在上一子周期得到的待累加值与本子周期第一加法器a1输出的数值进行加法计算,得到并将并将进行单比特移位操作,得到作为下个子周期的待累加值;依次类推,k的值逐渐增加,直到在周期t0的的第7个子周期t7,初
始输入端xi输入第0位数值xi《0》,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《0》
×
wi《7》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至移位累加器40,移位累加器40将在上一子周期得到的待累加值周期得到的待累加值与本子周期第一加法器a1输出的数值进行加法计算,得到进行加法计算,得到下一个子周期为新的周期t1,在周期t0,完成了与wi《7》相关的读取和乘加计算,可以将暂存,作为与wi《7》对应的乘加计算值;在第1个周期t1,第6个选通开关s6导通,其他的选通开关截止,也就是说,在第1个周期t1,只有第6个单比特输出模块10的输出端能够输出数值至第一加法器a1,其他单比特输出模块10的输出端与第一加法器a1之间截止,在周期t1的第0个子周期t0,初始输入端xi输入第7位数值xi《7》,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《7》
×
wi《6》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至移位累加器40,由于是新的周期移位累加器40没有待累加值,因此直接将进行单比特移位操作,得到作为下一个子周期的待累加值;k=1时,在周期t1的第1个子周期t1,初始输入端xi输入第6位数值xi《6》,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《6》
×
wi《6》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至移位累加器40,移位累加器40将在上一子周期得到的待累加值与本子周期第一加法器a1输出的数值进行加法计算,得到并进行单比特移位操作,得到作为下一个子周期的待累加值;依次类推,k的值逐渐增加,直到在周期t1的第7个子周期t7,移位累加器40进行加法计算得到下一个子周期为新的周期t2,在周期t1,完成了与wi《6》相关的读取和乘加计算,可以将《6》相关的读取和乘加计算,可以将暂存,作为与wi《6》对应的乘加计算值;依次类推,在周期t2,第5个选通开关s5导通,其他的选
通开关截止,经过周期t2的t0至t7子周期,移位累加器40得到与wi《5》对应的乘加计算值《5》对应的乘加计算值依次类推,直到周期t7,得到与wi《0》对应的乘加计算值也就是说,m个时段与m个乘法单元m一一对应,由于每个单比特输出模块10中的m个乘法单元m的存储器分别存储权重wi《7:0》的8个比特位,在每个周期,得到与权重中一个比特位对应的乘加计算值,最后,将在8个周期得到的8个乘加计算值基于对应的权值相加,例如,将与wi《7》对应的乘加计算值
×27
以实现移动7比特的移位,将与wi《6》对应的乘加计算值
×26
以实现移动6比特的移位,将与wi《5》对应的乘加计算值
×25
以实现移动5比特的移位,将与wi《4》对应的乘加计算值
×24
以实现移动4比特的移位,将与wi《3》对应的乘加计算值
×23
以实现移动3比特的移位,将与wi《2》对应的乘加计算值
×22
以实现移动2比特的移位,将与wi《1》对应的乘加计算值
×
21以实现移动1比特的移位,wi《0》对应的乘加计算值无需移位,然后将这8个乘加计算值相加,既可以得到
[0062][0063]
可见,图4a和图4b所述的存内计算装置可以通过较为简单的电路结构实现复杂的乘加运算。其中,通过利用多路选通电路11,可以实现基于多位权重的乘加计算,且无需较多数量的加法器,从而实现了电路结构的简化。
[0064]
在一种可能的实施方式中,图4a可以结合图4c的结构实现上述计算过程,或者,4b可以结合图4c的结构实现上述计算过程,其中,每个初始输入端分别通过q个输入选通开关电连接于q位数值,装置包括q个输入选通开关组,s01、s02、

、s07,第i个初始输入端xi对应电连接第i个输入选通开关组s0i,在每个输入选通开关组中,第j个输入选通开关sij串联于第q-1-j位数值wi《q-1-j》端之间,在每个周期的第j个子周期tj,第j个输入选通开关sij导通,其他输入选通开关截止,以实现初始输入端xi输入的切换。
[0065]
在一种可能的实施方式中,每个多路选通电路11包括m个选通开关s,例如s0、s1、s2、

、s7,在每个单比特输出模块10中,第j个选通开关s串联于第j个乘法单元m的乘法输出端mout与单比特输出模块10的输出端out之间,j的取值为0、1、2、

、m-1,也就是说,每个乘法单元m的乘法输出端mout与单比特输出模块10的输出端out之间均串联有一个选通开关s;存内计算装置工作于m个周期t,每个周期t包括q个子周期t;在第j个周期tj,初始输入端输入第q-1-k位数值,k的取值为0、1、2、

、q-1;在每个周期t的第k个子周期tk,每个多路选通电路11中第q-1-j个选通开关s
q-1-j
导通。
[0066]
具体地,仍以图2b、图4a和图4b所示结构为例说明,例如n=8,m=8,q=8。n表示单比特输出模块10的数量,即存内计算装置包括8个单比特输出模块10;m表示单比特输出模块10中乘法单元m的数量,或者说单比特输出模块10中选通开关s的数量,每个单比特输出
模块10包括8个乘法单元m,每个乘法单元m对应一个选通开关s;q表示每个周期t中子周期t的数量。对于同一个单比特输出模块10,其中的8个乘法单元m中的第一乘法输入端min1电连接于同一个初始输入端,即每个单比特输出模块10对应一个初始输入端,8个单比特输出模块10对应8个初始输入端,这8个初始输入端分别为x0、x1、

、xi、

、x7,x0用于输入x0《7:0》,x1用于输入x1《7:0》,x2用于输入x2《7:0》,x3用于输入x3《7:0》,x4用于输入x4《7:0》,x5用于输入x5《7:0》,x6用于输入x6《7:0》,x7用于输入x7《7:0》,也就是说,每个初始输入端均输入一个8位二进制数。多路选通电路11包括8个选通开关,分别为s0、s1、

、s7。第一加法器a1包括8个第一加法输入端,分别为ain0、ain1、

、aini、

ain7。图4b中第一加法器a1包括模拟加法电路和adc,模拟加法电路包括8个电容,分别为c0、c1、c2、

、ci、

、c7,8个电容的第一端分别为8个第一加法输入端,8个电容的第二端电连接于adc的输入端。每个单比特输出模块10的8个乘法单元m的存储器用于存储一个8位二进制数作为权重wi《7:0》,其中每个存储器用于存储8位中的一位,图4a或图4b中示意了每个乘法单元m中所存储的数值,第i个单比特输出模块10中的存储的8个权重分别为wi《0》、wi《1》、

、wi《7》。也就是说,图4a或图4b所示的存内计算装置用于计算
[0067]
存内计算装置周期性工作以实现乘加的计算过程,对于的计算,计算过程包括m个周期t,m=8,即包括8个周期t,分别为t0、t1、t2、

、t7,其中每个周期又包括n个子周期t,n=8,即每个周期t包括8个子周期t,分别为t0、t1、

、t7。
[0068]
表3b
[0069][0070][0071]
如表3b所示,表3b示意了图4a和图4b中存内计算装置工作过程中各端的信号,对于选通开关s0~s7来说,1表示导通,0表示截止,j=0时,在第0个周期t0,初始输入端xi输入第7位数值xi《7》,k=0时,在周期t0的第0个子周期t0,第7个选通开关s7导通,其他的选通开
关截止,即只有第7个单比特输出模块10的输出端能够输出数值至第一加法器a1,其他单比特输出模块10的输出端与第一加法器a1之间截止,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《7》
×
wi《7》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至移位累加器40,此时由于没有待累加值,因此移位累加器40将进行单比特移位操作变为并作为下个子周期的待累加值;k=1时,在周期t0的第1个子周期t1,初始输入端xi仍输入第7位数值xi《7》,第6个选通开关s6导通,其他的选通开关截止,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《7》
×
wi《6》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到进行加法计算,得到并输出至移位累加器40,移位累加器40将在上一子周期得到的待累加值与本子周期第一加法器a1输出的数值进行加法计算,得到进行加法计算,得到并将进行单比特移位操作,得到作为下个子周期的待累加值;依次类推,k的值逐渐增加,直到在周期t0的第7个子周期t7,第0个选通开关s0导通,其他的选通开关截止,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《7》
×
wi《0》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到得到并输出至移位累加器40,移位累加器40将在上一子周期得到的待累加值输出至移位累加器40,移位累加器40将在上一子周期得到的待累加值与本子周期第一加法器a1输出的数值进行加法计算,得到进行加法计算,得到下一个子周期为新的周期t1,在周期t0,完成了与xi《7》相关的读取和乘加计算,可以将《7》相关的读取和乘加计算,可以将暂存,作为与xi《7》对应的乘加计算值;在第1个周期t1,初始输入端xi输入第6位数值xi《6》,k=0时,在周期t1的第0个子周期t0,第7个选通开关s7导通,其他的选通开关截止,也就是说,只有第7个单比特输出模块10的输出端能够输出数值至第一加法器a1,其他单比特输出模块10的输出端与第一加法器a1之间截止,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《6》
×
wi《7》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计
算,得到算,得到算,得到并输出至移位累加器40,由于是新的周期移位累加器40没有待累加值,因此直接将进行单比特移位操作,得到作为下一个子周期的待累加值;k=1时,在周期t1的第1个子周期t1,第6个选通开关s6导通,其他的选通开关截止,每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《6》
×
wi《6》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至移位累加器40,移位累加器40将在上一子周期得到的待累加值与本子周期第一加法器a1输出的数值进行加法计算,得到进行加法计算,得到并进行单比特移位操作,得到并进行单比特移位操作,得到作为下一个子周期的待累加值;依次类推,k的值逐渐增加,直到在周期t1的第7个子周期t7,第0个选通开关s0导通,其他的选通开关截止,移位累加器40进行加法计算得到导通,其他的选通开关截止,移位累加器40进行加法计算得到下一个子周期为新的周期t2,在周期t1,完成了与xi《6》相关的读取和乘加计算,可以将《6》相关的读取和乘加计算,可以将暂存,作为与xi《6》对应的乘加计算值;依次类推,在第2个周期t2,初始输入端xi仍输入第5位数值xi《5》,在周期t2的t0至t7子周期,选通开关s7至s0依次导通,移位累加器40得到与wi《5》对应的乘加计算值值依次类推,直到周期t7,得到与wi《0》对应的乘加计算值《0》对应的乘加计算值也就是说,m个周期与m个乘法单元m一一对应,由于每个单比特输出模块10中的m个乘法单元m的存储器分别存储权重wi《7:0》的8个比特位,在每个周期,得到与权重中一个比特位对应的乘加计算值,最后,将在8个周期得到的8个乘加计算值基于对应的权值相加,例如,将与xi《7》对应的乘加计算值
×27
以实现移动7比特的移位,将与xi《6》对应的乘加计算值
×26
以实现移动6比特的移位,将与xi《5》对应的乘加计算值
×25
以实现移动5比特的移位,将与xi《4》对应的乘加计算值
×24
以实现移动4比特的移位,将与xi《3》对应的乘加计算值
×23
以实现移动3比特的移位,将与xi《2》对应的乘加计算值
×22
以实现移动2比特的移位,将与xi《1》对应的乘加计算值
×
21以实现移动1比特的移位,xi《0》对应的乘加计算值无需移位,然后将这8个乘加计算值相加,既可以得到
[0072][0073][0074]
在一种可能的实施方式中,图4a可以结合图4c的结构实现上述计算过程,或者,4b可以结合图4c的结构实现上述计算过程,其中,每个初始输入端分别通过q个输入选通开关电连接于q位数值,装置包括q个输入选通开关组,s01、s02、

、s07,第i个初始输入端xi对应电连接第i个输入选通开关组s0i,在每个输入选通开关组中,第k个输入选通开关sik串联于第q-1-k位数值wi《q-1-k》端之间,在第k个周期tk,第k个输入选通开关sik导通,其他输入选通开关截止,以实现初始输入端xi输入的切换。
[0075]
在一种可能的实施方式中,如图2a、图5a和图5b所示,图5a中第一加法器为数字加法器,图5b中第一加法器包括模拟加法电路,每个单比特输出模块10包括p个第一多路选通电路111和p个乘法单元组13,每个乘法单元组13包括m个乘法单元m,p>1,m>1,在每个单比特输出模块10中,第b个乘法单元组13中的每个乘法输出端mout通过第b个第一多路选通电路111电连接于单比特输出模块10的输出端out,b的取值为1、2、

、p;每个单比特输出模块10还包括p个初始输入节点,在第b个乘法单元组13中,m个乘法单元m的第一乘法输入端min1电连接于第b个初始输入节点;每个单比特输出模块10还包括第二多路选通电路112,第二多路选通电路112包括一个初始输入端和p个选通端,第b个选通端电连接于第b个初始输入节点;每个初始输入节点通过开关器件电连接于低电平输出端v1。
[0076]
具体地,例如,p=2,m=8,n=4,每个单比特输出模块10包括两个第一多路选通电路111和两个乘法单元组13,每个乘法单元组13包括8个乘法单元m,在每个单比特输出模块10中,第1个乘法单元组13中的每个乘法输出端mout通过第1个第一多路选通电路111电连接于单比特输出模块10的输出端out,第2个乘法单元组13中的每个乘法输出端mout通过第2个第一多路选通电路111电连接于单比特输出模块10的输出端out;在第1个乘法单元组13中,8个乘法单元m的第一乘法输入端min1电连接于第1个初始输入节点ina,在第2个乘法单元组13中,8个乘法单元m的第一乘法输入端min1电连接于第2个初始输入节点inb;第二多路选通电路112包括第1个选通开关sa和第2个选通开关sb,第1个选通开关sa和第2个选通开关sb的第一端均电连接于该初始输入端,第1个选通开关sa的第二端电连接于第1个初始输入节点ina,第2个选通开关sb的第二端电连接于第2个初始输入节点inb。第1个初始输入节点ina通过第1个开关器件sa电连接于第一电压端v1,第2个初始输入节点inb通过第2个开关器件sb电连接于第一电压端v1。例如共有4个初始输入端x0、x1、x2和x3,其中,第1个第二多路选通电路112对应初始输入端x0,第2个第二多路选通电路112对应初始输入端x1,第3个第二多路选通电路112对应初始输入端x2,第4个第二多路选通电路112对应初始输入端x3。
[0077]
类似的,图5a和图5b的存内计算装置的工作过程与图4a和图4b的存内计算装置的工作过程类似,对于的计算,计算过程包括p个阶段,p=2,即包括2个阶段p1和p2,每个阶段包括m个时段,m=4,即包括4个时段,分别为t0、t1、t2、t3,其中
每个时段又每个阶段包括n个周期,n=8,即包括8个周期,分别为t0、t1、

、t7。
[0078]
表4
[0079][0080]
如表4所示,表4示意了图5a和图5b中存内计算装置工作过程中各端的信号,对于选通开关选通开关sa、选通开关sb、开关器件sa和开关器件sb来说,1表示导通,0表示截止,在p1阶段,选通开关sa导通,选通开关sb截止,开关器件sa截止,开关器件sb导通,初始输入端x0、x1、x2、x3的输入信号均输入至初始输入节点ina,而初始输入节点inb的信号会被拉低,低电平即为0,不会对后续的计算造成影响,也就是说,在p1阶段,仅通过每个单比特输出模块10中的第1个乘法单元组13进行计算;在p2阶段,选通开关sa截止,选通开关sb导通,开关器件sa导通,开关器件sb截止,初始输入端x0、x1、x2、x3的输入信号均输入至初始输入节点inb,而初始输入节点ina的信号会被拉低,低电平即为0,不会对后续的计算造成影响,也就是说,在p2阶段,仅通过每个单比特输出模块10中的第2个乘法单元组13进行计算。在p1阶段中t0时段的t0周期,初始输入端x0输入x0《7》,初始输入端x1输入x2《7》,初始输入端x2输入x4《7》,初始输入端x3输入x6《7》,每个单比特输出模块10的第1个乘法单元组13中的乘法电路30进行乘法计算,得到x0《7》
×
w0《7》、x2《7》
×
w2《7》、x4《7》
×
w4《7》、x6《7》
×
w6《7》并输出至第一加法器a1,第一加法器a1将从4个第一加法输入端ain0、ain1、ain2、ain3得到数值进行加法计算,得到∑
i=0,2,4,6
[xi《7》
×
wi《7》]=x0《7》
×
w0《7》 x2《7》
×
w2《7》 x4《7》
×
w4《7》 x6《7》
×
w6《7》并输出至移位累加器40,此时由于没有待累加值,因此移位累加器40将该值进行单比特移位操作变为[x0《7》
×
w0《7》 x2《7》
×
w2《7》 x4《7》
×
w4《7》 x6《7》
×
w6《7》]
×
21并作为下个周期的待累加值;在p1阶段中t0时段的t1周期,初始输入端x0输入x0《6》,x1输入x2《6》,x2输入x4《6》,x3输入x6《6》,每个单比特输出模块10的乘法电路30进行乘法计算,得到x0《6》
×
w0《7》、x2《6》
×
w2《7》、x4《6》
×
w4《7》、x6《6》
×
w6《7》并输出至第一加法器a1,第一加法器
a1将从4个第一加法输入端ain0、ain1、ain2、ain3得到数值进行加法计算,得到∑
i=0,2,4,6
[xi《6》
×
wi《7》]=x0《6》
×
w0《7》 x2《6》
×
w2《7》 x4《6》
×
w4《7》 x6《6》
×
w6《7》并输出至移位累加器40,移位累加器40将在上一周期得到的待累加值与本周期第一加法器a1输出的数值进行加法计算,得到∑
i=0,2,4,6
[xi《7:6》
×
wi《7》]=[x0《7》
×
w0《7》 x2《7》
×
w2《7》 x4《7》
×
w4《7》 x6《7》
×
w6《7》
×
21 x0《6》
×
w0《7》 x2《6》
×
w2《7》 x4《6》
×
w4《7》 x6《6》
×
w6《7》],并将该数值进行单比特移位操作,得到的数值作为下个周期的待累加值;依次类推,直到在t0时段的第7个周期t7,移位累加器40得到∑
i=0,2,4,6
[xi《7》
×
wi《7》
×27
xi《6》
×
wi《7》
×26
xi《5》
×
wi《7》
×25


xi《0》
×
wi《7》],下一个周期为新的时段t1时段,在t0时段,完成了与w
i=0,2,4,6
《7》相关的读取和乘加计算,可以将该数值暂存,作为与w
i=0,2,4,6
《7》对应的乘加计算值;在p1阶段的t1时段,第6个选通开关s7导通,其他的选通开关截止,也就是说,只有第6个单比特输出模块10的输出端能够输出数值至第一加法器a1,其他单比特输出模块10的输出端与第一加法器a1之间截止,经过p1阶段的t1时段,移位累加器40得到∑
i=0,2,4,6
[xi《7》
×
wi《6》
×27
xi《6》
×
wi《6》
×26
xi《5》
×
wi《6》
×25


xi《0》
×
wi《6》],下一个周期为新的时段t2时段,在t1时段,完成了与w
i=0,2,4,6
《6》相关的读取和乘加计算,可以将该数值暂存,作为与w
i=0,2,4,6
《6》对应的乘加计算值;在p1阶段的t2时段,第5个选通开关s5导通,其他的选通开关截止,经过p1阶段的t2时段,移位累加器40得到与w
i=0,2,4,6
《5》对应的乘加计算值∑
i=0,2,4,6
[xi《7》
×
wi《5》
×27
xi《6》
×
wi《5》
×26
xi《5》
×
wi《5》
×25


xi《0》
×
wi《5》];依次类推,直到p1阶段的t0~t7时段完成,得到8个乘加计算值,分别对应w
i=0,2,4,6
《7:0》的8个比特位,然后,将在8个时段得到的8个乘加计算值基于对应的权值相加,例如,将与w
i=0,2,4,6
《7》对应的乘加计算值
×27
以实现移动7比特的移位,将与w
i=0,2,4,6
《6》对应的乘加计算值
×26
以实现移动6比特的移位,将与w
i=0,2,4,6
《5》对应的乘加计算值
×25
以实现移动5比特的移位,将与w
i=0,2,4,6
《4》对应的乘加计算值
×24
以实现移动4比特的移位,将与w
i=0,2,4,6
《3》对应的乘加计算值
×23
以实现移动3比特的移位,将与w
i=0,2,4,6
《2》对应的乘加计算值
×22
以实现移动2比特的移位,将与w
i=0,2,4,6
《1》对应的乘加计算值
×
21以实现移动1比特的移位,w
i=0,2,4,6
《0》对应的乘加计算值无需移位,然后将这8个乘加计算值相加,既可以得到
[0081][0082]
该数值是p1阶段的乘加计算值,之后会在p2阶段进行乘加计算,在p2阶段中t0时段的t0周期,初始输入端x0输入x1《7》,初始输入端x1输入x3《7》,初始输入端x2输入x5《7》,初始输入端x3输入x7《7》,每个单比特输出模块10的第1个乘法单元组13中的乘法电路30进行乘法计算,得到x1《7》
×
w1《7》、x3《7》
×
w3《7》、x5《7》
×
w5《7》、x7《7》
×
w7《7》并输出至第一加法器a1,第一加法器a1将从4个第一加法输入端ain0、ain1、ain2、ain3得到数值进行加法计算,得到∑
i=1,3,5,7
[xi《7》
×
wi《7》]=x0《7》
×
w0《7》 x2《7》
×
w2《7》 x4《7》
×
w4《7》 x6《7》
×
w6《7》并输出至移位累加器40,此时由于没有待累加值,因此移位累加器40将该值进行单比特移位操作变为∑
i=1,3,5,7
[xi《7》
×
wi《7》]=x0《7》
×
w0《7》 x2《7》
×w=
《7》 x4《7》
×
w4《7》 x6《7》
×
w6《7》
×
21并作为下个周期的待累加值,然后在p2阶段中t0时段的t1周期,初始输入端x0输入x1《6》,x1输入x3《6》,x2输入x5《6》,x3输入x7《6》,依次类推,直到在t0时段的第7个周期t7,移位累加器40得到∑
i=1,3,5,7
[xi《7》
×
wi《7》
×27
xi《6》
×
wi《7》
×26
xi《5》
×
wi《7》
×25


xi《0》
×
wi《7》],作为与w
i=1,3,5,7
《7》对应的乘加计算值;类似地,在p2阶段中t1时段,得到与w
i=1,3,5,7
《6》对应的乘加计算值∑
i=1,3,5,7
[xi《7》
×
wi《6》
×27
xi《6》
×
wi《6》
×26
xi《5》
×
wi《6》
×25


xi《0》
×
wi《6》],依次类推,直到p1阶段的t0~t7时段完成,得到8个乘加计算值,分别对应w
i=1,3,5,7
《7:0》的8个比特位,然后,将在8个时段得到的8个乘加计算值基于对应的权值相加,例如,将与w
i=1,3,5,7
《7》对应的乘加计算值
×27
以实现移动7比特的移位,将与w
i=1,3,5,7
《6》对应的乘加计算值
×26
以实现移动6比特的移位,将与w
i=1,3,5,7
《5》对应的乘加计算值
×25
以实现移动5比特的移位,将与w
i=1,3,5,7
《4》对应的乘加计算值
×24
以实现移动4比特的移位,将与w
i=1,3,5,7
《3》对应的乘加计算值
×23
以实现移动3比特的移位,将与w
i=1,3,5,7
《2》对应的乘加计算值
×22
以实现移动2比特的移位,将与w
i=1,3,5,7
《1》对应的乘加计算值
×
21以实现移动1比特的移位,w
i=1,3,5,7
《0》对应的乘加计算值无需移位,然后将这8个乘加计算值相加,既可以得到
[0083][0084]
最后,可以将p1阶段得到的y=∑
i=0,2,4,6
xi《7:0》
×
wi《7:0》和p2阶段得到的∑
i=1,3,5,7
xi《7:0》
×
wi《7:0》相加,即可以实现的乘加计算,根据图5a和图4a的对比、以及图5b和图4b的对比可知,两者的计算功能相同,但是图5a和图5b的第一加法器a1比图4a和图4b节省了输入端的数量,从而简化了第一加法器a1的结构。
[0085]
在一种可能的实施方式中,如图2a、图6a和图6b所示,图6a中第一加法器为数字加法器,图6b中第一加法器包括模拟加法电路,存内计算装置包括:m个输出模块组100,m>1,每个输出模块组100均包括n个单比特输出模块10和第一加法器a1,第c个输出模块组100还包括移位器50,c的取值为2、3、

、m,第c个输出模块组100中移位器50用于对第一加法器a1的输出结果进行c-1比特的移位;第二加法器a2,第二加法器a2包括m个第二加法输入端,第1个输出模块组100中第一加法器a1的输出端电连接于第1个第二加法输入端,第c个输出模块组100中移位器50的输出端电连接于第c个第二加法输入端;移位累加器40具体用于,周期性对第二加法器a2的输出结果进行单比特移位累加计算。
[0086]
具体地,例如n=8,m=8,存内计算装置包括8个输出模块组100,每个输出模块组100包括8个单比特输出模块10,在每个输出模块组100中,8个单比特输出模块10分别电连接于第一加法器a1的8个第一加法输入端。存内计算装置还可以包括:n个初始输入端,例如分别为x0、x1、

、xi、

、x7,x0用于输入x0《7:0》,x1用于输入x1《7:0》,x2用于输入x2《7:0》,x3用于输入x3《7:0》,x4用于输入x4《7:0》,x5用于输入x5《7:0》,x6用于输入x6《7:0》,x7用于输入x7《7:0》,也就是说,每个初始输入端均输入一个8位二进制数;对于每个输出模块组100,第
a个单比特输出模块10中第一乘法输入端min1电连接于第a个初始输入端。
[0087]
8个输出模块组100中第i个单比特输出模块10的8个乘法单元m的存储器用于存储一个8位二进制数作为权重wi《7:0》,其中每个存储器用于存储8位中的一位,图6a和图6b中示意了每个乘法单元m中所存储的数值,例如,第0个输出模块组100中的存储的权重为wi《7》,第1个输出模块组100中的存储的权重为wi《6》,依次类推,第7个输出模块组100中的存储的权重为wi《0》。也就是说,图6a和图6b所示的存内计算装置用于计算
[0088]
存内计算装置周期性工作以实现乘加的计算过程,对于的计算,计算过程包括n个周期,n=8,即包括8个周期,分别为t0、t1、

、t7。
[0089]
表5
[0090][0091]
如表5所示,表5示意了图6a和图6b中存内计算装置中第1个输出模块组100工作过程中各端的信号,在t0周期,初始输入端xi输入xi《7》,第1个输出模块组100中每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《7》
×
wi《0》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至第1个第二加法输入端bin0;第2个输出模块组100中每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《7》
×
wi《1》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至移位器50,该移位
器50对进行1比特的移位得到并输出至第2个第二加法输入端bin1;依次类推,第8个输出模块组100中每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《7》
×
wi《7》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至移位器50,该移位器50对进行7比特的移位得到并输出至第8个第二加法输入端bin7。第二加法器a2对bin0、bin1、

、bin7这8个第二加法输入端的数值进行加法计算,得到的数值进行加法计算,得到的数值进行加法计算,得到并输出至移位累加器40,此时由于没有待累加值,因此移位累加器40将进行单比特移位操作变为并作为下个周期的待累加值;在t1周期,初始输入端xi输入xi《6》,第1个输出模块组100中每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《6》
×
wi《0》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到得到数值进行加法计算,得到得到数值进行加法计算,得到并输出至第1个第二加法输入端bin0;第2个输出模块组100中每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《6》
×
wi《1》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到法计算,得到法计算,得到并输出至移位器50,该移位器50对进行1比特的移位得到并输出至第2个第二加法输入端bin1;依次类推,第8个输出模块组100中每个单比特输出模块10的乘法电路30进行乘法计算,得到xi《6》
×
wi《7》并输出至第一加法器a1,第一加法器a1将从8个第一加法输入端ain0、ain1、

、ain7得到数值进行加法计算,得到行加法计算,得到行加法计算,得到并输出至移位器50,该移位器50对进行7比特的移位得到并输出至第8个第二加法输入端bin7。第二加法器a2对bin0、bin1、

、bin7这8个第二加法输入端的数值进行加法计算,得到这8个第二加法输入端的数值进行加法计算,得到这8个第二加法输入端的数值进行加法计算,得到并输出至移位累加器40,移位累加器40将在上一周期得到的待累加值
与本周期第一加法器a1输出的数值进行加法计算,并将计算结果进行单比特移位后作为待累加值,依次类推,直到t7周期,第二加法器a2执行8次加法计算,最后由移位累加器40得到:
[0092][0093]
可见,图6a和图6b所述的存内计算装置可以通过较为简单的电路结构实现复杂的乘加运算。
[0094]
在一种可能的实施方式中,如图2a和图7a和图7b所示,图7a中第一加法器为数字加法器,第7b中第一加法器包括模拟加法电路每个单比特输出模块10包括p个乘法单元m,p>1,在每个单比特输出模块10中,每个乘法单元m的乘法输出端mout电连接于单比特输出模块10的输出端out;存内计算装置还包括n个输入节点组,每个输入节点组包括p个初始输入节点,例如n=4,p=2,每个输入节点组包括2个初始输入节点,分别为ina和inb,对于每个输出模块组100,第a个单比特输出模块10的第b个乘法单元m的第一乘法输入端min1电连接于第a个输入节点组的第b个初始输入节点;存内计算装置还包括n个第二多路选通电路112,每个第二多路选通电路112包括一个初始输入端和p个选通端,第a个第二多路选通电路112的第b个选通端电连接于第a个输入节点组的第b个初始输入节点;每个初始输入节点通过开关器件电连接于低电平输出端v1。
[0095]
具体地,例如,p=2,m=8,n=4,每个单比特输出模块10包括两个乘法单元m,在每个单比特输出模块10中,第1个乘法单元m中的每个乘法输出端mout电连接于单比特输出模块10的输出端out;对于每个输出模块组100,第1个单比特输出模块10的第1个乘法单元m的第一乘法输入端min1电连接于第1个输入节点组的第1个初始输入节点ina,第1个单比特输出模块10的第2个乘法单元m的第一乘法输入端min1电连接于第1个输入节点组的第2个初始输入节点inb,第2个单比特输出模块10的第1个乘法单元m的第一乘法输入端min1电连接于第2个输入节点组的第1个初始输入节点ina,第2个单比特输出模块10的第2个乘法单元m的第一乘法输入端min1电连接于第2个输入节点组的第2个初始输入节点inb;依次类推。第二多路选通电路112包括第1个选通开关sa和第2个选通开关sb,第1个选通开关sa和第2个选通开关sb的第一端均电连接于该初始输入端,第1个选通开关sa的第二端电连接于第1个初始输入节点ina,第2个选通开关sb的第二端电连接于第2个初始输入节点inb。第1个初始输入节点ina通过第1个开关器件sa电连接于第一电压端v1,第2个初始输入节点inb通过第2个开关器件sb电连接于第一电压端v1。例如共有4个初始输入端x0、x1、x2和x3,其中,第1个第二多路选通电路112对应初始输入端x0,第2个第二多路选通电路112对应初始输入端x1,第3个第二多路选通电路112对应初始13输入端x2,第4个第二多路选通电路112对应初始输入端x3。
[0096]
类似的,图7a和图7b的存内计算装置的工作过程与图6a和图6b的存内计算装置的
工作过程类似,对于的计算,计算过程包括p个阶段,p=2,即包括2个阶段p1和p2,每个阶段包括n个周期,n=8,即包括8个周期,分别为t0、t1、

、t7。
[0097]
表6
[0098][0099]
如表6所示,表6示意了图7a和图7b中存内计算装置工作过程中各端的信号,对于选通开关选通开关sa、选通开关sb、开关器件sa和开关器件sb来说,1表示导通,0表示截止,在p1阶段,选通开关sa导通,选通开关sb截止,开关器件sa截止,开关器件sb导通,初始输入端x0、x1、x2、x3的输入信号均输入至初始输入节点ina,而初始输入节点inb的信号会被拉低,低电平即为0,不会对后续的计算造成影响,也就是说,在p1阶段,仅通过每个单比特输出模块10中的第1个乘法单元m进行计算;在p2阶段,选通开关sa截止,选通开关sb导通,开关器件sa导通,开关器件sb截止,初始输入端x0、x1、x2、x3的输入信号均输入至初始输入节点inb,而初始输入节点ina的信号会被拉低,低电平即为0,不会对后续的计算造成影响,也就是说,在p2阶段,仅通过每个单比特输出模块10中的第2个乘法单元m进行计算。在p1阶段,8个输出模块组100分别进行乘加计算,并输出至第二加法器a2和移位累加器40进行计算,得到i=0,2,4,6对应的乘加计算值:
[0100]
c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0109]
以上仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献