CN113971971B - 一种带正负计算的存内计算单元、阵列及装置 - Google Patents

一种带正负计算的存内计算单元、阵列及装置 Download PDF

Info

Publication number
CN113971971B
CN113971971B CN202111575250.4A CN202111575250A CN113971971B CN 113971971 B CN113971971 B CN 113971971B CN 202111575250 A CN202111575250 A CN 202111575250A CN 113971971 B CN113971971 B CN 113971971B
Authority
CN
China
Prior art keywords
switch tube
tube
symbol
switching tube
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111575250.4A
Other languages
English (en)
Other versions
CN113971971A (zh
Inventor
乔树山
陶皓
尚德龙
周玉梅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Nanjing Intelligent Technology Research Institute
Original Assignee
Zhongke Nanjing Intelligent Technology Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongke Nanjing Intelligent Technology Research Institute filed Critical Zhongke Nanjing Intelligent Technology Research Institute
Priority to CN202111575250.4A priority Critical patent/CN113971971B/zh
Publication of CN113971971A publication Critical patent/CN113971971A/zh
Application granted granted Critical
Publication of CN113971971B publication Critical patent/CN113971971B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Neurology (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Static Random-Access Memory (AREA)

Abstract

本发明涉及一种带正负计算的存内计算单元、阵列及装置,存内计算单元包括:符号位计算单元和4个数据位计算单元;符号位计算单元包括6T SRAM存储单元、开关管M8和开关管M9;开关管M8的第一端和6T SRAM存储单元内的连接点Q连接,开关管M9的第一端和6T SRAM存储单元内的连接点Q'连接,开关管M8的第二端和开关管M9的第二端连接;开关管M8的第二端和开关管M9的第二端用于输出第三符号;开关管M8的第三端用于输入第一符号,开关管M9的第二端用于输入第二符号。本发明对带符号的输入数据计算,能有效的提高利用率。

Description

一种带正负计算的存内计算单元、阵列及装置
技术领域
本发明涉及存内计算技术领域,特别是涉及一种带正负计算的存内计算单元、阵列及装置。
背景技术
深度卷积神经网络(DCNNs)在人工智能等领域发展迅速,随着它的逐步发展,需要越来越多地考虑尺寸的大小、效率、能耗等方面的问题。传统的计算过程中,权重是在存储器和运算单元之间移动作用的,这不符合低功耗的要求。内存计算(IMC)对DCNN加速越来越有吸引力。传统的存算芯片多采用电压或者电平进行计算,无法实现对带符号的输入数据进行计算。
发明内容
本发明的目的是提供一种带正负计算的存内计算单元、阵列及装置,以实现对带符号的输入数据进行计算。
为实现上述目的,本发明提供了一种带正负计算的存内计算单元,所述存内计算单元包括:
符号位计算单元和4个数据位计算单元;
所述符号位计算单元包括6T SRAM存储单元、开关管M8和开关管M9;开关管M8的第一端和6T SRAM存储单元内的连接点Q连接,开关管M9的第一端和6T SRAM存储单元内的连接点Q'连接,开关管M8的第二端和开关管M9的第二端连接;开关管M8的第二端和开关管M9的第二端用于输出第三符号;开关管M8的第三端用于输入第一符号,开关管M9的第二端用于输入第二符号;所述第一符号为数据符号wlp;所述第二符号为权重符号wln;所述第三符号为数据符号wlp与权重符号wln计算后输出的符号Sign;
第i个数据位计算单元包括6T SRAM存储单元和开关管M7;开关管M7的第一端与6TSRAM存储单元内的连接点Q'连接,开关管M7的第二端用于输入脉冲信号In,开关管M7的第三端用于输出计算后的脉冲信号Rbli;其中,i为大于或等于1,且小于或等于4的正整数。
可选地,所述6T SRAM存储单元包括:
开关管M1、开关管M2、开关管M5、开关管M6、开关管M3和开关管M4;
开关管M1的第一端和开关管M2的第一端均与电源VDD连接,开关管M1的第二端、开关管M5的第二端、开关管M2的第三端和开关管M6的第三端均与Q'点连接,开关管M2的第二端、开关管M6的第二端、开关管M1的第三端和开关管M5的第三端均与Q点连接,开关管M5的第一端和开关管M6的第一端均与公共端VSS连接,开关管M3的第二端和开关管M4的第二端均与字线连接,开关管M3的第三端与Q点连接,开关管M3的第一端与位线连接,开关管M4的第一端与Q'点连接,开关管M4的第三端与反位线连接。
本发明还提供一种带正负计算的存内计算阵列,所述阵列包括:
B个上述存内计算单元和4个电容均压单元;
第i个存内计算单元包括:1个字线输入端、5个位线输入端、5个反位线输入端、1个符号输出端、1个数据输入端和4个脉冲信号输出端;所述字线输入端用于输入字线WLi-1,第j个位线输入端用于输入位线BLj,第j个反位线输入端用于输入第j个反位线BLBj,所述符号输出端用于输出符号Sign,所述数据输入端用于输入原始数据,第k个脉冲信号输出端用于输出计算后的脉冲信号Rblk;其中,j为大于或等于1,且小于或等于5的正整数;k为大于或等于1,且小于或等于4的正整数,所述原始数据包括数据符号wlp、权重符号wln和脉冲信号In;
第k个电容均压单元包括:开关管Tk、电容C2k-1、电容C2k、开关管S0、开关管S1、开关管S2和开关管S3;开关管Tk的一端与各存内计算单元的第k个脉冲信号输出端连接,开关管Tk的另一端分别与开关管S0的一端和开关管S1的一端连接,开关管S0的另一端与电容C2k-1的一端连接,电容C2k-1的另一端接地,开关管S1的另一端分别与开关管S2的一端和开关管S3的一端连接,开关管S2的另一端与电容C2k的一端连接,电容C2k的另一端接地,开关管S3的另一端输出均压后的脉冲信号Rblk。
可选地,所述存内计算单元的个数B为16。
本发明还提供一种带正负计算的存内计算装置,所述装置包括:
第一字线驱动模块、第二字线驱动模块、位线驱动模块、输入和控制模块、乘累加读出计算模块和8个上述存内计算阵列;
各所述存内计算阵列分别与所述第一字线驱动模块、所述位线驱动模块、所述输入和控制模块和乘累加读出计算模块连接;或各所述存内计算阵列分别与所述第二字线驱动模块、所述位线驱动模块、所述输入和控制模块和乘累加读出计算模块连接。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明公开的方案能够对带符号的输入数据和权重进行计算,可以在使用相对较少的SRAM单元的情况下实现带符号的计算,能有效的提高利用率。另外,本方案采用6TSRAM结构,提高额外的计算单元,可以有效的避免读写干扰问题,增加计算结果的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明带正负计算的存内计算单元结构图;
图2为本发明带正负计算的存内计算阵列结构图;
图3为本发明带正负计算的存内计算装置结构图;
符号说明:
1-第一字线驱动模块,2-位线驱动模块,3-第二字线驱动模块,4-存内计算阵列,5-输入和控制模块,6-乘累加读出计算模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种带正负计算的存内计算单元、阵列及装置,以实现对带符号的输入数据进行计算。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1
如图1所示,本发明提供了一种带正负计算的存内计算单元,简称MAC,所述存内计算单元包括:符号位计算单元和4个数据位计算单元。
所述符号位计算单元包括6T SRAM存储单元、开关管M8和开关管M9;开关管M8的第一端和6T SRAM存储单元内的连接点Q连接,开关管M9的第一端和6T SRAM存储单元内的连接点Q'连接,开关管M8的第二端和开关管M9的第二端连接;开关管M8的第二端和开关管M9的第二端用于输出第三符号;开关管M8的第三端用于输入第一符号,开关管M9的第二端用于输入第二符号;所述第一符号为数据符号wlp;所述第二符号为权重符号wln;所述第三符号为数据符号wlp与权重符号wln计算后输出的符号Sign。
第i个数据位计算单元包括6T SRAM存储单元和开关管M7;开关管M7的第一端与6TSRAM存储单元内的连接点Q'连接,开关管M7的第二端用于输入脉冲信号In,开关管M7的第三端用于输出计算后的脉冲信号Rbli;其中,i为大于或等于1,且小于或等于4的正整数。
作为一种可选的实施方式,本发明所述6T SRAM存储单元包括:开关管M1、开关管M2、开关管M5、开关管M6、开关管M3和开关管M4;开关管M1的第一端和开关管M2的第一端均与电源VDD连接,开关管M1的第二端、开关管M5的第二端、开关管M2的第三端和开关管M6的第三端均与Q'点连接,开关管M2的第二端、开关管M6的第二端、开关管M1的第三端和开关管M5的第三端均与Q点连接,开关管M5的第一端和开关管M6的第一端均与公共端VSS连接,开关管M3的第二端和开关管M4的第二端均与字线连接,开关管M3的第三端与Q点连接,开关管M3的第一端与位线连接,开关管M4的第一端与Q'点连接,开关管M4的第三端与反位线连接。本实施例中,开关管M1和开关管M2均为PMOS晶体管,开关管M3、开关管M4、开关管M5、开关管M6、开关管M7、开关管M8和开关管M9均为NMOS晶体管。
如图1所示,本实施例中,存内计算单元MAC主要是分成了5个小单元,从下到上分别为符号位计算单元和4个数据位计算单元,从下到上分别存储的是权重的符号位、4bit权重的第4位、第3位、第2位和第1位。开关管M1-M6用于存储权重,开关管M7用于实现输入数据和权重的乘法运算,M8和M9用于实现输入数据符号wlp和权重符号wln的计算,开关管M1-M2为PMOS,开关管M3-M9为NMOS;当4bit权重是正数时,最下边的单元存储的数据是0,当权重是负数的时候,最下边的单元存储的数据是1;进行计算的时候,首先是数据的输入,输入数据分成两个部分,如果输入的数据是正数,那么就会使wlp输入电压为1,即VDD,wln输入电压为0,即VSS。同时,输入数据的大小也会转化为不同脉宽的脉冲信号。因为输入数据为带符号的3bit数据,因此数据的大小为-7—+7这个范围内波动,由于脉宽只和数据的绝对值的大小有关,因此脉冲脉宽一共有8种可能。脉冲信号由图3的In端口输入,不同的脉宽表示不同的放电时间,这就会导致均压模块中的电压大小不同,表现在Rbl4、Rbl3、Rbl2、Rbl1的电压存在差别。Sign表示的是计算结果的符号位。当权重的符号为0时,此时M8工作,如果输入数据为正数,此时wlp输入VDD,因此Sign输出电压为1;如果输入数据为负数,此时wlp输入VSS,Sign输出电压为0;当权重的符号为1时,此时M9工作,如果输入数据为正数,此时wln输入VSS,因此Sign输出电压为0;如果输入数据为负数,此时wlp输入VDD,Sign输出电压为1;因此,Sign为1表示计算结果为正数,Sign为0表示计算结果为负数。
如图2所示,本发明还提供一种带正负计算的存内计算阵列,所述阵列包括:16个实施例1中存内计算单元和4个电容均压单元。
第i个存内计算单元包括:1个字线输入端、5个位线输入端、5个反位线输入端、1个符号输出端、1个数据输入端和4个脉冲信号输出端;所述字线输入端用于输入字线WLi-1,第j个位线输入端用于输入位线BLj,第j个反位线输入端用于输入第j个反位线BLBj,所述符号输出端用于输出符号Sign,所述数据输入端用于输入原始数据,第k个脉冲信号输出端用于输出计算后的脉冲信号Rblk;其中,i为大于或等于1的正整数,且小于或等于16的正整数;j为大于或等于1,且小于或等于5的正整数;k为大于或等于1,且小于或等于4的正整数,所述原始数据包括数据符号wlp、权重符号wln和脉冲信号In。
第k个电容均压单元包括:开关管Tk、电容C2k-1、电容C2k、开关管S0、开关管S1、开关管S2和开关管S3;开关管Tk的一端与各存内计算单元的第k个脉冲信号输出端连接,开关管Tk的另一端分别与开关管S0的一端和开关管S1的一端连接,开关管S0的另一端与电容C2k-1的一端连接,电容C2k-1的另一端接地,开关管S1的另一端分别与开关管S2的一端和开关管S3的一端连接,开关管S2的另一端与电容C2k的一端连接,电容C2k的另一端接地,开关管S3的另一端输出均压后的脉冲信号Rblk。
如图2所示,本实施例中16个上述存内计算单元分别为图2中的MAC0-MAC15;第1个存内计算单元的字线输入端输入WL0,以此类推,第16个存内计算单元的字线输入端输入WL15,各存内计算单元的5个位线输入端分别输入5个位线,分别为BL<5:1>,各存内计算单元的5个反位线输入端分别输入5个反位线,分别为BLB<5:1>,各存内计算单元的符号输出端输出符号Sign,各存内计算单元的4个脉冲信号输出端分别输出4个脉冲信号,分别为Rbl1-Rbl4。
4个电容均压单元的结构相同,以第1个电容均压单元为例进行论述:
第1个电容均压单元包括:开关管T1、电容C1、电容C2、开关管S0、开关管S1、开关管S2和开关管S3;开关管T1的一端与各存内计算单元的第1个脉冲信号输出端连接,开关管T1的另一端分别与开关管S0的一端和开关管S1的一端连接,开关管S0的另一端与电容C1的一端连接,电容C1的另一端接地,开关管S1的另一端分别与开关管S2的一端和开关管S3的一端连接,开关管S2的另一端与电容C2的一端连接,电容C2的另一端接地,开关管S3的另一端输出均压后的脉冲信号Rbl1。
电容均压单元中电容电压的大小不同,表示的就是权重的每一位和输入3bit数据乘的结果,借助电荷共享的方式,使得输出满足8:4:2:1的关系。经过电荷共享的输出电压(即均压后的脉冲信号Rbl1-Rbl4)由out输出。
实施例3
如图3所示,本发明还提供一种带正负计算的存内计算装置,所述装置包括:
第一字线驱动模块1、第二字线驱动模块3、位线驱动模块2、输入和控制模块5、乘累加读出计算模块6和8个实施例2中存内计算阵列4(即MACB);各所述存内计算阵列4分别与所述第一字线驱动模块1、所述位线驱动模块2、所述输入和控制模块5和乘累加读出计算模块6连接;或各所述存内计算阵列4分别与所述第二字线驱动模块3、所述位线驱动模块2、所述输入和控制模块5和乘累加读出计算模块6连接。输入和控制模块5:用于把输入数据转换为不同位宽的脉冲信号In,同时根据输入数据的正负性确定数据符号wlp和权重符号wln。原始数据包括脉冲信号In、数据符号wlp和权重符号wln。
字线驱动模块:通过根据WL的电平控制MACB实现权重的存储。
位线驱动模块2:通过根据位线BL、反位线BLB控制MACB实现权重的存储。
乘累加读出计算模块6:对8个Out数据进行模数转换后累加,输出计算结果。Out数据包括均压后的脉冲信号Rbl1-Rbl4。
具体的,所述第一字线驱动模块1包括4个字线输出端,每个字线输出端用于输出16个字线;所述第一字线驱动模块1的4个字线输出端分别与第1个存内计算阵列4中各存内计算单元的字线输入端、第2个存内计算阵列4中各存内计算单元的字线输入端、第3个存内计算阵列4中各存内计算单元的字线输入端和第4个存内计算阵列4中各存内计算单元的字线输入端连接;也就是说:第一个字线输出端输出16个字线,分别为WL1<15:0>,第二个字线输出端输出16个字线,分别为WL2<15:0>,第三个字线输出端输出16个字线,分别为WL3<15:0>,第四个字线输出端输出16个字线,分别为WL4<15:0>。
所述第二字线驱动模块3包括4个字线输出端,每个字线输出端用于输出16个字线;所述第二字线驱动模块3的4个字线输出端分别与第5个存内计算阵列4中各存内计算单元的字线输入端、第6个存内计算阵列4中各存内计算单元的字线输入端、第7个存内计算阵列4中各存内计算单元的字线输入端和第8个存内计算阵列4中各存内计算单元的字线输入端连接;也就是说:第一个字线输出端输出16个字线,分别为WL5<15:0>,第二个字线输出端输出16个字线,分别为WL6<15:0>,第三个字线输出端输出16个字线,分别为WL7<15:0>,第四个字线输出端输出16个字线,分别为WL8<15:0>。
所述位线驱动模块2包括2个位线输出端和2个反位线输出端,各位线输出端用于输出5个位线,各反位线输出端用于输出5个反位线;所述位线驱动模块2的第1个位线输出端分别与第1个存内计算阵列4中各存内计算单元的5个位线输入端、第2个存内计算阵列4中各存内计算单元的5个位线输入端、第3个存内计算阵列4中各存内计算单元的5个位线输入端和第4个存内计算阵列4中各存内计算单元的5个位线输入端连接;所述位线驱动模块2的第2个位线输出端分别与第5个存内计算阵列4中各存内计算单元的5个位线输入端、第6个存内计算阵列4中各存内计算单元的5个位线输入端、第7个存内计算阵列4中各存内计算单元的5个位线输入端和第8个存内计算阵列4中各存内计算单元的5个位线输入端连接;也就是说,第一个位线输出端输出5个位线,分别为BL0<5:1>,第二个位线输出端输出5个位线,分别为BL1<5:1>。
所述位线驱动模块2的第1个反位线输出端分别与第1个存内计算阵列4中各存内计算单元的5个反位线输入端、第2个存内计算阵列4中各存内计算单元的5个反位线输入端、第3个存内计算阵列4中各存内计算单元的5个反位线输入端和第4个存内计算阵列4中各存内计算单元的5个反位线输入端连接;所述位线驱动模块2的第2个反位线输出端分别与第5个存内计算阵列4中各存内计算单元的5个反位线输入端、第6个存内计算阵列4中各存内计算单元的5个反位线输入端、第7个存内计算阵列4中各存内计算单元的5个反位线输入端和第8个存内计算阵列4中各存内计算单元的5个反位线输入端连接;也就是说,第一个反位线输出端输出5个反位线,分别为BLB0<5:1>,第二个反位线输出端输出5个反位线,分别为BLB1<5:1>。
所述输入和控制模块5包括8个数据输出端,各数据输出端用于输出原始数据;所述输入和控制模块5的第i个数据输出端与第i个存内计算阵列4中各存内计算单元的数据输入端连接;也就是说,第i个数据输出端输出原始数据Zi至第i个存内计算阵列4中各存内计算单元的数据输入端。
乘累加读出计算模块6分别与各存内计算阵列4的符号位输出端和数据输出端连接;所述乘累加读出计算模块6用于根据各存内计算阵列4输出的均压后的脉冲信号和符号进行模数转换,输出计算结果。
当每一个MACB的计算结果得出后,一共8个MACB一共会有8个输出out,分别为out1-out8,这些out被输入到了乘累加读出计算模块6后,进行一个模数转换以及加法操作,最终输出的结果是16个±3bit×±4bit的计算结果,完成了最终的乘累加计算。
本发明改变了传统的计算操作,在乘累加操作中,通过额外的计算单元降低了读写干扰的影响,通过独特的结构设计,实现了对SRAM结构的高效利用,降低了整体的面积。
本发明利用6T SRAM分别对权重的符号位和数据位进行了单独存储,实现了带符号的多位权重的存储,通过利用不同的脉宽来表示输入数据的大小,实现了多比特数据的输入,借助NMOS管实现乘法的计算,借助电压实现累加的计算。此方案实现了在使用相对较少的SRAM结构的前提下,完成了权重和输入都带符号的乘累加计算,提高了SRAM的利用率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (5)

1.一种带正负计算的存内计算单元,其特征在于,所述存内计算单元包括:
符号位计算单元和4个数据位计算单元;
所述符号位计算单元包括6T SRAM存储单元、开关管M8和开关管M9;开关管M8的第一端和6T SRAM存储单元内的连接点Q连接,开关管M9的第一端和6T SRAM存储单元内的连接点Q'连接,开关管M8的第二端和开关管M9的第二端连接;开关管M8的第二端和开关管M9的第二端用于输出第三符号;开关管M8的第三端用于输入第一符号,开关管M9的第二端用于输入第二符号;所述第一符号为数据符号wlp;所述第二符号为权重符号wln;所述第三符号为数据符号wlp与权重符号wln计算后输出的符号Sign;
第i个数据位计算单元包括6T SRAM存储单元和开关管M7;开关管M7的第一端与6TSRAM存储单元内的连接点Q'连接,开关管M7的第二端用于输入脉冲信号In,开关管M7的第三端用于输出计算后的脉冲信号Rbli;其中,i为大于或等于1,且小于或等于4的正整数。
2.根据权利要求1所述的带正负计算的存内计算单元,其特征在于,所述6T SRAM存储单元包括:
开关管M1、开关管M2、开关管M5、开关管M6、开关管M3和开关管M4;
开关管M1的第一端和开关管M2的第一端均与电源VDD连接,开关管M1的第二端、开关管M5的第二端、开关管M2的第三端和开关管M6的第三端均与Q'点连接,开关管M2的第二端、开关管M6的第二端、开关管M1的第三端和开关管M5的第三端均与Q点连接,开关管M5的第一端和开关管M6的第一端均与公共端VSS连接,开关管M3的第二端和开关管M4的第二端均与字线连接,开关管M3的第三端与Q点连接,开关管M3的第一端与位线连接,开关管M4的第一端与Q'点连接,开关管M4的第三端与反位线连接。
3.一种带正负计算的存内计算阵列,其特征在于,所述阵列包括:
B个权利要求1-2中任一所述的存内计算单元和4个电容均压单元;
第i个存内计算单元包括:1个字线输入端、5个位线输入端、5个反位线输入端、1个符号输出端、1个数据输入端和4个脉冲信号输出端;所述字线输入端用于输入字线WLi-1,第j个位线输入端用于输入位线BLj,第j个反位线输入端用于输入第j个反位线BLBj,所述符号输出端用于输出符号Sign,所述数据输入端用于输入原始数据,第k个脉冲信号输出端用于输出计算后的脉冲信号Rblk;其中,j为大于或等于1,且小于或等于5的正整数;k为大于或等于1,且小于或等于4的正整数,所述原始数据包括数据符号wlp、权重符号wln和脉冲信号In;
第k个电容均压单元包括:开关管Tk、电容C2k-1、电容C2k、开关管S0、开关管S1、开关管S2和开关管S3;开关管Tk的一端与各存内计算单元的第k个脉冲信号输出端连接,开关管Tk的另一端分别与开关管S0的一端和开关管S1的一端连接,开关管S0的另一端与电容C2k-1的一端连接,电容C2k-1的另一端接地,开关管S1的另一端分别与开关管S2的一端和开关管S3的一端连接,开关管S2的另一端与电容C2k的一端连接,电容C2k的另一端接地,开关管S3的另一端输出均压后的脉冲信号Rblk。
4.根据权利要求3所述的带正负计算的存内计算阵列,其特征在于,所述存内计算单元的个数B为16。
5.一种带正负计算的存内计算装置,其特征在于,所述装置包括:
第一字线驱动模块、第二字线驱动模块、位线驱动模块、输入和控制模块、乘累加读出计算模块和8个权利要求3-4任一项所述的存内计算阵列;
各所述存内计算阵列分别与所述第一字线驱动模块、所述位线驱动模块、所述输入和控制模块和乘累加读出计算模块连接;或各所述存内计算阵列分别与所述第二字线驱动模块、所述位线驱动模块、所述输入和控制模块和乘累加读出计算模块连接。
CN202111575250.4A 2021-12-22 2021-12-22 一种带正负计算的存内计算单元、阵列及装置 Active CN113971971B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111575250.4A CN113971971B (zh) 2021-12-22 2021-12-22 一种带正负计算的存内计算单元、阵列及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111575250.4A CN113971971B (zh) 2021-12-22 2021-12-22 一种带正负计算的存内计算单元、阵列及装置

Publications (2)

Publication Number Publication Date
CN113971971A CN113971971A (zh) 2022-01-25
CN113971971B true CN113971971B (zh) 2022-05-20

Family

ID=79590815

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111575250.4A Active CN113971971B (zh) 2021-12-22 2021-12-22 一种带正负计算的存内计算单元、阵列及装置

Country Status (1)

Country Link
CN (1) CN113971971B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114512161B (zh) * 2022-04-19 2022-07-05 中科南京智能技术研究院 一种带符号的存内计算装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880763A (zh) * 2020-07-14 2020-11-03 安徽大学 一种在内存中实现带有正负数乘加的sram电路
CN112599165A (zh) * 2021-03-04 2021-04-02 中科院微电子研究所南京智能技术研究院 一种多bit输入与多bit权重乘累加的存内计算单元

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1400750B1 (it) * 2010-06-30 2013-07-02 St Microelectronics Srl Memoria sram 5t per applicazioni a bassa tensione
US10381071B1 (en) * 2018-07-30 2019-08-13 National Tsing Hua University Multi-bit computing circuit for computing-in-memory applications and computing method thereof
US10636481B1 (en) * 2019-05-13 2020-04-28 National Tsing Hua University Memory cell for computing-in-memory applications, memory unit for computing-in-memory applications and computing method thereof
CN110427171B (zh) * 2019-08-09 2022-10-18 复旦大学 可扩展的定点数矩阵乘加运算的存内计算设备和方法
CN112151091B (zh) * 2020-09-29 2023-03-21 中科南京智能技术研究院 一种8t sram单元及存内计算装置
CN112133348B (zh) * 2020-11-26 2021-02-12 中科院微电子研究所南京智能技术研究院 一种基于6t单元的存储单元、存储阵列和存内计算装置
CN112558919B (zh) * 2021-02-22 2021-05-18 中科院微电子研究所南京智能技术研究院 一种存内计算位单元及存内计算装置
CN113296734B (zh) * 2021-07-28 2021-11-26 中科南京智能技术研究院 一种多位存算装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880763A (zh) * 2020-07-14 2020-11-03 安徽大学 一种在内存中实现带有正负数乘加的sram电路
CN112599165A (zh) * 2021-03-04 2021-04-02 中科院微电子研究所南京智能技术研究院 一种多bit输入与多bit权重乘累加的存内计算单元

Also Published As

Publication number Publication date
CN113971971A (zh) 2022-01-25

Similar Documents

Publication Publication Date Title
US20210158854A1 (en) Compute in memory system
CN112151091B (zh) 一种8t sram单元及存内计算装置
CN109979503B (zh) 一种在内存中实现汉明距离计算的静态随机存储器电路结构
CN112992223B (zh) 一种存内计算单元、阵列及装置
CN112133348B (zh) 一种基于6t单元的存储单元、存储阵列和存内计算装置
CN112558919B (zh) 一种存内计算位单元及存内计算装置
CN114089950B (zh) 一种多比特乘累加运算单元及存内计算装置
CN113035251B (zh) 一种数字存内计算阵列装置
CN112884140B (zh) 一种多位存内计算单元、阵列及装置
CN112581996A (zh) 基于磁性随机存储器的时域存内计算阵列结构
CN110176264B (zh) 一种基于内存内计算的高低位合并电路结构
CN112992232B (zh) 一种多位正负单比特存内计算单元、阵列及装置
CN112185447B (zh) 一种8管双分裂控制存储单元、存储阵列及存内计算装置
CN113688984B (zh) 一种基于磁性随机存储器的存内二值化神经网络计算电路
CN112599165B (zh) 一种多bit输入与多bit权重乘累加的存内计算单元
CN113823343B (zh) 一种基于6t-sram的分离的计算装置
CN113296734B (zh) 一种多位存算装置
CN114300012A (zh) 一种解耦合sram存内计算装置
CN113971971B (zh) 一种带正负计算的存内计算单元、阵列及装置
CN113077050B (zh) 一种用于神经网络处理的数字域计算电路装置
CN114895869B (zh) 一种带符号的多比特存内计算装置
CN114882921B (zh) 一种多比特计算装置
CN112233712A (zh) 一种6t sram存算装置、存算系统及存算方法
CN114512161B (zh) 一种带符号的存内计算装置
CN113391786B (zh) 一种多位正负权重的计算装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant