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

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

2023-02-02 02:01:34 来源:中国专利 TAG:

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


背景技术:

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


技术实现要素:

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

、n;移位累加器,用于周期性对第一加法器的输出结果进行单比特移位累加计算。
5.在一种可能的实施方式中,每个单比特输出模块包括多路选通电路和m个乘法单元,m>1,在每个单比特输出模块中,每个乘法输出端通过多路选通电路电连接于单比特输出模块的输出端。
6.在一种可能的实施方式中,对于同一个单比特输出模块,m个乘法单元的第一乘法输入端电连接于同一个初始输入端。
7.在一种可能的实施方式中,每个多路选通电路包括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。
8.在一种可能的实施方式中,每个多路选通电路包括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个选通开关导通。
9.在一种可能的实施方式中,每个单比特输出模块包括p个第一多路选通电路和p 个乘法单元组,每个乘法单元组包括m个乘法单元,p>1,m>1,在每个单比特输出模块中,第b个乘法单元组中的每个乘法输出端通过第b个第一多路选通电路电连接于单比特输出模块的输出端,b的取值为1、2、

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

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

、q-1;第1个第一加法器用于将从n个第一加法输入端得到的数值进行加法计算,并输出至第1个第二加法输入端;第c个第一加法器用于将从n个第一加法输入端得到的数值进行加法计算,并输出至第c个输出模组的移位器;第c个输出模组的移位器对输入的数值进行单比特移位并输出至第c个第二加法输入端。
13.在一种可能的实施方式中,每个单比特输出模块包括p个乘法单元,p>1,在每个单比特输出模块中,每个乘法单元的乘法输出端电连接于单比特输出模块的输出端;存内计算装置还包括n个输入节点组,每个输入节点组包括p个初始输入节点,对于每个输出模块组,第a个单比特输出模块的第b个乘法单元的第一乘法输入端电连接于第a个输入节点组的第b个初始输入节点;存内计算装置还包括n个第二多路选通电路,每个第二多路选通电路包括一个初始输入端和p个选通端,第a个第二多路选通电路的第b个选通端电连接于第a个输入节点组的第b个初始输入节点;每个初始输入节点通过开关器件电连接于低电平输出端。
14.在一种可能的实施方式中,移位累加器还用于对移位累加计算的结果进行二进制补码计算。
15.在一种可能的实施方式中,乘法电路包括:第一晶体管,其第一端电连接于乘法输出端,其控制端电连接于第一乘法输入端;第二晶体管,其第一端电连接于第一晶体管的第二端,其第二端电连接于低电平输出端,其控制端电连接于第二乘法输入端;第一晶体管和第二晶体管为n型晶体管。
16.在一种可能的实施方式中,存储器包括:第三晶体管,其第一端电连接于高电平输
出端;第四晶体管,其第一端电连接于第三晶体管的第二端,其第二端电连接于低电平输出端,其控制端电连接于第三晶体管的控制端;第五晶体管,其第一端电连接于高电平输出端,其第二端为存储器的输出端,其控制端电连接于第三晶体管的第二端;第六晶体管,其第一端电连接于第五晶体管的第二端,其第二端电连接于低电平输出端,其控制端电连接于第五晶体管的控制端;第七晶体管,其第一端电连接于写入位线,其第二端电连接于第三晶体管的第二端,其控制端电连接于写入字线;第八晶体管,其第一端电连接于反向写入位线,其第二端电连接于第五晶体管的第二端,其控制端电连接于写入字线;第三晶体管和第五晶体管为p型晶体管,第四晶体管、第六晶体管、第七晶体管和第八晶体管为n型晶体管。
17.在一种可能的实施方式中,存内计算装置还包括:与第一加法器对应的n个预充电晶体管,第一加法器的第a个第一加法输入端电连接于第a个预充电晶体管的第一端,预充电晶体管的第二端电连接于高电平输出端。
18.第二方面,提供一种电子设备,包括上述的存内计算装置。
19.本技术实施例中的向量乘加器的sram存内计算装置和电子设备,通过单比特输出模块中乘法电路和存储器的配合实现一个比特的乘法计算,通过第一加法器获取来自于不同单比特输出模块的数值进行加法计算,移位累加器周期性对第一加法器的输出结果进行单比特移位累加计算,通过这种方式,可以基于较为简单的电路结构实现多位二进制数值和多个权重之间的乘加计算,即简化了存内计算装置的电路结构。另外,移位累加还用于对移位累加计算的结果进行二进制补码计算,以实现带符号位的计算。
附图说明
20.图1为本技术实施例中一种存内计算装置的结构示意图;
21.图2a为本技术实施例中一种单比特输出模块的结构示意图;
22.图2b为本技术实施例中另一种单比特输出模块的结构示意图;
23.图3a为本技术实施例中另一种存内计算装置的结构示意图;
24.图3b为本技术实施例中一种存内计算装置中部分电路的结构示意图;
25.图4为本技术实施例中另一种存内计算装置的结构示意图;
26.图5为本技术实施例中另一种存内计算装置的结构示意图;
27.图6为本技术实施例中另一种存内计算装置的结构示意图;
28.图7为本技术实施例中另一种存内计算装置的结构示意图。
具体实施方式
29.本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术。
30.如图1和图2a所示,本技术实施例提供一种向量乘加器的静态随机存取存储器(static random-access memory,sram)存内计算装置,包括:n个单比特输出模块 10,n>1,每个单比特输出模块10包括乘法单元m,乘法单元m包括存储器20和乘法电路30,存储器20即为sram,乘法电路30包括第一乘法输入端min1、第二乘法输入端min2和乘法输出端mout,第二乘法输入端min2电连接于存储器20 的输出端,乘法电路30用于对第一乘法输入端min1和第二乘法输入端min2的数值进行乘法计算并通过乘法输出端mout输出结果至单
比特输出模块10的输出端;第一加法器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的输出结果和待累加值进行加法计算并将计算结果进行单比特移位后作为下个周期的待累加值。
31.具体地,存内计算装置用于实现二进制乘加运算。存储器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的输出端。
32.在本技术实施例中,通过初始输入端输入的输入值为2位或2位以上的二进制数值,下面对具体乘加计算过程进行说明。
33.假设存内计算装置还包括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。另外根据二进制乘法的原理,据此将所要计算的公式展开据此将所要计算的公式展开例如,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所示。
34.表1
[0035][0036][0037]
表1示意了图1中存内计算装置工作过程中各端的信号,在第一周期,初始输入端
x1、x2、x3和x4分别输入一个比特位x1《2》、x2《2》、x1《2》、x3《2》,以第1个单比特输出模块10为例进行说明,其中乘法电路30对通过第一乘法输入端min1获取的 x1《2》和通过第二乘法输入端min2获取的w1进行乘法计算,得到x1《2》
×
w1并输出至 ain1,类似的每个单比特输出模块10均进行乘法计算并输出对应的数值至第一加法器a1,第一加法器a1将从4个第一加法输入端得到的数值进行加法计算,得到并输出至移位累加器40,此时由于没有待累加值,因此移位累加器40 将进行单比特移位操作变为并作为下个周期的待累加值;在第二周期,初始输入端输入第二个比特位x4《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在第三周期输出的进行加法计算,得到进行加法计算,得到即实现了的乘加计算。
[0038]
本技术实施例中的存内计算装置,通过单比特输出模块中乘法电路和存储器的配合实现一个比特的乘法计算,通过第一加法器获取来自于不同单比特输出模块的数值进行加法计算,移位累加器周期性对第一加法器的输出结果进行单比特移位累加计算,通过这种方式,可以基于较为简单的电路结构实现多位二进制数值和多个权重之间的乘加计算,即简化了存内计算装置的电路结构。
[0039]
在一种可能的实施方式中,如图2a所示,乘法电路30包括:第一晶体管m1,其第一端电连接于乘法输出端mout,其控制端电连接于第一乘法输入端min1;第二晶体管m2,其第一端电连接于第一晶体管m1的第二端,其第二端电连接于低电平输出端v1,其控制端电连接于第二乘法输入端min2;第一晶体管m1和第二晶体管m2 为n型晶体管。
[0040]
具体地,第一晶体管m1和第二晶体管m2组成的乘法电路30实际是一个与非门,当第一晶体管m1和第二晶体管m2中的任意一者截止时,乘法输出端mout均保持高电平,即输出1,在本技术实施例中,高电平代表1,低电平代表0,低电平输出端v1用于输出代表0的低电平;只有当第一晶体管m1和第二晶体管m2均导通时,乘法输出端mout会被低电平输出端
v1拉低,从而变为低电平,即输出0。第一晶体管m1和第二晶体管m2均为n型晶体管,即在高电平的控制下会导通,在低电平的控制下会截止。如表2所示。
[0041]
表2
[0042]
min1min2mout110101011001
[0043]
表2示意了图2a中乘法电路30各端在不同状态下对应的数值,可见,乘法输出端mout输出的值实际上是第一乘法输入端min1和第二乘法输入端min2的数值乘法结果的取反值,取反值可以在后续电路中通过取反恢复,例如可以在第一加法器 a1处取反恢复。所以说,可以通过由第一晶体管m1和第二晶体管m2组成的乘法电路30来实现乘法运算的功能。需要说明的是,图2a中的乘法电路30结构仅为举例,本技术实施例对于乘法电路的具体结构不做限定,只要能够实现单比特二进制数值的乘法计算即可。
[0044]
在一种可能的实施方式中,如图2a所示,存储器20包括:第三晶体管m3,其第一端电连接于高电平输出端v2,高电平输出端v2用于输出代表1的高电平;第四晶体管m4,其第一端电连接于第三晶体管m3的第二端,其第二端电连接于低电平输出端v1,其控制端电连接于第三晶体管m3的控制端;第五晶体管m5,其第一端电连接于高电平输出端v2,其第二端为存储器20的输出端,其控制端电连接于第三晶体管m3的第二端,即第五晶体管m5的第二端电连接于乘法电路30的第二乘法输入端 min2;第六晶体管m6,其第一端电连接于第五晶体管m5的第二端,其第二端电连接于低电平输出端v1,其控制端电连接于第五晶体管m5的控制端,第六晶体管m6 的控制端电连接于节点q;第七晶体管m7,其第一端电连接于写入位线(write bitline,wbl),其第二端电连接于第三晶体管m3的第二端,其控制端电连接于写入字线(write word line,wwl);第八晶体管m8,其第一端电连接于反向写入位线 wblb,其第二端电连接于第五晶体管m5的第二端,其控制端电连接于写入字线 wwl,反向写入位线wblb与写入位线wbl具有相反的信号;第三晶体管m3和第五晶体管m5为p型晶体管,第四晶体管m4、第六晶体管m6、第七晶体管m7和第八晶体管m8为n型晶体管。
[0045]
具体地,图2a所示的存储器20是一个静态随机存取存储器(static random accessmemory,sram)。但存储器20写入输入数据时,写入字线wwl为高电平,控制第七晶体管m7和第八晶体管m8导通,写入位线wbl上的数据通过第七晶体管m7 传输至节点q,实现了数据写入。另外,第一乘法输入端min1也可以称为读取字线 (read word line,rwl),乘法输出端mout也可以称为读取位线(read bit line, rbl)。需要说明的是,图2a中所示的存储器20电路结构仅为举例,本技术实施例对于存储器20的具体结构不做限定,只要能够实现存储功能即可。
[0046]
在一种可能的实施方式中,如图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。
[0047]
在一种可能的实施方式中,如图2b和图3a所示,每个单比特输出模块10包括多路选通电路11和m个乘法单元m,m>1,在每个单比特输出模块10中,每个乘法输出端mout通过多路选通电路11电连接于单比特输出模块10的输出端out。例如,在每个单比特输出模块10中,多路选通电路11包括与每个乘法单元m对应的选通开关,选通开关串联于乘法单元m的第二乘法输入端min2和单比特输出模块10 的输出端out之间。
[0048]
在一种可能的实施方式中,如图2b和图3a所示,对于同一个单比特输出模块10, m个乘法单元m的第一乘法输入端min1电连接于同一个初始输入端。
[0049]
在一种可能的实施方式中,每个多路选通电路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。
[0050]
具体地,如图2b和图3a所示,例如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。每个单比特输出模块 10的8个乘法单元m的存储器用于存储一个8位二进制数作为权重wi《7:0》,其中每个存储器用于存储8位中的一位,图3a中示意了每个乘法单元m中所存储的数值,第i个单比特输出模块10中的存储的8个权重分别为wi《0》、wi《1》、...、wi《7》。也就是说,图3a所示的存内计算装置用于计算
[0051]
存内计算装置周期性工作以实现乘加的计算过程,对于的计算,计算过程包括m个周期t,m=8,即包括8个周期t,分别为t0、t1、t2、...、 t7,其中每个周期又包括n个子周期t,n=8,即每个周期t包括8个子周期t,分别为t0、t1、...、t7。
[0052]
表3a
[0053][0054]
如表3a所示,表3a示意了图3a中存内计算装置工作过程中各端的信号,对于选通开关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导通,其他的选通开关截止,也就是说,在周期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》相关的读取和乘加计算,可以将可以将暂存,作为与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个乘加计算值相加,既可以得到
[0055][0056]
可见,图3a所述的存内计算装置可以通过较为简单的电路结构实现复杂的乘加运算。其中,通过利用多路选通电路11,可以实现基于多位权重的乘加计算,且无需较多数量的加法器,从而实现了电路结构的简化。
[0057]
在一种可能的实施方式中,图3a可以结合图3b的结构实现上述计算过程,其中,每个初始输入端分别通过q个输入选通开关电连接于q位数值,装置包括q个输入选通开关组,s01、s02、...、s07,第i个初始输入端xi对应电连接第i个输入选通开关组s0i,在每个输入选通开关组中,第j个输入选通开关sij串联于第q-1-j位数值 wi《q-1-j》端之间,在每个周期的第j个子周期tj,第j个输入选通开关sij导通,其他输入选通开关截止,以实现初始输入端xi输入的切换。
[0058]
在一种可能的实施方式中,每个多路选通电路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
导通。
[0059]
具体地,仍以图2b和图3a所示结构为例说明,例如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。每个单比特输出模块10的8个乘法单元m的存储器用于存储一个8位二进制数作为权重wi《7:0》,其中每个存储器用于存储8位中的一位,图3a中示意了每个乘法单元 m中所存储的数值,第i个单比特输出模块10中的存储的8个权重分别为wi《0》、 wi《1》、...、wi《7》。也就是说,图3a所示的存内计算装置用于计算计算
[0060]
存内计算装置周期性工作以实现乘加的计算过程,对于的计算,计算过程包括m个周期t,m=8,即包括8个周期t,分别为t0、t1、t2、...、 t7,其中每个周期又包括n个子周期t,n=8,即每个周期t包括8个子周期t,分别为t0、t1、...、t7。
[0061]
表3b
[0062][0063][0064]
如表3b所示,表3b示意了图3a中存内计算装置工作过程中各端的信号,对于选通开关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将因此移位累加器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》相关的读取和乘加计算,可以将可以将暂存,作为与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进行加法计算得到下一个子周期为新的周期t2,在周期t1,完成了与xi《6》相关的读取和乘加计算,可以将暂存,作为与xi《6》对应的乘加计算值;依次类推,在第2个周期t2,初始输入端xi仍输入第5位数值xi《5》,在周期t2的t0至t7子周期,选通开关s7至s0依次导通,移位累加器40得到与wi《5》对应的乘加计算值乘加计算值依次类推,直到周期t7,得到与wi《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个乘加计算值相加,既可以得到
[0065][0066]
在一种可能的实施方式中,图3a可以结合图3b的结构实现上述计算过程,其中,每个初始输入端分别通过q个输入选通开关电连接于q位数值,装置包括q个输入选通开关组,s01、s02、...、s07,第i个初始输入端xi对应电连接第i个输入选通开关组s0i,在每个输入选通开关组中,第k个输入选通开关sik串联于第q-1-k位数值 wi《q-1-k》端之间,在第k个周期tk,第k个输入选通开关sik导通,其他输入选通开关截止,以实现初始输入端xi输入的切换。
[0067]
在一种可能的实施方式中,如图2a和图4所示,每个单比特输出模块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。
[0068]
具体地,例如,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。
[0069]
类似的,图4的存内计算装置的工作过程与图3a的存内计算装置的工作过程类似,对于的计算,计算过程包括p个阶段,p=2,即包括2个阶段p1和p2,每个阶段包括m个时段,m=4,即包括4个时段,分别为t0、t1、 t2、t3,其中每个时段又每个阶段包括n个周期,n=8,即包括8个周期,分别为t0、 t1、

、t7。
[0070]
表4
[0071][0072]
如表4所示,表4示意了图4中存内计算装置工作过程中各端的信号,对于选通开关选通开关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,
输入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个乘加计算值相加,既可以得到
[0075][0076]
最后,可以将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》相加,即可以实现的乘加计算,根据图4和图3a的对比可知,两者的计算功能相同,但是图4的第一加法器a1比图3a 节省了输入端的数量,从而简化了第一加法器a1的结构。
[0077]
在一种可能的实施方式中,如图2a和图5所示,存内计算装置包括: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的输出结果进行单比特移位累加计算。
[0078]
具体地,例如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个初始输入端。
[0079]
8个输出模块组100中第i个单比特输出模块10的8个乘法单元m的存储器用于存储
一个8位二进制数作为权重wi《7:0》,其中每个存储器用于存储8位中的一位,图5中示意了每个乘法单元m中所存储的数值,例如,第0个输出模块组100中的存储的权重为wi《7》,第1个输出模块组100中的存储的权重为wi《6》,依次类推,第 7个输出模块组100中的存储的权重为wi《0》。也就是说,图5所示的存内计算装置用于计算
[0080]
存内计算装置周期性工作以实现乘加的计算过程,对于的计算,计算过程包括n个周期,n=8,即包括8个周期,分别为t0、t1、...、t7。
[0081]
表5
[0082][0083]
如表5所示,表5示意了图5中存内计算装置中第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个第二加法输入端的数值进行加法计算,得到得到得到并输出至移位累加器40,移位累加器40将在上一周期得到的待累加值与本周期第一加法器a1输出的数值进行加法计算,并将计算结果进行单比特移位后作为待累加值,依次类推,直到t7周期,第二加法器a2执行8次加法计算,最后由移位累加器40得到:
[0084][0085]
可见,图5所述的存内计算装置可以通过较为简单的电路结构实现复杂的乘加运算。
[0086]
在一种可能的实施方式中,如图2a和图6所示,每个单比特输出模块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。
[0087]
具体地,例如,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。
[0088]
类似的,图6的存内计算装置的工作过程与图5的存内计算装置的工作过程类似,对于的计算,计算过程包括p个阶段,p=2,即包括2个阶段p1和p2,每个阶段包括n个周期,n=8,即包括8个周期,分别为t0、t1、

、t7。
[0089]
表6
[0090][0091]
如表6所示,表6示意了图6中存内计算装置工作过程中各端的信号,对于选通开关选通开关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对应的乘加计算值:
[0092][0093][0094]
该数值是p1阶段的乘加计算值,之后会在p2阶段进行乘加计算,得到i=1,3, 5,7对应的乘加计算值:
[0095][0096]
最后,可以将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》相加,即可以实现的乘加计算,根据图6和图5的对比可知,两者的计算功能相同,但是图6的第一加法器a1比图5 节省了输入端的数量,从而简化了第一加法器a1的结构。
[0097]
在一种可能的实施方式中,移位累加器还用于对移位累加计算的结果进行二进制补码计算,以实现带符号位的计算。
[0098]
本技术实施例中的第一加法器和第二加法器均可以位加法树。另外,本技术实施例对于输入数值的位数以及权重的位数均不做限定。另外需要说明的是,上述实施例中仅介绍了计算一个y,实际上,在存内计算装置的应用中,可以设置多个重复结构以实现多个y的计算。上述各附图中的y即为y的输出端。例如如图7所示,存内计算装置包括多个存内计算模块500,每个存内计算模块500均包括对应的n个单比特输出模块10、第一加法器a1和移位累加器40,每个存内计算模块500中的n个单比特输出模块10、第一加法器a1和移位累加器40的具体结构、原理和工作过程与上述实施例相同,在此不再赘述,不同的存内计算模块500之间可以共用初始输入端,不同的存内计算模块500输出不同的二进制乘法运算结果,例如一个存内计算模块 500的二进制乘加运算输出端为y1,另一个存内计算模块500的二进制乘加运算输出端为y2。
[0099]
本技术实施例还提供一种电子设备,包括上述任意实施例中的存内计算装置。该电子设备可以为手机、平板电脑、个人计算机(personal computer,pc)、个人数字助理 (personal digital assistant,pda)、智能手表、上网本、可穿戴电子设备、增强现实技术 (augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、车载设备、智能汽车、智能音响、机器人、智能眼镜、智能电视等。存内计算装置可以为电子设备中的芯片。
[0100]
本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示单独存在a、同时存在a和b、单独存在b的情况。其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0101]
以上仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

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

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

相关文献