一种分离输入的存内计算单元阵列及装置的制作方法

文档序号:32245568发布日期:2022-11-18 23:28阅读:41来源:国知局
一种分离输入的存内计算单元阵列及装置的制作方法

1.本发明涉及存内计算领域,特别是涉及一种分离输入的存内计算单元阵列及装置。


背景技术:

2.深度卷积神经网络(dcnns)在人工智能等领域发展迅速,随着它的逐步发展,需要越来越多的考虑尺寸的大小、效率、能耗等方面的问题。传统的计算过程中,权重是在存储器和运算单元之间移动作用的,这不符合低功耗的要求。存内计算(imc)对dcnn加速越来越有吸引力。传统的存算芯片多采用电压或者电平进行计算,并且单比特计算较多,导致系统的复杂度高。


技术实现要素:

3.本发明的目的是提供一种分离输入的存内计算单元阵列及装置,能够实现低复杂度的多比特存内计算。
4.为实现上述目的,本发明提供了如下方案:
5.一种分离输入的存内计算单元阵列,包括:多个存内计算单元;每一所述存内计算单元均与对应的输入端in《1》、输入端in《0》、位线bl、位线blb以及字线wl连接;所述输入端in《1》用于输入2bit输入数据中的高位数值;所述输入端in《0》用于输入2bit输入数据中的低位数值;
6.每一所述存内计算单元包括:两个结构相同的第一6tsram和第二6tsram、管m7、管m8、管m9和管m10;
7.所述第一6tsram和所述第二6tsram的并联在位线blb和位线bl之间,且所述第一6tsram和所述第二6tsram均与字线wl连接,所述管m7的栅极与所述第一6tsram的节点q连接,所述管m7的源极接vss,所述管m7的漏极与所述管m8的源极连接,所述管m8的栅极与输入端in《1》连接,所述管m8的漏极与位线rbl连接;所述管m9的栅极与所述第二6tsram的节点q连接,所述管m9的源极接vss,所述管m9的漏极与所述管m10的源极连接,所述管m10的栅极与输入端in《0》连接,所述管m10的漏极与位线rbl连接;所述管m7的宽长和管m8的宽长的比值大于管m9的宽长和管m10的宽长的比值。
8.可选地,所述第一6tsram和所述第二6tsram均包括:管m1、管m2、管m3、管m4、管m5以及管m6;
9.所述管m1的源极和所述管m2的源极均接vdd,所述管m1的漏极、所述管m3的源极、所述管m5的漏极、所述管m2的栅极以及所述管m6的栅极均与节点q

连接,所述管m1的栅极、所述管m5的栅极、所述管m2的漏极、所述管m6的漏极以及所述管m4的源极均与节点q连接,所述管m3的栅极与字线wl连接,所述管m3的漏极与位线blb连接,所述m4的栅极与字线wl连接,所述管m4的漏极与位线bl连接,所述管m5的源极与所述管m6的源极均接vss。
10.可选地,所述第一6tsram和所述第二6tsram均用于进行权重的存储。
11.可选地,所述存内计算单元的个数为32个,且每4个存内计算单元为一组,每一组的存内计算单元用于进行4个2bit的输入数据和1bit权重之间的乘累加运算。
12.一种分离输入的存内计算装置,包括:位线驱动模块、输入模块、字线驱动模块、adc模块以及存内计算模块;所述存内计算模块包括:多个存内计算单元阵列;
13.所述位线驱动模块、所述输入模块、所述字线驱动模块以及所述adc模块均与所述存内计算模块连接。
14.可选地,所述存内计算单元阵列的个数为64个。
15.可选地,所述adc模块包括64个adc;每一所述adc与一所述存内计算单元阵列连接;所述adc用于将对应的存内计算单元阵列的乘累加运算的结果转换为数字值。
16.根据本发明提供的具体实施例,本发明公开了以下技术效果:
17.本发明所提供的一种分离输入的存内计算单元阵列及装置,利用第一6tsram和第二6tsram进行权重的存储,利用管m7、管m8、管m9和管m10把2bit输入数据分离输入,有效降低了传统脉宽输入等模式实现多比特输入存在误差的情况,采用的输入模式相较传统的多比特输入的存内计算设计,不需要采用输入调制模块使多比特输入信号被转换为脉宽、电压等信号,降低了电路复杂度,降低了系统功耗,进而实现了低复杂度的多比特存内计算。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为本发明所提供的一种分离输入的存内计算单元阵列结构示意图;
20.图2为本发明所提供的一种分离输入的存内计算装置结构示意图。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.本发明的目的是提供一种分离输入的存内计算单元阵列及装置,能够实现低复杂度的多比特存内计算。
23.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
24.图1为本发明所提供的一种分离输入的存内计算单元阵列结构示意图,如图1所示,本发明所提供的一种分离输入的存内计算单元阵列,包括:多个存内计算单元;每一所述存内计算单元均与对应的输入端in《1》、输入端in《0》、位线bl、位线blb以及字线wl连接;所述输入端in《1》用于输入2bit输入数据中的高位数值;所述输入端in《0》用于输入2bit输入数据中的低位数值;
25.每一所述存内计算单元包括:两个结构相同的第一6tsram和第二6tsram、管m7、管
m8、管m9和管m10。
26.所述第一6tsram和所述第二6tsram并联在位线blb和位线bl之间,且所述第一6tsram和所述第二6tsram均与字线wl连接,所述管m7的栅极与所述第一6tsram的节点q连接,所述管m7的源极接vss,所述管m7的漏极与所述管m8的源极连接,所述管m8的栅极与输入端in《1》连接,所述管m8的漏极与位线rbl连接;所述管m9的栅极与所述第二6tsram的节点q连接,所述管m9的源极接vss,所述管m9的漏极与所述管m10的源极连接,所述管m10的栅极与输入端in《0》连接,所述管m10的漏极与位线rbl连接;所述管m7的宽长和管m8的宽长的比值大于管m9的宽长和管m10的宽长的比值,最终在计算时满足m7、m8产生的压降为m9、m10的两倍,实现加权操作。
27.所述第一6tsram、管m7以及管m8构成了一个8tsram结构;所述第二6tsram、管m9以及管m10构成了另一个8tsram结构。借助多个sram结构输入来实现多比特数据输入,实现了多比特输入数据和权重之间的乘累加运算,相比过去借助脉冲宽度或者不同电压等形式输入,降低了输入模块的复杂度,有利于降低系统功耗。
28.所述第一6tsram和所述第二6tsram均包括:管m1、管m2、管m3、管m4、管m5以及管m6。
29.所述管m1的源极和所述管m2的源极均接vdd,所述管m1的漏极、所述管m3的源极、所述管m5的漏极、所述管m2的栅极以及所述管m6的栅极均与节点q

连接,所述管m1的栅极、所述管m5的栅极、所述管m2的漏极、所述管m6的漏极以及所述管m4的源极均与节点q连接,所述管m3的栅极与字线wl连接,所述管m3的漏极与位线blb连接,所述管m4的栅极与字线wl连接,所述管m4的漏极与位线bl连接,所述管m5的源极和所述管m6的源极均接vss。
30.所述第一6tsram和所述第二6tsram均用于进行权重的存储;即管m1-管m6用于进行权重的存储,管m7、管m8和管m9、管m10则分别用于实现2bit输入数据中高位输入数据的乘法运算和低位乘法运算。
31.当权重为1,节点q为高电平,q、为低电平,当权重为0时,节点q为低电平,节点q、为高电平。而2bit的输入数据分别通过in《1》和in《0》输入,其中in《1》为2bit输入数据中的高位数值,而in《0》则为2bit输入数据中的低位数值。当数值为1时,in端控制输入高电平,数值为0时,in端控制输入低电平。
32.进行乘法运算时,当权重为1,输入数据为0时,位线rbl上无电压波动;当权重为1,输入数据为1时,管m7-管m10导通,位线rbl到vss端产生电流,位线rbl产生压降2δv和δv;当权重为0,输入数据为0时,位线rbl上无电压波动;当权重为0,输入数据为1时,位线rbl上无电压波动。位线rbl输出的电压值经过对应的adc后,被转换为数字值输出。如表1所示,表1为输入和计算结果的对应表。
33.表1
34.35.所述存内计算单元的个数为32个,且每4个存内计算单元为一组,每一组存内计算单元用于进行4个2bit的输入数据和1bit的权重之间的乘累加运算。即每个存内计算单元阵列中包括64个8tsram,每8行构成一个结构,每次运算时这一个结构的8行参与运算。每一结构用于实现4个2bit输入数据和1bit权重的运算。
36.进行乘累加运算时,64列一共有64个乘累加的运算结果输出,64列存内计算单元阵列的累加结果体现在位线rbl0-位线rbl63上。2bit的输入数据由2个8tsram结构进行运算,如果输入数据为00,则in《1》和in《0》都为0;如果输入数据为01时,则in《1》为0,in《0》为1;如果输入数据为11,则in《1》和in《0》都为1;如果输入数据为10时,则in《1》为1,in《0》为0。每一列的4组运算结果累加在位线rbl中,最终实现了乘累加运算。
37.如图2所示,本发明所提供的一种分离输入的存内计算装置,包括:位线驱动模块、输入模块、字线驱动模块、adc模块以及存内计算模块;所述存内计算模块包括:多个存内计算单元阵列。
38.所述位线驱动模块、所述输入模块、所述字线驱动模块以及所述adc模块均与所述存内计算模块连接。
39.所述位线驱动模块用于通过控制位线bl、位线blb的电平实现权重数据的输入。对于64列存内计算单元阵列,位线分别为位线bl0-位线bl63以及位线blb0-位线blb63。
40.所述输入模块用于把输入的2bit数据分别输入到输入端in《1》和输入端in《0》中,实现多比特运算。对于32行的存内计算单元,输入端为in0《1》到输入端in31《1》以及输入端为in0《0》到输入端in31《0》。
41.所述字线驱动模块用于通过控制位线wl《1》-位线wl《31》的电平完成控制权重的存储的操作。
42.所述存内计算单元阵列的个数为64个。即整个存内计算模块包括:64列
×
32行的存内计算单元。
43.所述adc模块包括64个adc;每一所述adc与一所述存内计算单元阵列连接;所述adc用于将对应的存内计算单元阵列的乘累加运算的结果转换为数字值。
44.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
45.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1