公开/公告号CN112599165A
专利类型发明专利
公开/公告日2021-04-02
原文格式PDF
申请/专利权人 中科院微电子研究所南京智能技术研究院;
申请/专利号CN202110238050.3
申请日2021-03-04
分类号G11C11/413(20060101);
代理机构11569 北京高沃律师事务所;
代理人杜阳阳
地址 211100 江苏省南京市江宁区创研路266号麒麟人工智能产业园1号楼5层
入库时间 2023-06-19 10:27:30
技术领域
本发明涉及存内计算技术领域,特别是涉及一种多bit输入与多bit权重乘累加的存内计算单元。
背景技术
卷积神经网络(CNNs)在大规模识别任务中的精度得到了前所未有的提高。然而,算法复杂度和内存访问限制了CNN硬件的能量效率和加速速度。
现阶段中常见的单元电路大多需要8管甚至更多来实现1bit*1bit的计算,相对来说面积更大,复杂度也更高。且为了适应硬件电路,一部分的存算方案将权重值和输入值都简化为了1bit的数,这会对识别的精度产生一定的影响。
发明内容
本发明的目的是提供一种多bit输入与多bit权重乘累加的存内计算单元,实现了减小了面积的多位运算。
为实现上述目的,本发明提供了如下方案:
一种多bit输入与多bit权重乘累加的存内计算单元,包括输入端、多个6管SRAM存储单元、累加电容和输出线;
各所述6管SRAM存储单元的字线分别与所述输入端连接,各所述6管SRAM存储单元的位线通过开关与所述累加电容的第一端连接,所述累加电容的第一端通过开关与输出线连接;
所述输入端用于输入不同脉宽的输入信号,所述累加电容用于累加各所述6管SRAM存储单元的位线上的电压。
可选地,各所述6管SRAM存储单元的字线分别通过开关与所述输入端连接。
可选地,所述6管SRAM存储单元的数量为3。
可选地,所述6管SRAM存储单元存储的权重值为高电平的个数。
可选地,各所述6管SRAM存储单元的位线共线并通过开关与所述累加电容的第一端连接。
可选地,各所述6管SRAM存储单元的反位线共线。
可选地,所述输入端输入的信号为矩形脉冲信号。
可选地,所述累加电容的第二端接地。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明一种多bit输入与多bit权重乘累加的存内计算单元,通过输入端输入不同脉宽的输入信号,累加电容累加各所述6管SRAM存储单元的位线上的电压,实现多bit输入与多bit权重乘累加的存内计算,减小单元电路的面积,降低了复杂度,从而提高了计算准确度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种多bit输入与多bit权重乘累加的存内计算单元结构示意图;
图2为本发明存内计算单元中累计电容电压随时间变化示意图;
图3为本发明存内计算单元中输入信号随时间变化示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种多bit输入与多bit权重乘累加的存内计算单元,实现了减小了面积的多位运算。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明一种多bit输入与多bit权重乘累加的存内计算单元结构示意图,如图1所示,一种多bit输入与多bit权重乘累加的存内计算单元,包括输入端、多个6管SRAM(Static Random-Access Memory,静态随机存取存储器)存储单元、累加电容和输出线;
各所述6管SRAM存储单元的字线分别与所述输入端连接,各所述6管SRAM存储单元的位线通过开关与所述累加电容的第一端连接,所述累加电容的第一端通过开关与输出线连接;
所述输入端用于输入不同脉宽的输入信号,所述累加电容用于累加各所述6管SRAM存储单元的位线上的电压。
各所述6管SRAM存储单元的字线分别通过开关与所述输入端连接。
所述6管SRAM存储单元的数量为3。
所述6管SRAM存储单元存储的权重值为高电平的个数。
各所述6管SRAM存储单元的位线共线并通过开关与所述累加电容的第一端连接。
各所述6管SRAM存储单元的反位线共线。
所述输入端输入的信号为矩形脉冲信号。
所述累加电容的第二端接地。
下面以具体实施例说明本发明一种多bit输入与多bit权重乘累加的存内计算单元。
存算单元(一种多bit输入与多bit权重乘累加的存内计算单元)电路的结构如图1所示。2bit权重值被存储在6管SRAM存储单元中。在该电路中有3个6管SRAM存储单元,3个6管SRAM存储单元中存储的权重值并不区分高低位,而是通过其中存储的高电平的个数来表示权重值。例如,存储3个0,即没有高电平,则为00。若三个均存储高电平,则为11,正好是二进制的3。而输入可以有任意的位数。为了平衡完成每次计算的时间和电容大小,将输入端输入的信号设定为3bit,即分为输入[0],输入[1],输入[2]来进行输入。首先输入[0],若其输入为1,则打开所有的字线(在计算过程中,字线WL[0],WL[1],WL[2]上连接的NMOS管都是打开的,连接的NMOS管将会在写入权重时才有关断),相当于对权重乘1,打开累加电容左边的开关[4],并对累加电容充电,此次充电结束后,将进行下一次输入,输入[1],将输入信号的脉冲宽度变为两倍,即输入[1]的脉冲宽度为输入[0]的脉冲宽度的两倍,输入[1]对电容的充电效果也为输入[0]时的两倍,对应在乘法运算中高位的结果与低位结果之间的倍数关系。同理,在下一个时间周期中进行输入[2]的叠加。当三个时间周期过后,结果都叠加在了累加电容上,在累加电容中的电荷量代表了本次3bit输入与2bit权重的乘积结果。然后,关闭累加电容左边的开关(开关[4]),打开右边的开关(开关[5]),将输出线上的电容进行均压,完成了一列上所有存算单元的乘积的叠加运算。
WL[0],WL[1],WL[2]上的开关(开关[1],开关[2],开关[3])主要是用于控制权重的写入过程。在读出和计算的过程中,这三个开关持续打开,这样输入信号可以同时控制三根字线。而在权重写入过程中,可以用三个输入和三个开关配合,从而分别写入权重值。
一列上的3个6管SRAM存储单元的字线通过开关连到同一个输入端口上,当存入权重值时,通过开关按照顺序依次打开三个存储单元的字线,分别为输入[0],输入[1],输入[2]。三个6管SRAM存储单元共用位线(BL)和反位线(BLB),BL连接到输出线上,中间挂载一个累加电容,累加电容连接点的左右插入开关[4]和开关[5]。计算单元内部累加阶段闭合开关[4],断开开关[5],完成计算后断开开关[4],闭合开关[5],将结果送到输出线上。
存算单元电路通过时分复用,实现了3bit输入与2bit权重的乘法,并可以进行累加,使用了更小的面积实现了多位运算。
同时,本发明有一定的可扩展性,例如通过更多的周期输入,使输入数据的位数增多,也可以增加存储权重用的6管SRAM存储单元,扩展权重值的位数。
对本发明在hspice平台上进行了模拟,结果存内计算单元中累计电容电压随时间变化如图2所示,存内计算单元中输入信号随时间变化如图3所示。如图2-3所示,输入111作为测试,即输入信号如图1所示,输入[1]的脉冲宽度是输入[0]的两倍,输入[2]的脉冲宽度是输入[1]的两倍,累加电容上的电压,有不同程度上升,代表了输出结果在电容上确实进行了累加。由于现阶段开关由传输管实现,其非理想效果导致了每次充电开始和结束都会有漏电,但是从累加电容的波形可以看出高低位的乘积按比例累积在了累加电容上,可以实现本发明所要求的计算。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
机译: BIT承诺系统,BIT承诺方法,BIT承诺传输设备,BIT承诺接收设备,BIT承诺传输方法,BIT承诺接收方法和BIT承诺程序
机译: 适应于将多个BITS编程到一个存储器中的存储器,并从该存储器中读取不同数量的BITS
机译: BITS / RDC集成和BITS增强