一种可变权重的多位存内计算装置

文档序号:1888659 发布日期:2021-11-26 浏览:10次 >En<

阅读说明:本技术 一种可变权重的多位存内计算装置 (Multi-bit memory computing device with variable weight ) 是由 乔树山 陶皓 尚德龙 周玉梅 于 2021-10-14 设计创作,主要内容包括:本发明公开一种可变权重的多位存内计算装置,利用行驱动模块输入字线信号WL至各存算模块;利用列驱动模块输入8N个位线信号BL和8N个反位线信号BLB至各存算模块;利用多输入选择模块根据输入数据生成多个脉冲波,并将多个脉冲波和开关控制指令发送至各均压模块;各存算模块根据字线信号WL、位线信号BL和反位线信号BLB进行存储权重和计算权重;各均压模块利用电荷共享根据输入数据和开关控制指令进行均压并输出多位权重;利用累加模块将输出的多位权重进行模数转换后累加。本发明借助对位线的电压控制实现乘法计算,利用电荷共享实现均压,实现了可变权重的多比特存内计算,适应不同要求的计算。(The invention discloses a multi-bit memory computing device with variable weight, which utilizes a row driving module to input a word line signal WL to each memory module; 8N bit line signals BL and 8N bit bar line signals BLB are input to each storage module by using the column driving module; generating a plurality of pulse waves by using a multi-input selection module according to input data, and sending the plurality of pulse waves and a switch control instruction to each voltage-sharing module; each storage module carries out storage weight and calculation weight according to the word line signal WL, the bit line signal BL and the bit bar line signal BLB; each voltage-sharing module utilizes charge sharing to carry out voltage sharing according to input data and a switch control instruction and output a multi-bit weight; and performing analog-to-digital conversion on the output multi-bit weight by using an accumulation module and then accumulating. The invention realizes multiplication calculation by means of voltage control of bit lines, realizes voltage sharing by means of charge sharing, realizes multi-bit memory calculation with variable weight, and is suitable for calculation with different requirements.)

一种可变权重的多位存内计算装置

技术领域

本发明涉及存内计算技术领域,特别是涉及一种可变权重的多位存内计算装置。

背景技术

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

发明内容

本发明的目的是提供一种可变权重的多位存内计算装置,以实现可变权重的多比特存内计算。

为实现上述目的,本发明提供了一种可变权重的多位存内计算装置,所述装置包括:

行驱动模块、列驱动模块、多输入选择模块、累加模块、N个存算模块和N个均压模块,其中,N为大于等于1的正整数;所述行驱动模块和所述列驱动模块均与各所述存算模块连接,所述存算模块和所述均压模块一一对应设置且连接,所述多输入选择模块与N个所述均压模块依次连接,N个所述均压模块均与所述累加模块连接;

所述行驱动模块用于输入字线信号WL至各所述存算模块;

所述列驱动模块用于输入8N个位线信号BL和8N个反位线信号BLB至各所述存算模块;

所述多输入选择模块用于根据输入数据生成多个脉冲波,并将多个脉冲波和开关控制指令发送至各所述均压模块;

各所述存算模块根据所述字线信号WL、所述位线信号BL和所述反位线信号BLB进行存储权重和计算权重;所述存算模块包括8个阵列设置的6T-SRAM存储单元;

各所述均压模块用于利用电荷共享,根据所述输入数据和所述开关控制指令进行均压并输出多位权重;

所述累加模块用于将输出的多位权重进行模数转换后累加,获得最终结果。

可选地,各所述6T-SRAM存储单元包括:

晶体管T1、晶体管T2、晶体管T3、晶体管T4、晶体管T5和晶体管T6

晶体管T1的源极和晶体管T2的源极均与电源VDD连接,晶体管T1的栅极、晶体管T3的栅极、晶体管T2的漏极和晶体管T4的漏极均与Q点连接,晶体管T2的栅极、晶体管T4的栅极、晶体管T1的漏极和晶体管T3的漏极均与QB点连接,晶体管T3的源极和晶体管T4的源极均与公共端VSS连接,晶体管T5的栅极和晶体管T6的栅极均与所述行驱动模块连接,晶体管T5的漏极与QB点连接,晶体管T5的源极与所述列驱动模块连接,晶体管T6的源极与Q点连接,晶体管T6的漏极与所述列驱动模块连接。

可选地,所述均压模块包括8个均压单元;第i个所述均压单元与第i个6T-SRAM存储单元连接,其中,i为大于等于1且小于等于8的正整数。

可选地,第i个所述均压单元包括:开关管Mi-1、电容C2i-2、电容C2i-1、开关管S0、开关管S1、开关管S2和开关管S3;开关管Mi-1的一端与所述列驱动模块连接,用于输入位线信号BL[i-1];开关管Mi-1的另一端分别与开关管S0的一端和开关管S1的一端连接,开关管S0的另一端与电容C2i-2的一端连接,电容C2i-2的另一端接地,开关管S1的另一端分别与开关管S2的一端和开关管S3的一端连接,开关管S2的另一端与电容C2i-1的一端连接,电容C2i-1的另一端接地,开关管S3的另一端与所述累加模块连接;开关管Mi-1、开关管S0、开关管S1、开关管S2和开关管S3均与所述多输入选择模块连接。

可选地,电容C0:电容C1:电容C2:电容C3:电容C4:电容C5:电容C6:电容C7:电容C8:电容C9:电容C10:电容C11:电容C12:电容C13:电容C14:电容C15=128:1:127:2:125:4:121:8:113:16:97:32:65:64:1:128。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

1、本发明采用8个6T-SRAM存储单元构建存算模块,进而构建存内计算装置,具有成熟度高、稳定性好的优点,相比于传统的存内计算装置而言,减小了面积。

2、本发明利用多个6T-SRAM存储单元存储权重,同时借助对位线的电压控制实现乘法计算,利用电荷共享实现均压,实现了可变权重的多比特存内计算,适应不同要求的计算。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明可变权重的多位存内计算装置结构图;

图2为本发明存算模块结构图;

图3为本发明均压模块结构图;

符号说明:

1、行驱动模块,2、列驱动模块,3、多输入选择模块,4、存算模块,5、均压模块,6、累加模块。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种可变权重的多位存内计算装置,以实现可变权重的多比特存内计算。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例1

本发明公开一种可变权重的多位存内计算装置,所述装置包括:行驱动模块、列驱动模块、多输入选择模块、累加模块、N个存算模块和N个均压模块,其中,N为大于等于1的正整数;所述行驱动模块和所述列驱动模块均与各所述存算模块连接,所述存算模块和所述均压模块一一对应设置且连接,所述多输入选择模块与N个所述均压模块依次连接,N个所述均压模块均与所述累加模块连接;所述行驱动模块用于输入字线信号WL至各所述存算模块;所述列驱动模块用于输入8N个位线信号BL和8N个反位线信号BLB至各所述存算模块;所述多输入选择模块用于根据输入数据生成多个脉冲波,并将多个脉冲波和开关控制指令发送至各所述均压模块;各所述存算模块根据所述字线信号WL、所述位线信号BL和所述反位线信号BLB进行存储权重和计算权重;各所述均压模块用于利用电荷共享,根据所述输入数据和所述开关控制指令进行均压并输出多位权重;所述累加模块用于将输出的多位权重进行模数转换后累加,获得最终结果。所述存算模块包括8个阵列设置的6T-SRAM存储单元。

作为一种可选的实施方式,本发明所述均压模块包括8个均压单元;第i个所述均压单元与第i个6T-SRAM存储单元连接,其中,i为大于等于1且小于等于8的正整数。第i个所述均压单元包括:开关管Mi-1、电容C2i-2、电容C2i-1、开关管S0、开关管S1、开关管S2和开关管S3;开关管Mi-1的一端与第i个6T-SRAM存储单元连接,用于输入位线信号BL[i-1];开关管Mi-1的另一端分别与开关管S0的一端和开关管S1的一端连接,开关管S0的另一端与电容C2i-2的一端连接,电容C2i-2的另一端接地,开关管S1的另一端分别与开关管S2的一端和开关管S3的一端连接,开关管S2的另一端与电容C2i-1的一端连接,电容C2i-1的另一端接地,开关管S3的另一端与所述累加模块连接;开关管Mi-1、开关管S0、开关管S1、开关管S2和开关管S3均与所述多输入选择模块连接。

实施例2

如图1所示,本发明以N等于4为例,图1中圆圈表示省略号,仅仅给出第一个存算模块4、第四个存算模块4、与第一个存算模块4相连接的第一个均压模块5和与第四个存算模块4相连接的第四个均压模块5。行驱动模块1用于发送位线信号WL至4个存算模块4,列驱动模块2用于输出位线信号BL[0]-BL[31]和反位线信号BLB[0]-BLB[31],将位线信号BL[0]-BL[7]和反位线信号BLB[0]-BLB[7]输入至第一个存算模块4中,以此类推,将位线信号BL[24]-BL[31]和反位线信号BLB[24]-BLB[31]输入至第四个存算模块4中。多输入选择模块3根据输入数据生成多个脉冲波,并将多个脉冲波和开关控制指令至4个所述均压模块5;第1个所述存算模块4根据所述字线信号WL、所述位线信号BL[0]-BL[7]和所述反位线信号BLB[0]-BLB[7]进行存储权重和计算权重;以此类推,第4个所述存算模块4根据所述字线信号WL、所述位线信号BL[24]-BL[31]和所述反位线信号BLB[24]-BLB[31]进行存储权重和计算权重;4个所述均压模块5根据所述输入数据和所述开关控制指令进行均压并输出多位权重;所述累加模块6用于将输出的多位权重OUT[1]-OUT[3]进行模数转换后累加,获得最终结果。

当输入数据为1个4bit的数据时,在多输入选择模块3中产生不同脉冲个数的脉冲波,通过脉冲波的数量区别不同的输入。例如输入数据为0时,产生的脉冲波的个数为0,输入数据为1时,产生1个脉冲波,输入数据为15时,产生15个脉冲波。脉冲波的个数对应多次等时长的放电。

如图2所示,图2中圆圈表示省略号,存算模块4包括8个阵列设置的6T-SRAM存储单元。多个6T-SRAM存储单元的结构相同,以第1个6T-SRAM存储单元为例进行论述:

第1个所述6T-SRAM存储单元包括:晶体管T1、晶体管T2、晶体管T3、晶体管T4、晶体管T5和晶体管T6;晶体管T1的源极和晶体管T2的源极均与电源VDD连接,晶体管T1的栅极、晶体管T3的栅极、晶体管T2的漏极和晶体管T4的漏极均与Q点连接,晶体管T2的栅极、晶体管T4的栅极、晶体管T1的漏极和晶体管T3的漏极均与QB点连接,晶体管T3的源极和晶体管T4的源极均与公共端VSS连接,晶体管T5的栅极和晶体管T6的栅极均与所述行驱动模块连接,晶体管T5的漏极与QB点连接,晶体管T5的源极与所述列驱动模块连接,晶体管T6的源极与Q点连接,晶体管T6的漏极与所述列驱动模块连接。晶体管T5的源极输入位线信号BL[0],晶体管T6的漏极输入反位线信号BL[0]。以此类推,第8个所述6T-SRAM存储单元中的晶体管T5的源极输入位线信号BL[7],晶体管T6的漏极输入反位线信号BL[7]。

图2中的开关管T1-T6用于存储权重,以第1个6T-SRAM存储单元为例进行分析:本发明主要分为权重存储阶段和权重计算阶段;进行权重存储时,令WL=1,当BL[0]=0,BLB[0]=1时,写入权重0;当BL[0]=1,BLB[0]=0时,写入权重1。进行权重计算时,当WL=1时,BL[0]=1,如果此时存入的权重是0,则电流顺着BL[0]经过T5,T3流到GSS,此时BL[0]的电压降低为0,计算的结果为0;如果此时存入的权重是1,没有电压差,BL[0]电压保持不变,此时计算的结果为1;当WL=0时,BL[0]=0,此时晶体管T5关闭,无论权重是0还是1,BL[0]保持低电压,此时计算结果为0。这些计算结果被输入到均压模块5中进行下一步的计算。

如图3所示,所述均压模块5包括8个均压单元;第i个所述均压单元与第i个6T-SRAM存储单元连接,其中,i为大于等于1且小于等于8的正整数。第1个所述均压单元包括:开关管M0、电容C0、电容C1、开关管S0、开关管S1、开关管S2和开关管S3;第2个所述均压单元包括:开关管M1、电容C2、电容C3、开关管S0、开关管S1、开关管S2和开关管S3;以此类推,第8个所述均压单元包括:开关管M7、电容C14、电容C15、开关管S0、开关管S1、开关管S2和开关管S3

图3中的开关管M0-M7用于控制计算的位数。本发明主要分为权重存储阶段和权重计算阶段;进行权重存储时,此时没有输入数据,所以所述均压模块5中的开关管M0-M7全部处于关闭状态。当进行权重计算时,如果输入数据为8bit的数据,则会生成多个脉冲波,所述均压模块5中的开关管M0-M7全部打开,如果是一个7bit的数据,则控制开关管M7关闭,开关管M0-M6闭合,如果是一个6bit的数据,则控制开关管M6和M7关闭,开关管M0-M5闭合,以此类推,如果是一个1bit的数据,则控制开关管M1-M7关闭,开关管M0闭合。

各所述均压单元中的开关管S0-S3是根据多输入选择模块3生成的开关控制指令进行均压并输出多位权重;所述开关控制指令具体为:先控制开关管S3断开,闭合开关管S0-S2,实现相邻两个电容进行均压;然后控制开关管S1断开,闭合开关管S0、S2和S3,实现多位权重输出。

借助电荷共享的方式,使得输出满足1:2:4:8:16:32:64:128的关系,因为这是按照二进制的数的特性决定的,二进制的第一位的表示十进制的1,第二位表示十进制的2,第三位表示十进制的4,以此类推,经过电荷共享的输出电压被输入到累加模块,实现模数转换后累加输出。因此各均压模块5中的16个电容C0-C15满足表1中关系,具体详见表1:

表1 电容比例关系

C<sub>0</sub>=128 C<sub>2</sub>=127 C<sub>4</sub>=125 C<sub>6</sub>=121 C<sub>8</sub>=113 C<sub>10</sub>=97 C<sub>12</sub>=65 C<sub>14</sub>=1
C<sub>1</sub>=1 C<sub>3</sub>=2 C<sub>5</sub>=4 C<sub>7</sub>=8 C<sub>9</sub>=16 C<sub>11</sub>=32 C<sub>13</sub>=64 C<sub>15</sub>=128

综上,本发明公开的方案具有以下优点:

1、本发明采用多个6T-SRAM存储单元构建存算模块,进而构建存内计算装置,具有成熟度高、稳定性好的优点,相比于传统的存内计算装置而言,减小了面积。

2、本发明利用多个6T-SRAM存储单元存储权重,同时借助对位线的电压控制实现乘法计算,利用电荷共享实现均压,实现了可变权重的多比特存内计算,适应不同要求的计算。当输入为4bit的数据,权重则是可选的1-8位的权重。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种业务流程的配置方法及相关设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类