CN116070685B - 一种存内计算单元、存算阵列及存算芯片 - Google Patents

一种存内计算单元、存算阵列及存算芯片 Download PDF

Info

Publication number
CN116070685B
CN116070685B CN202310300295.3A CN202310300295A CN116070685B CN 116070685 B CN116070685 B CN 116070685B CN 202310300295 A CN202310300295 A CN 202310300295A CN 116070685 B CN116070685 B CN 116070685B
Authority
CN
China
Prior art keywords
transistor
coupled
module
memory
voltage
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
CN202310300295.3A
Other languages
English (en)
Other versions
CN116070685A (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN202310300295.3A priority Critical patent/CN116070685B/zh
Publication of CN116070685A publication Critical patent/CN116070685A/zh
Application granted granted Critical
Publication of CN116070685B publication Critical patent/CN116070685B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • 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
    • 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)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Dram (AREA)
  • Semiconductor Memories (AREA)

Abstract

本申请提供一种存内计算单元、存算阵列及存算芯片。该存内计算单元包括存储电路和计算电路,计算电路包括乘法模块、加和模块和电荷恢复模块,计算电路接收的计算电压是基于权重矩阵列方向的稀疏度所配置的多电平,乘法模块用于在输入信号和权重数据均为高电平时执行输入信号和权重数据的乘法运算,加和模块用于在权重数据为高电平时将乘法结果导通至电荷共享线以与其他乘法模块的乘法结果加和,电荷恢复模块用于在加和阶段之后泄放加和模块上寄生电容的电荷。整个单元可根据稀疏度动态调节输入的计算电压,在降低功耗的同时还能自适应避免权重为0的单元参与计算,在尽可能降低计算电压的情况下,并不影响计算精度。

Description

一种存内计算单元、存算阵列及存算芯片
技术领域
本申请涉及电路技术领域,特别涉及一种存内计算单元、存算阵列及存算芯片。
背景技术
深度神经网络(Deep Neural Network,DNN)在许多领域内,例如:图像识别、语音识别和无人驾驶,都已得到广泛应用。存内计算是把计算单元嵌入到内存当中。通常计算机运行的冯诺依曼体系包括存储单元和计算单元两部分,计算机实施运算需要先把数据存入主存储器,再按顺序从主存储器中取出指令,一条一条的执行,数据需要在处理器与存储器之间进行频繁迁移。随着DNN规模的不断扩大,由于传统的冯诺依曼数字计算体系需要处理大量的数据和计算,因此功率开销特别严重,特别是在处理器与寄存器之间的数据迁移,所需要的功耗占比可达到70%以上。因此,研究者的关注点已从以计算为中心转变到到以数据为中心,其关键点在于研发出的加速器可以执行高效的乘加运算(MultiplyAccumulate, MAC)。为了进一步降低电荷域存算芯片的功耗,可以通过降低存算芯片的计算电压来实现。
存算芯片上设置有存算阵列,存算阵列包括多个存内计算单元。传统的存算芯片是在加和过程中将所有的电容都接入到电荷共享端,其最小计算精度的电压VLSB受限于计算电压和存算阵列的行数, VLSB可通过如下公式确定:
其中,VLSB为最小计算精度的电压,n是存算阵列的行数,Vcomp是用于存算阵列进行电荷加和的计算电压。由此可以看出,虽然降低计算电压Vcomp可以降低计算功耗,但是最小计算精度的电压VLSB也会对应下降,从而导致存算芯片整体计算精度的下降。
发明内容
本申请提供了一种存内计算单元、存算阵列及存算芯片,可用于解决传统的存算芯片在降低存算阵列的计算电压的同时会影响存算计算精度的技术问题。
第一方面,本申请实施例提供一种存内计算单元,包括:
存储电路,被配置为存储权重数据;
计算电路,包括乘法模块、加和模块和电荷恢复模块;
所述乘法模块与所述存储电路耦接,用于接收计算电压,以及,在乘法阶段,若获取到的输入信号和所述权重数据均为高电平,则执行所述输入信号与所述权重数据的乘法运算,所述计算电压基于权重矩阵的列方向的稀疏度进行调节,所述计算电压反比于所述稀疏度,所述稀疏度越高,所述计算电压越低;
所述加和模块分别与所述存储电路、所述乘法模块和电荷共享线耦接,用于在加和阶段,若所述权重数据为高电平,则将所述乘法模块的乘法结果导通至所述电荷共享线,以与其他乘法模块的乘法结果进行加和;
所述电荷恢复模块与所述加和模块和所述乘法模块耦接,用于在所述加和阶段之后,泄放所述加和模块上寄生电容的电荷。
结合第一方面,在第一方面的一种可实现方式中,所述乘法模块包括:
第一晶体管,所述第一晶体管的第一输入端用于接收所述计算电压,所述第一晶体管的第二输入端用于接收所述输入信号;
第二晶体管,所述第二晶体管的第一输入端耦接所述第一晶体管的输出端,所述第二晶体管的第二输入端耦接所述存储电路的输出端;
电容器,所述电容器的一端耦接所述第二晶体管的输出端,所述电容器的另一端接地。
结合第一方面,在第一方面的一种可实现方式中,所述加和模块包括:
第三晶体管,所述第三晶体管的第一输入端耦接所述存储电路的输出端,所述第三晶体管的第二输入端用于接收加和触发信号;
第四晶体管,所述第四晶体管的第一输入端耦接所述第二晶体管的输出端,所述第四晶体管的第二输入端耦接所述第三晶体管的输出端,所述第四晶体管的输出端耦接所述电荷共享线。
结合第一方面,在第一方面的一种可实现方式中,所述电荷恢复模块包括:
第五晶体管,所述第五晶体管的第一输入端耦接所述第三晶体管的输出端,所述第五晶体管的第二输入端用于接收所述加和触发信号,所述第五晶体管的输出端耦接所述电容器的另一端。
结合第一方面,在第一方面的一种可实现方式中,所述电荷共享线上设置有复位开关,所述复位开关用于在第一复位信号的控制下断开,以使所述电荷共享线上的电压和所述电容器上的电压均恢复为零。
结合第一方面,在第一方面的一种可实现方式中,所述存储电路包括交叉耦合反相器、第六晶体管和第七晶体管;
所述第六晶体管的第一输入端耦接对应的位线,所述第七晶体管的第一输入端耦接对应的反位线,所述第六晶体管的第二输入端和所述第七晶体管的第二输入端均耦接对应的字线,所述第六晶体管的输出端耦接所述交叉耦合反相器的第一输入端,所述第七晶体管的输出端耦接所述交叉耦合反相器的第二输入端,所述交叉耦合反相器的输出端分别耦接所述乘法模块和所述加和模块。
结合第一方面,在第一方面的一种可实现方式中,所述计算电压通过以下公式确定:
其中,Vcomp为所述计算电压,α为所述权重矩阵的列方向的稀疏度,α大于0且小于1,VDD为提供的电源电压。
第二方面,本申请实施例还提供一种存算阵列,包括如第一方面及各种可实现方式中的存内计算单元,所述存内计算单元的数量与权重矩阵中权重的数量相同,且多个所述存内计算单元呈阵列排布。
第三方面,本申请实施例还提供一种存算芯片,包括如第二方面中的存算阵列。本申请实施例提供一种存内计算单元、存算阵列及存算芯片,在进行乘加运算时,可以根据权重矩阵的列方向的稀疏度动态调节输入的计算电压,在降低功耗的同时,还能自适应地避免存储的权重为0的单元参与计算,从而使得这些单元中用于加和的电容器不会导通至电荷共享线,进而不会导致最小计算精度的电压的下降,因此在尽可能降低计算电压的情况下,并不会影响计算精度。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种存内计算单元的整体结构示意图;
图2是本申请实施例提供的一种存内计算单元的具体结构示意图。
实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了解决传统的存算芯片在降低存算阵列的计算电压的同时会影响存算计算精度的技术问题,本申请通过以下实施例公开了一种存内计算单元。本申请实施例提供的存内计算单元应用于存算芯片,用于根据输入信号以及自身存储的权重数据执行乘加运算。
图1是本申请实施例提供的一种存内计算单元的整体结构示意图。参照图1所示,本申请实施例提供的存内计算单元包括存储电路100和计算电路200。存储电路100被配置为存储权重数据。计算电路200包括乘法模块210、加和模块220和电荷恢复模块230。
其中,乘法模块210与存储电路100耦接,用于接收计算电压,以及,在乘法阶段,若获取到的输入信号和权重数据均为高电平,则执行输入信号与权重数据的乘法运算。计算电压是基于权重矩阵的列方向的稀疏度所配置的多电平,数值位于0至VDD之间,VDD为提供的电源电压。加和模块220分别与存储电路100、乘法模块210和电荷共享线300耦接,用于在加和阶段,若权重数据为高电平,则将乘法模块210的乘法结果导通至电荷共享线300,以与其他乘法模块210的乘法结果进行加和。电荷恢复模块230与加和模块220和乘法模块210耦接,用于在加和阶段之后,泄放加和模块220上寄生电容的电荷。需要说明的是,本申请实施例中,存内计算模式包括两个阶段,分别是乘法阶段和加和阶段。
具体地,在进入乘法阶段之前,计算电压Vcomp会根据权重矩阵的列方向的稀疏度进行调节,其电压反比于稀疏度,稀疏度越高,计算电压Vcomp越低。计算电压Vcomp可以通过以下公式(1)确定:
公式(1)
公式(1)中,Vcomp为计算电压,α为权重矩阵的列方向的稀疏度,α大于0且小于1,VDD为提供的电源电压。
如此,本申请实施例提供的存内计算单元,在进行乘加运算时,可以根据权重矩阵的列方向的稀疏度动态调节输入的计算电压,在降低功耗、提升能效比的同时,还能自适应地避免存储的权重为0的单元参与计算,从而使得这些单元中用于加和的电容器不会导通至电荷共享线,进而不会导致最小计算精度的电压的下降,因此在尽可能降低计算电压的情况下,并不会影响计算精度。
下面对本申请实施例提供的存内计算单元进行具体介绍。
图2是本申请实施例提供的一种存内计算单元的具体结构示意图。参照图2所示,在一些实施例中,乘法模块210可以包括第一晶体管M1、第二晶体管M2和电容器CQ。第一晶体管M1的第一输入端用于接收计算电压Vcomp,第一晶体管M1的第二输入端用于接收输入信号Xn。第二晶体管M2的第一输入端耦接第一晶体管M1的输出端,第二晶体管M2的第二输入端耦接存储电路100的输出端。电容器CQ的一端耦接第二晶体管M2的输出端,电容器CQ的另一端接地。其中,输入信号Xn可以是图像像素转化为0或者1的信号。在一些示例中,电容器CQ的电容值可以为1fF。且电容器CQ可以使用上层金属在单元上方实现MOM电容,从而没有任何额外的面积开销。
在一些实施例中,第一晶体管M1和第二晶体管M2可以为N型MOS管(Metal-Oxide-Semiconductor Field-Effect Transistor,金属-氧化物半导体场效应晶体管)。此时,第一晶体管M1的源极(S极)用于接收计算电压Vcomp,第一晶体管M1的漏极(D极)耦接第二晶体管M2的S极,第一晶体管M1的栅极(G极)用于接收输入信号Xn。第二晶体管M2的G极耦接存储电路100的输出端,第二晶体管M2的D极耦接电容器CQ的一端。
具体地,在乘法阶段,如果外界的输入信号Xn为高电平,则打开第一晶体管M1,如果输入信号Xn为低电平,则不打开第一晶体管M1。与此同时,如果存储在存储电路100中的权重数据为高电平,则打开第二晶体管M2,如果存储在存储电路100中的权重数据为低电平,则不打开第二晶体管M2。只有第一晶体管M1与第二晶体管M2均打开时,计算电压Vcomp才会对电容器CQ进行充电,从而完成输入信号Xn与权重数据的乘法运算。电容器CQ上的电压即为乘法运算的结果。这样,在列方向的稀疏度为α时,动态调整计算电压Vcomp的值,将计算电压Vcomp的值减小至其(1-α)倍,于是每次给电容器CQ充电的功耗降低至原来的(1-α)2倍,因此提高了能耗比,但是同时最小计算精度的电压VLSB也下降1/(1-α)倍。
在其他实施例中,第一晶体管M1和第二晶体管M2也可以为P型MOS管,本申请实施例对此不作限定。
在一些实施例中,加和模块220可以包括第三晶体管M3和第四晶体管M4。第三晶体管M3的第一输入端耦接存储电路100的输出端,第三晶体管M3的第二输入端用于接收加和触发信号ACC。第四晶体管M4的第一输入端耦接第二晶体管M2的输出端,第四晶体管M4的第二输入端耦接第三晶体管M3的输出端,第四晶体管M4的输出端耦接电荷共享线300(即CSB)。其中,加和触发信号ACC是在输入信号Xn与存储的权重数据进行乘法运算之后,在进行列方向的加和时,需要打开的信号。在不进行加和阶段时,加和触发信号ACC可以为高电平。在进行加和阶段时,加和触发信号ACC可以从高电平变成低电平。
在一些实施例中,第三晶体管M3可以为P型MOS管,第四晶体管M4可以为N型MOS管。此时,第三晶体管M3的S极耦接存储电路100的输出端,第三晶体管M3的G极用于接收加和触发信号ACC,第三晶体管M3的D极耦接第四晶体管M4的G极。第四晶体管M4的S极耦接第二晶体管M2的D极,第四晶体管M4的D极耦接电荷共享线300。
具体地,在加和阶段,加和触发信号ACC会从高电平变成低电平,于是存储电路100中的权重数据会通过第三晶体管M3到达与电荷共享线300相连的第四晶体管M4的G极。当权重数据为高电平时,连接在电荷共享线300上的第四晶体管M4打开,此时该存内计算单元用于加和的电容器CQ和电荷共享线300是连接的。当权重数据为低电平时,连接在电荷共享线300上的第四晶体管M4保持断开,此时该存内计算单元用于加和的电容器CQ和电荷共享线300是断开的。
在其他实施例中,第三晶体管M3可以为N型MOS管,第四晶体管M4可以为P型MOS管,本申请实施例对此不作具体限定。
在一些实施例中,电荷恢复模块230可以包括第五晶体管M5。第五晶体管M5的第一输入端耦接第三晶体管M3的输出端,第五晶体管M5的第二输入端用于接收加和触发信号ACC,第五晶体管M5的输出端耦接电容器CQ的另一端。
在一些实施例中,第五晶体管M5可以为N型MOS管。此时,第五晶体管M5的G极用于接收加和触发信号ACC,第五晶体管M5的D极耦接第三晶体管M3的D极,第五晶体管M5的S极耦接耦接电容器CQ的另一端,也即是说,第五晶体管M5的S极接地。
在一些实施例中,电荷共享线300上可以设置有复位开关301。复位开关301用于在第一复位信号的控制下断开,以使电荷共享线300上的电压和电容器CQ上的电压均恢复为零。
具体地,加和阶段之后,第一复位信号(即Reset信号)变为高电平,打开复位开关301,把电路复位,使电荷共享线300上的电压恢复为0,并且把电容器CQ上的电压恢复到0。然后,第一复位信号(即Reset信号)变成低电平,复位开关301闭合,此时,加和触发信号ACC变成高电平,在关断第三晶体管M3的同时,打开第五晶体管M5,把第三晶体管M3的漏极与第四晶体管M4的栅极之间线上的寄生电容的电荷泄露到地,避免对下一次运行造成干扰,为下一次运行做准备。在此情况下,最小计算精度的电压VLSB的值增加了1/(1-α)倍。
如此,整个乘加过程中,最小计算精度的电压VLSB先下降1/(1-α)倍,又增加1/(1-α)倍,因此整体可以保持不变,从而实现根据稀疏度动态降低计算电压,降低功耗、提升能效比的同时,不会影响存算计算精度。
在一些实施例中,存储电路100可以包括交叉耦合反相器、第六晶体管M6和第七晶体管M7。第六晶体管M6的第一输入端耦接对应的位线BL,第七晶体管M7的第一输入端耦接对应的反位线BLB,第六晶体管M6的第二输入端和第七晶体管M7的第二输入端均耦接对应的字线WL,第六晶体管M6的输出端耦接交叉耦合反相器的第一输入端,第七晶体管M7的输出端耦接交叉耦合反相器的第二输入端,交叉耦合反相器的输出端分别耦接乘法模块210和加和模块220。
在一些实施例中,第六晶体管M6可以为N型MOS管,第七晶体管M7可以为N型MOS管。此时,第六晶体管M6的S极耦接对应的位线BL,第六晶体管M6的G极耦接对应的字线WL,第六晶体管M6的D极耦接交叉耦合反相器的第一输入端。第七晶体管M7的S极耦接对应的反位线BLB,第七晶体管M7的G极耦接对应的字线WL,第七晶体管M7的D极耦接交叉耦合反相器的第二输入端。
在一些实施例中,交叉耦合反相器可以包括第八晶体管M8、第九晶体管M9、第十晶体管M10和第十一晶体管M11。第八晶体管M8和第九晶体管M9可以为P型MOS管,第十晶体管M10和第十一晶体管M11可以为N型MOS管。此时,第八晶体管M8的S极和第九晶体管M9的S极均耦接电源电压VDD的输出端,第八晶体管M8的D极耦接第十晶体管M10的D极,第十晶体管M10的S极与第十一晶体管M11的S极均耦接公共接地端电压VSS,第十一晶体管M11的D极耦接第九晶体管M9的D极,第八晶体管M8的G极和第十晶体管M10的G极共同耦接至第九晶体管M9的D极和第十一晶体管M11的D极之间的连线上,第九晶体管M9的G极和第十一晶体管M11的G极共同耦接至第八晶体管M8的D极和第十晶体管M10的D极之间的连线上。其中,第八晶体管M8的D极和第十晶体管M10的D极之间的连线上任一接线点被配置为交叉耦合反相器的第一输入端,第九晶体管M9的D极和第十一晶体管M11的D极之间的连线上任一接线点被配置为交叉耦合反相器的第二输入端,第十晶体管M10的D极被配置为交叉耦合反相器的输出端。如此,存储电路100可形成6T-SRAM(Static Random-Access Memory,静态随机存取存储器)单元的结构。
本申请实施例中,存储电路100可以在读写模式和存内计算模式这两种模式下工作。在读写模式下,当进行读操作时,可以预先把位线BL和反位线BLB充电到电源电压VDD,之后打开字线WL,把待存储的权重数据传输到位线BL和反位线BLB,然后读出。当进行写操作时,权重数据传输到位线BL(1/0)和反位线BLB(0/1),然后打开字线WL,把权重数据(1/0)写入到交叉耦合反相器中。在存内计算模式下,第二晶体管M2和第三晶体管M3可以根据存储电路100中存储的权重数据是高电平还是低电平来进行导通或关断,从而通过存储的权重数据来控制该存储电路100是否参与累加过程,可以自适应地避免存储的权重为0的单元参与计算。
如此,本申请实施例提供的存内计算单元,在进行乘加运算时,可以根据权重矩阵的列方向的稀疏度动态调节输入的计算电压,在降低功耗、提升能效比的同时,还能自适应地避免存储的权重为0的单元参与计算,实现0权重单元电路的自适应关断,去除无效的电容在加和过程中的引入,从而使得这些单元中用于加和的电容器不会导通至电荷共享线,进而不会导致最小计算精度的电压的下降,因此在尽可能降低计算电压的情况下,并不会影响计算精度。
另外,本申请实施例还提供一种存算阵列,包括前述申请实施例中的存内计算单元,其中,存内计算单元的数量与权重矩阵中权重的数量相同,且多个存内计算单元呈阵列排布。这样,存算整列在进行乘加运算时,可以根据权重矩阵的列方向的稀疏度动态调节输入的计算电压,在降低功耗的同时,还能自适应地避免存储的权重为0的单元参与计算,从而使得这些单元中用于加和的电容器不会导通至电荷共享线,进而不会导致最小计算精度的电压的下降,因此在尽可能降低计算电压的情况下,并不会影响计算精度。
另外,本申请实施例还提供一种存算芯片,包括前述申请实施例中的存算阵列,还可以包括其他外围电路,从而可以动态调节输入的计算电压,在降低功耗的同时,还能自适应地避免存储的权重为0的单元参与计算,在尽可能降低计算电压的情况下,并不会影响计算精度。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

Claims (9)

1.一种存内计算单元,其特征在于,包括:
存储电路,被配置为存储权重数据;
计算电路,包括乘法模块、加和模块和电荷恢复模块;
所述乘法模块与所述存储电路耦接,用于接收计算电压,以及,在乘法阶段,若获取到的输入信号和所述权重数据均为高电平,则执行所述输入信号与所述权重数据的乘法运算,所述计算电压基于权重矩阵的列方向的稀疏度进行调节,所述计算电压反比于所述稀疏度,所述稀疏度越高,所述计算电压越低;
所述加和模块分别与所述存储电路、所述乘法模块和电荷共享线耦接,用于在加和阶段,若所述权重数据为高电平,则将所述乘法模块的乘法结果导通至所述电荷共享线,以与其他乘法模块的乘法结果进行加和;
所述电荷恢复模块与所述加和模块和所述乘法模块耦接,用于在所述加和阶段之后,泄放所述加和模块上寄生电容的电荷。
2.根据权利要求1所述的存内计算单元,其特征在于,所述乘法模块包括:
第一晶体管,所述第一晶体管的第一输入端用于接收所述计算电压,所述第一晶体管的第二输入端用于接收所述输入信号;
第二晶体管,所述第二晶体管的第一输入端耦接所述第一晶体管的输出端,所述第二晶体管的第二输入端耦接所述存储电路的输出端;
电容器,所述电容器的一端耦接所述第二晶体管的输出端,所述电容器的另一端接地。
3.根据权利要求2所述的存内计算单元,其特征在于,所述加和模块包括:
第三晶体管,所述第三晶体管的第一输入端耦接所述存储电路的输出端,所述第三晶体管的第二输入端用于接收加和触发信号;
第四晶体管,所述第四晶体管的第一输入端耦接所述第二晶体管的输出端,所述第四晶体管的第二输入端耦接所述第三晶体管的输出端,所述第四晶体管的输出端耦接所述电荷共享线。
4.根据权利要求3所述的存内计算单元,其特征在于,所述电荷恢复模块包括:
第五晶体管,所述第五晶体管的第一输入端耦接所述第三晶体管的输出端,所述第五晶体管的第二输入端用于接收所述加和触发信号,所述第五晶体管的输出端耦接所述电容器的另一端。
5.根据权利要求4所述的存内计算单元,其特征在于,所述电荷共享线上设置有复位开关,所述复位开关用于在第一复位信号的控制下断开,以使所述电荷共享线上的电压和所述电容器上的电压均恢复为零。
6.根据权利要求1所述的存内计算单元,其特征在于,所述存储电路包括交叉耦合反相器、第六晶体管和第七晶体管;
所述第六晶体管的第一输入端耦接对应的位线,所述第七晶体管的第一输入端耦接对应的反位线,所述第六晶体管的第二输入端和所述第七晶体管的第二输入端均耦接对应的字线,所述第六晶体管的输出端耦接所述交叉耦合反相器的第一输入端,所述第七晶体管的输出端耦接所述交叉耦合反相器的第二输入端,所述交叉耦合反相器的输出端分别耦接所述乘法模块和所述加和模块。
7.根据权利要求1所述的存内计算单元,其特征在于,所述计算电压通过以下公式确定:
其中,Vcomp为所述计算电压,α为所述权重矩阵的列方向的稀疏度,α大于0且小于1,VDD为提供的电源电压。
8.一种存算阵列,其特征在于,包括如权利要求1至7中任一项所述的存内计算单元,所述存内计算单元的数量与权重矩阵中权重的数量相同,且多个所述存内计算单元呈阵列排布。
9.一种存算芯片,其特征在于,包括如权利要求8所述的存算阵列。
CN202310300295.3A 2023-03-27 2023-03-27 一种存内计算单元、存算阵列及存算芯片 Active CN116070685B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310300295.3A CN116070685B (zh) 2023-03-27 2023-03-27 一种存内计算单元、存算阵列及存算芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310300295.3A CN116070685B (zh) 2023-03-27 2023-03-27 一种存内计算单元、存算阵列及存算芯片

Publications (2)

Publication Number Publication Date
CN116070685A CN116070685A (zh) 2023-05-05
CN116070685B true CN116070685B (zh) 2023-07-21

Family

ID=86180532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310300295.3A Active CN116070685B (zh) 2023-03-27 2023-03-27 一种存内计算单元、存算阵列及存算芯片

Country Status (1)

Country Link
CN (1) CN116070685B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021163866A1 (zh) * 2020-02-18 2021-08-26 杭州知存智能科技有限公司 神经网络权重矩阵调整方法、写入控制方法以及相关装置
CN114925819A (zh) * 2022-05-31 2022-08-19 华中科技大学 一种感受稀疏性的神经网络运行系统及方法
CN115186802A (zh) * 2022-07-18 2022-10-14 南京大学 基于卷积神经网络的块稀疏方法、装置及处理单元

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763653B (zh) * 2018-04-30 2022-04-22 南京大学 基于fpga的可重构线性方程组求解加速器
US11568200B2 (en) * 2019-10-15 2023-01-31 Sandisk Technologies Llc Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference
CN113344170B (zh) * 2020-02-18 2023-04-25 杭州知存智能科技有限公司 神经网络权重矩阵调整方法、写入控制方法以及相关装置
US11372622B2 (en) * 2020-03-06 2022-06-28 Qualcomm Incorporated Time-shared compute-in-memory bitcell
US12002539B2 (en) * 2020-08-04 2024-06-04 National Tsing Hua University Memory device and memory array structure using charge sharing for multi-bit convolutional neural network based computing-in-memory applications, and computing method thereof
CN112581996B (zh) * 2020-12-21 2023-07-25 东南大学 基于磁性随机存储器的时域存内计算阵列结构
CN113506589B (zh) * 2021-06-28 2022-04-26 华中科技大学 一种稀疏矩阵存算系统及方法
US20230012303A1 (en) * 2021-07-09 2023-01-12 Stmicroelectronics International N.V. Selective bit line clamping control for an in-memory compute operation where simultaneous access is made to plural rows of a static random access memory (sram)
CN113391786B (zh) * 2021-08-17 2021-11-26 中科南京智能技术研究院 一种多位正负权重的计算装置
CN113741858B (zh) * 2021-09-06 2024-04-05 南京后摩智能科技有限公司 存内乘加计算方法、装置、芯片和计算设备
CN114298297A (zh) * 2021-11-04 2022-04-08 清华大学 存内计算装置、芯片及电子设备
CN114676834B (zh) * 2022-05-26 2022-08-02 中科南京智能技术研究院 一种用于存内计算阵列的位线电压钳制电路
CN114743580B (zh) * 2022-06-13 2022-09-02 中科南京智能技术研究院 一种电荷共享存内计算装置
CN115390789A (zh) * 2022-08-26 2022-11-25 东南大学 基于磁隧道结计算单元的模拟域全精度存内计算电路及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021163866A1 (zh) * 2020-02-18 2021-08-26 杭州知存智能科技有限公司 神经网络权重矩阵调整方法、写入控制方法以及相关装置
CN114925819A (zh) * 2022-05-31 2022-08-19 华中科技大学 一种感受稀疏性的神经网络运行系统及方法
CN115186802A (zh) * 2022-07-18 2022-10-14 南京大学 基于卷积神经网络的块稀疏方法、装置及处理单元

Also Published As

Publication number Publication date
CN116070685A (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
US11335387B2 (en) In-memory computing circuit for fully connected binary neural network
US10055196B2 (en) Division operations for memory
CN112036562B (zh) 一种应用于存内计算的位单元及存算阵列装置
US11456030B2 (en) Static random access memory SRAM unit and related apparatus
US11372622B2 (en) Time-shared compute-in-memory bitcell
CN115039177A (zh) 低功耗存储器内计算位单元
CN114530176B (zh) 一种分布式位线补偿数模混合存内计算阵列
Ha et al. A 36.2 dB high SNR and PVT/leakage-robust eDRAM computing-in-memory macro with segmented BL and reference cell array
US12105986B2 (en) Devices, chips, and electronic equipment for computing-in-memory
CN114038492B (zh) 一种多相采样存内计算电路
CN116070685B (zh) 一种存内计算单元、存算阵列及存算芯片
CN113889158A (zh) 一种基于sram的存内计算电路、装置及电子设备
CN117130978A (zh) 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法
CN116204490A (zh) 一种基于低电压技术的7t存算电路、乘累加运算电路
CN115691613A (zh) 一种基于忆阻器的电荷型存内计算实现方法及其单元结构
CN113655989B (zh) 用于存内计算的乘法器数字电路、芯片、电子设备
CN116129973A (zh) 一种存内计算方法及电路、半导体存储器和存储结构
US20240152321A1 (en) Floating point pre-alignment structure for computing-in-memory applications and computing method thereof
CN112967741A (zh) 一种面向存算阵列的高速高压字线驱动电路
CN118312468B (zh) 一种带符号乘法的存内运算电路及cim芯片
CN118298872B (zh) 输入权重比特位可配置的存内计算电路及其芯片
Zhou et al. RISC-V based Fully-Parallel SRAM Computing-in-Memory Accelerator with High Hardware Utilization and Data Reuse Rate
US20240220743A1 (en) Hybrid structure for computing-in-memory applications and computing method thereof
TWI849566B (zh) 用於記憶體內運算(cim)的記憶體陣列及其操作方法
US20230307047A1 (en) Reducing precharge current surge in digital compute in memory

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