CN117130978A - 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法 - Google Patents

基于稀疏跟踪adc的电荷域存内计算电路及其计算方法 Download PDF

Info

Publication number
CN117130978A
CN117130978A CN202311322983.6A CN202311322983A CN117130978A CN 117130978 A CN117130978 A CN 117130978A CN 202311322983 A CN202311322983 A CN 202311322983A CN 117130978 A CN117130978 A CN 117130978A
Authority
CN
China
Prior art keywords
local
memory
bit
module
input
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.)
Pending
Application number
CN202311322983.6A
Other languages
English (en)
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.)
Southeast University
Original Assignee
Southeast 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 Southeast University filed Critical Southeast University
Priority to CN202311322983.6A priority Critical patent/CN117130978A/zh
Publication of CN117130978A publication Critical patent/CN117130978A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)

Abstract

本发明公开了一种基于稀疏跟踪ADC的电荷域存内计算电路及其计算方法,属于集成电路技术领域,包括多列存算单元阵列,每列上由多个存算子单元重复排列构成,在列上重复排列的存算单元共用一个稀疏跟踪ADC。外部输入的特征数据经稀疏配置的局部字线驱动单元处理后,输入到局部跳选计算单元中进行乘操作并将电压积累到电容中,多个列向的局部跳选计算单元中的电容并联通过电荷分享实现累加,再通过稀疏跟踪ADC量化获得输出结果,外部移位加法单元对于4个ADC的输出进行移位相加,组合输出多位计算结果。本发明受工艺、电压、温度影响小,计算速度快,准确度高,突破了存内计算处理稀疏性网络数据运算的瓶颈,提升了能效。

Description

基于稀疏跟踪ADC的电荷域存内计算电路及其计算方法
技术领域
本发明涉及集成电路技术领域,特别涉及一种基于稀疏跟踪ADC的电荷域存内计算电路及其计算方法。
背景技术
在传统的冯·诺依曼架构中,中央处理器和存储器分离,两者通过带宽有限的接口传输数据。随着集成电路设计技术及制造工艺的不断发展,处理器的性能大幅提升,而存储器带宽又是有限的,因此数据传输延迟大、能耗高的问题愈为严重,存储器的性能制约了系统整体性能的进一步提升,这也被称作冯诺依曼架构的存储墙问题。此外,人工智能技术蓬勃发展使处理器的计算量大幅增加。对于传统的冯诺依曼架构的处理器来说,大量的能耗和时间消耗在数据的传输上,处理器往往难以达到神经网络对算力和能效的需求。
存内计算(Computing-in-Memory,CIM)是解决存储墙问题的一种可行方法。在存算一体架构下,存储器既保留了存储和读写的功能,又可以支持神经网络中常见的一些逻辑或乘加运算。处理器和存储器之间传输存内计算的结果,减少了两者之间数据的传输量,降低了存储器带宽低对系统整体吞吐量的影响,也使得耗费在数据传输上的能耗降低,系统的能量效率提升。
静态随机存储器(Static Random Access Memory,SRAM)是易失性存储器的一种,具有CMOS工艺兼容、存取速度快,静态功耗低,耐久度高等优点,是存内计算常见的存储器。目前,SRAM-CIM可根据计算方式分为时域、模拟域和数字域计算。
时域计算的主流方案通常是使用反相器链实现延时,输入和权重值控制延时的长短,延时通过反相器链累加后通过时间数字转换器(Time to Digital Convertor,TDC)量化为数字域结果。时域计算使用延时长短表征计算结果,突破了模拟域中工作电压对计算精度的限制。但时序存内计算方案受工艺、电压、温度(PVT)影响严重,若延时单元线性度和匹配度差,则经过延时链累加后的结果难以通过TDC正确量化。并且TDC面积开销大,对参考时钟的频率和稳定性要求高。部分TDC设计时为了减少片上时钟的影响引入内部延时链或锁相环等结构,又进一步增加了TDC的面积和功耗开销。
数字域计算在计算时只涉及数字逻辑,计算的精度和准确率较高,但在累加过程中使用的加法器存在功耗和面积开销大等问题。数字逻辑计算在一次运算中仅能实现单比特乘或加,并行度较低,计算乘法需要较多的的逻辑电路及连线,将会导致版图走线困难,面积开销大。
模拟域计算将输入的数据以及存储的权重由数字域转化成电压、电流等模拟量进行计算,计算结束后再将结果量化到数字域。随着存内计算精度的提升,由于电路的工作电压存在上限,模拟信号的信号裕度被进一步压缩,对模数转换的精度有极高的要求,而高精度模拟数字转换器(Analog to Digital Converter,ADC)及数字模拟转换器(Digital toAnalog Converter,DAC)将会带来巨大的延时和功耗开销,降低了系统算力能耗比。因此,对模拟域存内计算来说,高精度和高算力能耗比是互相制约的。
发明内容
本发明提供一种基于稀疏跟踪ADC的电荷域存内计算电路及其计算方法,利用稀疏控制模块和稀疏跟踪ADC可以较好地实现对稀疏矩阵乘法的计算与量化处理,并利用稀疏性在大多数情况下实现高效计算。
本发明第一方面实施例提供一种基于稀疏跟踪ADC的电荷域存内计算电路,包括:
由局部输入控制单元组成的局部输入控制模块、由稀疏配置的局部字线驱动单元组成的稀疏配置的局部字线驱动模块、具有共享计数的稀疏跟踪ADC模块、读写端口、时序控制、存算控制、数字加法器树和移位器模块以及64个在行上重复排列的存算单元;
每个存算单元由64个在列上重复排列的存算子单元构成,每一个存算子单元包括4个6T-SRAM存储单元、1个局部跳选计算单元;SRAM存储单元用于存储计算时需要的权重数据;
每个存算单元后接一个稀疏跟踪ADC模块以量化每列的计算结果,即64个在列上重复排列的存算子单元共用一个稀疏跟踪ADC模块;4列对应4个稀疏跟踪ADC模块的输出结果经过所述数字加法器树和移位器模块完成一次运算;外部输入的特征数据经所述稀疏配置的局部字线驱动单元处理后,输入到存算单元的局部跳选计算单元中与权重数据进行乘操作并将电压积累到电容中,多个列向的局部跳选计算单元中的电容并联通过电荷分享实现累加,再通过所述稀疏跟踪ADC模块量化获得输出结果,所述数字加法器树和移位器模块对4个所述稀疏跟踪ADC模块的输出进行移位相加,组合输出多位计算结果。
在本发明的一个实施例中,所述存算子单元包括4个6T-SRAM存储单元、局部位线(LBL)、互补局部位线(LBLB)、字线(WL)、横向字线(HWL)、全局位线(GBL)、互补全局位线(GBLB),第三NMOS管(N3)和第四NMOS管(N4);所述6T-SRAM存储单元的权重存储节点均与局部位线(LBL)相连,所述6T-SRAM存储单元的互补权重存储节点与互补局部位线(LBLB)相连;其中,第三NMOS管(N3)漏极连接局部位线(LBL),源极连接全局位线(GBL),栅极连接横向字线(HWL);第四NMOS管(N4)漏极连接互补局部位线(LBLB),源极连接互补全局位线(GBLB),栅极连接横向字线(HWL);64个在列上重复排列的存算子单元共用同一条全局位线(GBL)和互补全局位线(GBLB);64个在行上重复排列的存算单元中的每一行上的6T-SRAM存储单元共用一条字线(WL)。
在本发明的一个实施例中,所述局部跳选计算单元(LJCC)包括输入信号线(VIN),跳选信号线(JUMP),互补跳选信号线(JUMPB),局部位线(LBL),互补局部位线(LBLB),第五NMOS管(N5),第一传输门(S1),第二传输门(S2),电容(C)和积累线(MBL);第一传输门(S1)的输入端连接输入信号线(VIN),第一传输门(S1)的输出端连接第五NMOS管(N5)的漏极和电容(C)的上极板,第一传输门(S1)的控制端连接局部位线(LBL)信号线,第一传输门(S1)的互补控制端连接互补局部位线(LBLB)信号线;第五NMOS管(N5)的源极连接公共端(VSS),第五NMOS管(N5)的漏极连接第一传输门(S1)的输出端和电容(C)的上极板,第五NMOS管(N5)栅极连接互补局部位线(LBLB)信号线;电容(C)的上极板连接第一传输门(S1)的输出端和第五NMOS管(N5)的漏极,下极板连接第二传输门(S2)的输入端;第二传输门S2的输入端连接电容(C)的下极板,第二传输门(S2)的输出端连接积累线(MBL),第二传输门(S2)的控制端连接跳选信号线(JUMP)信号线,第二传输门(S2)的互补控制端连接互补跳选信号线(JUMPB)。
在本发明的一个实施例中,所述局部输入控制单元由一个2-4译码器和传输门S3、传输门S4、传输门S5、传输门S6组成,2-4译码器的输入为2比特二进制数字信号,传输门S3、传输门S4、传输门S5、传输门S6的输入端分别为VDIN0、VDIN1、VDIN2、VDIN3四个不同的外界输入电压,译码器的输出及其反信号接到传输门的控制端上,当译码器输入为00时,传输门S3打开,传输门S4、传输门S5、传输门S6关闭;当译码器输入为01时,传输门S4打开,传输门S3、传输门S5、传输门S6关闭;当译码器输入为10时,传输门S5打开,传输门S3、传输门S4、传输门S6关闭,当译码器输入为11时,传输门S6打开,传输门S3、传输门S4、传输门S5关闭,由此将2比特输入数字信号转化为相对应的模拟电压信号VDIN输入,后连接到局部跳选计算单元(LJCC)的输入信号线(VIN)。
在本发明的一个实施例中,所述稀疏配置的局部字线驱动单元根据输入特征的稀疏性决定打开局部跳选计算单元的个数,当输入特征值为1时,驱动对应的字线同时产生相应的跳选信号和互补跳选信号,相对应存算单元参与计算;当输入特征值为0时,不驱动字线,关闭相对应的存算单元。
在本发明的一个实施例中,所述稀疏跟踪ADC模块包括共享模块和复用模块;共享模块包括用于稀疏跟踪补偿单元、参考电压发生器、共享计数器和计算完成后的总关断模块,64个复用模块共用1个共享模块;其中,稀疏跟踪补偿单元由4个电容组成,将根据输入特征匹配不同的总电容,确定信号线(VDAC)的输出范围,以匹配实际积累线(MBL)电压摆幅;参考电压发生器根据计数器计数大小产生参考电压;复用模块包括比较器、脉冲产生电路、锁存模块、列关断模块,每个存算单元对应一个复用模块,共64个复用模块;其中,首先利用比较器进行共享模块输出的参考电压和积累线(MBL)电压的比较,在参考电压大于积累线(MBL)的电压时,产生脉冲信号,将当前的计数器数值锁存作为稀疏跟踪ADC模块的输出结果;同时脉冲信号输入到列关断模块,产生列完成信号(column_finish),当所有列完成比较后,共享模块中的总关断模块产生ADC关断信号(finish_all)关闭所有稀疏跟踪ADC模块,稀疏跟踪ADC模块得到一个5比特数据输出(ADC_OUTn),表征为同一列上乘法结果累加的量化结果。
在本发明的一个实施例中,所述数字加法器和移位器模块将每个存算单元的4个5比特的稀疏跟踪ADC输出结果(ADC_OUTn)进行移位相加,移位相加过程本质为有符号数的乘法运算,计算结果要进行相应的符号位扩展操作,具体扩展方法取决于被乘数与乘数是否为有符号数,所述数字加法器和移位器模块对稀疏跟踪ADC输出结果进行1bit无符号数与4bit有符号数的乘法运算,相对应的符号位扩展操作为将最后一个加数补最高位再连同最高位取反后加一,最终得到一个9比特数据输出计算结果(QOUTn[8:0]),表征为64通道的2比特输入与4比特权重乘法相加的结果,存内计算电路共64个存算单元,每次得到16个9比特输出结果。
在本发明的一个实施例中,多个在行上重复排列的局部跳选计算单元对应1个局部输入控制单元和1个稀疏配置的局部字线驱动模块;64个在列上重复排列的局部跳选计算单元的输出连接在同一条积累线(MBL)上;局部跳选计算单元与稀疏跟踪ADC的连接关系为:局部跳选计算单元的积累线(MBL)连接到稀疏跟踪ADC的输入端,进行模数转换量化为5比特的计算结果;稀疏跟踪ADC与数字加法器和移位器模块的连接关系为,4个稀疏跟踪ADC对应的4个5比特的计算结果连接至1个数字加法器和移位器模块的输入端,得到1个9比特输出数据(QOUTn[8:0]);或配置为两个周期完成13比特输出数据的运算,第一个周期输出多个9比特数据,第二个周期将每两个9比特数据的移位相加处理得到一个13比特的输出数据QOUT[12:0]。
本发明第二方面实施例提供一种基于稀疏跟踪ADC的电荷域存内计算电路的计算方法,包括以下步骤:
当存算单元的计算周期开始时,首先将横向字线(HWL)置于低电平,同时根据稀疏配置的局部字线驱动模块打开相应的字线(WL)同时产生相应的跳选信号(JUMP)和互补跳选信号(JUMPB);
当稀疏配置的局部字线驱动模块未选中存算单元时,该存算单元不进行工作,不参与计算过程;
当稀疏配置的局部字线模块选中存算单元时,存储在6T-SRAM存储单元中的数据被读取到局部位线(LBL)和互补局部位线(LBLB)上,当SRAM中存储的值为0时,互补局部位线(LBLB)信号线为1,局部跳选计算单元中的第五NMOS管(N5)被打开,电容上极板接地,当SRAM中的存储值为1时,互补局部位线(LBLB)信号为0,局部跳选计算单元中的第五NMOS管(N5)被关断,局部位线(LBL)信号为1,打开局部跳选计算单元第一传输门(S1)使相应的VIN电压传输到电容上极板,,跳选信号(JUMP)和互补跳选信号(JUMPB)打开传输门使相应多个局部跳选计算单元的电容下极板相连,共同参与电容耦合与电荷分享的计算过程,多个存算单元乘加产生的模拟电压通过稀疏跟踪ADC量化后产生5位结果,整个存算电路通过数字加法器树和移位器模块实现4个稀疏跟踪ADC量化结果的移位相加获得最终结果。
在本发明的一个实施例中,所述存内计算电路的每个局部跳选计算单元计算1比特权重乘2比特输入信号,每个存算单元对应1个局部输入控制单元;每列存算阵列连接一个稀疏跟踪ADC量化获得5比特二进制结果;整个存算电路输出信号为数字加法器树和移位器模块的QOUT<n>的二进制结果。
本发明的实施例提供了一种可实现高速、高精度、高准确度计算的基于稀疏跟踪ADC的电荷域存内计算电路及其计算方法,该电路中输入和权重的乘积决定模拟电压大小,利用ADC电路量化计算结果。与普通模拟域计算相比,突破了存内计算处理稀疏性网络数据运算的瓶颈,同时提升了能效。与数字域相比,该电路利用电容耦合和电荷分享实现乘积累加运算,减少了运算单元的晶体管数,在一个周期可以实现多次运算。相较于普通的模拟域ADC模块,本发明利用稀疏控制模块和稀疏跟踪ADC可以较好地实现对稀疏矩阵乘法的计算与量化处理,并利用稀疏性在大多数情况下实现高效计算。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例提供的一种基于稀疏跟踪ADC的电荷域存内计算电路的结构图;
图2为根据本发明实施例提供的基于稀疏跟踪ADC的电荷域存内计算电路的存算子单元的结构示意图;
图3为根据本发明实施例提供的基于稀疏跟踪ADC的电荷域存内计算电路的稀疏跟踪ADC的结构示意图;
图4为根据本发明实施例提供的基于稀疏跟踪ADC的电荷域存内计算电路的工作波形示意图;
附图标记:局部位线LBL、互补局部位线LBLB、全局位线GBL、互补全局位线GBLB,横向字线HWL、字线WL、跳选信号线JUMP、互补跳选信号线JUMPB、外部输入信号线VIN、电源VDD、公共端VSS;第一NMOS管N1、第二NMOS管N2、第三NMOS管N3、第四NMOS管N4、第五NMOS管N5、第一反相器INV1、第二反相器INV2、第一传输门S1、第二传输门S2、电容C、电容C0、电容C1、电容C2、电容Cm、电容CT0、电容CT1、电容CT2、电容CT3、电容CT4、传输门CPC[0]、传输门CPC[1]、传输门CPC[2]。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
图1为根据本发明实施例提供的一种基于稀疏跟踪ADC的电荷域存内计算电路的结构图。
如图1所示,该基于稀疏跟踪ADC的电荷域存内计算电路包括:由局部输入控制单元组成的局部输入控制模块、由稀疏配置的局部字线驱动单元组成的稀疏配置的局部字线驱动模块、具有共享计数的稀疏跟踪ADC模块、读写端口、时序控制、存算控制、数字加法器树和移位器模块以及64个在行上重复排列的存算单元;
每个存算单元由64个在列上重复排列的存算子单元构成,每一个存算子单元包括4个6T-SRAM存储单元、1个局部跳选计算单元;SRAM存储单元用于存储计算时需要的权重数据;
每个存算单元后接一个稀疏跟踪ADC模块以量化每列的计算结果,即64个在列上重复排列的存算子单元共用一个稀疏跟踪ADC模块;4列对应4个稀疏跟踪ADC模块的输出结果经过数字加法器树和移位器模块完成一次运算;外部输入的特征数据经稀疏配置的局部字线驱动单元处理后,输入到存算单元的局部跳选计算单元中与权重数据进行乘操作并将电压积累到电容中,多个列向的局部跳选计算单元中的电容并联通过电荷分享实现累加,再通过稀疏跟踪ADC模块量化获得输出结果,数字加法器树和移位器模块对4个稀疏跟踪ADC模块的输出进行移位相加,组合输出多位计算结果。
如图1所示,存内计算电路局部输入控制单元(LVICU)、稀疏配置的局部字线驱动单元(LDRV)、具有共享计数的稀疏跟踪ADC模块、读写端口、时序控制、存算控制、数字加法器树和移位器模块(DAS)以及64个在行上重复排列的存算单元;每个存算单元由64个在列上重复排列的存算子单元构成,每一个存算子单元包括4个6T-SRAM存储单元、1个局部跳选计算单元(LJCC);每个存算单元后接一个稀疏跟踪ADC以量化每列的计算结果,4列对应4个ADC的输出结果经过数字加法器树和移位器模块(DAS)完成一次运算。
如图2所示,SRAM存储子单元阵列包括4个6T-SRAM存储单元、局部位线(LBL)、互补局部位线(LBLB)、字线(WL)、横向字线(HWL)、全局位线(GBL)、互补全局位线(GBLB);6T-SRAM存储单元的权重存储节点均与局部位线(LBL)相连,SRAM存储单元的互补权重存储节点与互补局部位线(LBLB)相连;其中,第一NMOS管(N1)漏极连接局部位线(LBL),源极连接全局位线(GBL),栅极连接横向字线(HWL);第二NMOS管(N2)漏极连接互补局部位线(LBLB),源极连接互补全局位线(GBLB),栅极连接横向字线(HWL);64个在列上重复排列的存算子单元共用同一条全局位线(GBL)和互补全局位线(GBLB);64个在行上重复排列的存算单元中的每一行上的6T-SRAM存储单元共用一条字线(WL)。
进一步的,6T-SRAM存储单元包括:第一NMOS管(N1)、第二NMOS管(N2)、第一反相器(INV1)、第二反相器(INV2)。其中,第一NMOS管(N1)的源极接局部位线(LBL),栅极接字线(WL),漏极分别与第一反相器(INV1)输入端和第二反相器(INV2)输出端连接;第二NMOS管(N2)的源极接互补局部位线(LBLB),栅极接字线(WL),漏极分别与第一反相器(INV1)输出端和第二反相器(INV2)输入端连接。
进一步的,第一反相器INV1包括:第一PMOS管(P1),第一NMOS管(N1)。其中,第一PMOS管(P1)源极接电源(VDD),漏极接输出端(OUT),栅极接输入端(IN);第一NMOS管(N1)源极接公共端(VSS),漏极接输出端(OUT),栅极接输入端(IN)。
局部跳选计算单元(LJCC)包括:输入信号线(VIN),跳选信号线(JUMP),互补跳选信号线(JUMPB),局部位线(LBL),互补局部位线(LBLB),积累线(MBL),第五NMOS管(N5),第一传输门(S1),第二传输门(S2),电容(C);其中,第一传输门(S1)的输入端连接输入信号线(VIN),输出端连接第五NMOS管(N5)的漏极和电容(C)的上极板,控制端连接局部位线(LBL)信号线,互补控制端连接互补局部位线(LBLB)信号线;第五NMOS管(N5)的源极连接公共端(VSS),漏极连接第一传输门(S1)的输出端和电容(C)的上极板,栅极连接互补局部位线(LBLB)信号线;电容(C)的上极板连接第一传输门(S1)的输出端和第五NMOS管(N5)的漏极,下极板连接第二传输门(S2)的输入端;第二传输门(S2)的输入端连接电容(C)的下极板,输出端连接积累线(MBL),控制端连接跳选信号线(JUMP),互补控制端连接互补跳选信号线(JUMPB)。
局部输入控制单元(LVICU)主要由一个2-4译码器和4个传输门(S3、S4、S5、S6)组成。2-4译码器的输入为2比特二进制数字信号,传输门S3、S4、S5、S6的输入端分别为VDIN0、VDIN1、VDIN2、VDIN3四个不同的外界输入电压。译码器的输出及其反信号接到传输门的控制端上。当译码器输入为00时,传输门S3打开,其余三个传输门关闭;当译码器输入为01时,传输门S4打开,其余三个传输门关闭;当译码器输入为10时,传输门S5打开,其余三个传输门关闭,当译码器输入为11时,传输门S6打开,其余三个传输门关闭,通过这种方式实现了2比特输入数字信号转化为相对应的模拟电压信号VDIN输入,后连接到局部跳选计算单元(LJCC)的输入信号线(VIN)。
稀疏配置的局部字线驱动单元根据输入特征的稀疏性来决定打开局部跳选计算单元(LJCC)的个数。当输入特征值为1时,驱动对应的字线同时产生相应的跳选信号(JUMP)和互补跳选信号(JUMPB),相对应存算单元参与计算,当输入特征值为0时,不驱动字线,关闭相对应的存算单元,从而节省能源消耗。
如图3所示,具有共享计数的稀疏跟踪ADC包括共享模块和复用模块。其中,共享模块包括用于稀疏跟踪的稀疏跟踪补偿单元(CAP)、参考电压发生器(CDAC)、共享计数器和计算完成后的总关断模块,64个复用模块共用1个共享模块;其中,稀疏跟踪补偿单元(CAP)由4个电容组成,将根据输入特征匹配不同的总电容,确定信号线(VDAC)的输出范围,以匹配实际积累线(MBL)电压摆幅;参考电压发生器(CDAC)根据计数器计数大小产生参考电压。复用模块包括比较器、脉冲产生电路、锁存模块、列关断模块,每个存算单元对应一个复用模块,共64个复用模块。其中,首先利用比较器进行共享模块输出的参考电压和积累线(MBL)电压的比较,一旦参考电压大于积累线(MBL)的电压,产生脉冲信号,将此时的计数器数值锁存,此数值即为ADC输出结果;同时脉冲信号输入到列关断模块,产生列完成信号(column-finish),当所有列完成比较后,共享模块中的总关断模块产生ADC关断信号(finish_all)关闭所有ADC,从而能够在整体量化结果较小的情况时节省大量功耗。最终稀疏跟踪ADC得到一个5比特数据输出,其表征为同一列上乘法结果累加的量化结果。
共享模块中,稀疏跟踪补偿单元(CAP)包括:电容C0、C1、C2、Cm,传输门CPC[0]、CPC[1]、CPC[2],信号线VDAC。电容C0、C1、C2、Cm的电容值均相同,两端分别与VSS和信号线VDAC相连。信号线VDAC上连接有传输门CPC[0]、CPC[1]、CPC[2],分别用以控制电容C0、C1、C2与信号线VDAC之间的通断。参考电压发生器(CDAC)包括:电容CT0、CT1、CT2、CT3、CT4,数字计数器的输出Count[0]、Count[1]、Count[2]、Count[3]、Count[4],信号线VDAC。电容CT0、CT1、CT2、CT3、CT4的电容值按比例减小,上下极板分别与Count[0]、Count[1]、Count[2]、Count[3]、Count[4]和信号线VDAC相连。计数器输出值的变化使得电容分压不同,从而产生不同的参考电压。
数字加法器和移位器模块(DAS)将4个存算单元所对应的4个稀疏跟踪ADC的输出结果(ADC_OUTn)进行移位相加,即实现4个5比特数据相加,此过程本质为有符号数的乘法运算,其计算结果需要进行相应的符号位扩展操作,具体扩展方法取决于被乘数与乘数是否为有符号数。所述数字加法器和移位器模块对ADC输出结果进行1bit无符号数与4bit有符号数的乘法运算,与之相对应的符号位扩展操作为:将最后一个加数补最高位再连同最高位取反后加一,最终得到一个含符号位的9比特数据输出计算结果(QOUTn[8:0]),其表征为64通道的2比特输入与4比特权重乘法相加的结果。
存算电路中多个在行上重复排列的SRAM存算子单元共用1个局部输入控制单元和1个稀疏配置的局部字线驱动模块;64个在列上重复排列的SRAM存算子单元的局部跳选计算单元(LJCC)的输出连接在同一条积累线(MBL)上;SRAM存算单元与稀疏跟踪ADC的连接关系为,同一列上被稀疏配置的局部字线驱动模块选中的每个存算子单元的局部跳选计算单元(LJCC)参与乘法运算产生VOUT[n],所有VOUT共同接到同一积累线(MBL)上完成模拟域上的累加。之后接到稀疏跟踪ADC的输入端,模数转换量化为5比特的计算结果;稀疏跟踪ADC与数字加法器和移位器模块(DAS)的连接关系为,4个稀疏跟踪ADC对应的4个5比特的计算结果连接至1个数字加法器和移位器模块的输入端,得到1个9比特输出数据(QOUTn[8:0]);或可配置为两个周期完成13比特输出数据的运算,第一个周期输出多个9比特数据,第二个周期将每两个9比特数据的移位相加处理得到一个13比特的输出数据(QOUT[12:0])。
基于上述计算电路的模拟域存内计算方法,包括如下步骤:当存算单元的计算周期开始时,首先将横向字线(HWL)置于低电平,同时根据稀疏配置的局部字线驱动模块打开相应的字线(WL)同时产生相应的跳选信号(JUMP)和互补跳选信号(JUMPB)。当局部字线驱动模块未选中存算单元时,该存算单元不进行工作,不参与计算过程;当局部字线模块选中存算单元时,存储在6T-SRAM存储单元中的数据被读取到局部位线(LBL)和互补局部位线(LBLB)上,当SRAM中存储的值为0时,互补局部位线(LBLB)信号线为1,局部跳选计算单元(LJCC)中的第五NMOS管(N5)被打开,电容上极板接地,当SRAM中的存储值为1时,互补局部位线(LBLB)信号为0,局部跳选计算单元(LJCC)中的第五NMOS管(N5)被关断,局部位线(LBL)信号为1,打开局部跳选计算单元(LJCC)第一传输门使相应的输入信号线(VIN)电压传输到电容上极板。跳选信号(JUMP)和互补跳选信号(JUMPB)打开传输门使相应多个列向的局部跳选计算单元(LJCC)的电容下极板相连,共同参与电容耦合与电荷分享的计算过程。多个存算单元乘加产生的模拟电压通过稀疏跟踪ADC量化后产生5位结果,整个存算电路通过数字加法器树和移位器模块实现4个稀疏跟踪ADC量化结果的移位相加,获得最终结果(QOUTn[8:0])。
存内计算电路的每个局部跳选计算单元(LJCC)能够计算1比特权重乘2比特输入信号,每个存算单元对应1个局部输入控制单元;每列存算阵列连接一个稀疏跟踪ADC量化获得5比特二进制结果;整个存算电路输出信号为数字加法器树和移位器模块的QOUT<n>的二进制结果。
图4展示了本实施例的一种工作波形。当存算单元的计算周期开始时,若稀疏矩阵中输入元素为0,则各模块不开启;若稀疏矩阵中输入元素为1,开启字线(WL)和跳选信号(JUMP),将存储在SRAM存储单元中的权重数据读取到局部位线(LBL)和互补位线(LBLB)上,输入到局部跳选计算单元(LJCC)参与乘法运算产生VOUT[n],即进行一次运算。
根据本发明实施例提出的基于稀疏跟踪ADC的电荷域存内计算电路及其计算方法,该电路中输入和权重的乘积决定模拟电压大小,利用ADC电路量化计算结果。与普通模拟域计算相比,突破了存内计算处理稀疏性网络数据运算的瓶颈,同时提升了能效。与数字域相比,该电路利用电容耦合和电荷分享实现乘积累加运算,减少了运算单元的晶体管数,在一个周期可以实现多次运算。进一步的,相较于普通的模拟域ADC模块,本发明利用稀疏控制模块和稀疏跟踪ADC可以较好地实现对稀疏矩阵乘法的计算与量化处理,利用稀疏性在大多数情况下实现高效计算:稀疏跟踪ADC可根据输入稀疏度匹配不同的总电容,确定信号线(VDAC)的输出范围,以匹配实际积累线(MBL)电压摆幅,从而提高在高稀疏度情况下的信号裕度;稀疏跟踪ADC中共享模块的总关断模块可在所有列完成比较后立即产生ADC关断信号(finish_all)关闭所有ADC,从而大幅加快量化速度并节省大量功耗;且每个存算单元均连接一个稀疏跟踪ADC,可以灵活实现多比特位重构。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

Claims (10)

1.一种基于稀疏跟踪ADC的电荷域存内计算电路,其特征在于,包括:由局部输入控制单元组成的局部输入控制模块、由稀疏配置的局部字线驱动单元组成的稀疏配置的局部字线驱动模块、具有共享计数的稀疏跟踪ADC模块、读写端口、时序控制、存算控制、数字加法器树和移位器模块以及64个在行上重复排列的存算单元;
每个存算单元由64个在列上重复排列的存算子单元构成,每一个存算子单元包括4个6T-SRAM存储单元、1个局部跳选计算单元;SRAM存储单元用于存储计算时需要的权重数据;
每个存算单元后接一个稀疏跟踪ADC模块以量化每列的计算结果,即64个在列上重复排列的存算子单元共用一个稀疏跟踪ADC模块;4列对应4个稀疏跟踪ADC模块的输出结果经过所述数字加法器树和移位器模块完成一次运算;外部输入的特征数据经所述稀疏配置的局部字线驱动单元处理后,输入到存算单元的局部跳选计算单元中与权重数据进行乘操作并将电压积累到电容中,多个列向的局部跳选计算单元中的电容并联通过电荷分享实现累加,再通过所述稀疏跟踪ADC模块量化获得输出结果,所述数字加法器树和移位器模块对4个所述稀疏跟踪ADC模块的输出进行移位相加,组合输出多位计算结果。
2.根据权利要求1所述的基于稀疏跟踪ADC的电荷域存内计算电路,其特征在于,所述存算子单元包括4个6T-SRAM存储单元、局部位线(LBL)、互补局部位线(LBLB)、字线(WL)、横向字线(HWL)、全局位线(GBL)、互补全局位线(GBLB),第三NMOS管(N3)和第四NMOS管(N4);所述6T-SRAM存储单元的权重存储节点均与局部位线(LBL)相连,所述6T-SRAM存储单元的互补权重存储节点与互补局部位线(LBLB)相连;其中,第三NMOS管(N3)漏极连接局部位线(LBL),源极连接全局位线(GBL),栅极连接横向字线(HWL);第四NMOS管(N4)漏极连接互补局部位线(LBLB),源极连接互补全局位线(GBLB),栅极连接横向字线(HWL);64个在列上重复排列的存算子单元共用同一条全局位线(GBL)和互补全局位线(GBLB);64个在行上重复排列的存算单元中的每一行上的6T-SRAM存储单元共用一条字线(WL)。
3.根据权利要求1所述的基于稀疏跟踪ADC的电荷域存内计算电路,其特征在于,所述局部跳选计算单元(LJCC)包括输入信号线(VIN),跳选信号线(JUMP),互补跳选信号线(JUMPB),局部位线(LBL),互补局部位线(LBLB),第五NMOS管(N5),第一传输门(S1),第二传输门(S2),电容(C)和积累线(MBL);第一传输门(S1)的输入端连接输入信号线(VIN),第一传输门(S1)的输出端连接第五NMOS管(N5)的漏极和电容(C)的上极板,第一传输门(S1)的控制端连接局部位线(LBL)信号线,第一传输门(S1)的互补控制端连接互补局部位线(LBLB)信号线;第五NMOS管(N5)的源极连接公共端(VSS),第五NMOS管(N5)的漏极连接第一传输门(S1)的输出端和电容(C)的上极板,第五NMOS管(N5)栅极连接互补局部位线(LBLB)信号线;电容(C)的上极板连接第一传输门(S1)的输出端和第五NMOS管(N5)的漏极,下极板连接第二传输门(S2)的输入端;第二传输门S2的输入端连接电容(C)的下极板,第二传输门(S2)的输出端连接积累线(MBL),第二传输门(S2)的控制端连接跳选信号线(JUMP)信号线,第二传输门(S2)的互补控制端连接互补跳选信号线(JUMPB)。
4.根据权利要求1所述的基于稀疏跟踪ADC的电荷域存内计算电路,其特征在于,所述局部输入控制单元由一个2-4译码器和传输门S3、传输门S4、传输门S5、传输门S6组成,2-4译码器的输入为2比特二进制数字信号,传输门S3、传输门S4、传输门S5、传输门S6的输入端分别为VDIN0、VDIN1、VDIN2、VDIN3四个不同的外界输入电压,译码器的输出及其反信号接到传输门的控制端上,当译码器输入为00时,传输门S3打开,传输门S4、传输门S5、传输门S6关闭;当译码器输入为01时,传输门S4打开,传输门S3、传输门S5、传输门S6关闭;当译码器输入为10时,传输门S5打开,传输门S3、传输门S4、传输门S6关闭,当译码器输入为11时,传输门S6打开,传输门S3、传输门S4、传输门S5关闭,由此将2比特输入数字信号转化为相对应的模拟电压信号VDIN输入,后连接到局部跳选计算单元(LJCC)的输入信号线(VIN)。
5.根据权利要求1所述的基于稀疏跟踪ADC的电荷域存内计算电路,其特征在于,所述稀疏配置的局部字线驱动单元根据输入特征的稀疏性决定打开局部跳选计算单元的个数,当输入特征值为1时,驱动对应的字线同时产生相应的跳选信号和互补跳选信号,相对应存算单元参与计算;当输入特征值为0时,不驱动字线,关闭相对应的存算单元。
6.根据权利要求1所述的基于稀疏跟踪ADC的电荷域存内计算电路,其特征在于,所述稀疏跟踪ADC模块包括共享模块和复用模块;共享模块包括用于稀疏跟踪补偿单元、参考电压发生器、共享计数器和计算完成后的总关断模块,64个复用模块共用1个共享模块;其中,稀疏跟踪补偿单元由4个电容组成,将根据输入特征匹配不同的总电容,确定信号线(VDAC)的输出范围,以匹配实际积累线(MBL)电压摆幅;参考电压发生器根据计数器计数大小产生参考电压;复用模块包括比较器、脉冲产生电路、锁存模块、列关断模块,每个存算单元对应一个复用模块,共64个复用模块;其中,首先利用比较器进行共享模块输出的参考电压和积累线(MBL)电压的比较,在参考电压大于积累线(MBL)的电压时,产生脉冲信号,将当前的计数器数值锁存作为稀疏跟踪ADC模块的输出结果;同时脉冲信号输入到列关断模块,产生列完成信号(column_finish),当所有列完成比较后,共享模块中的总关断模块产生ADC关断信号(finish_all)关闭所有稀疏跟踪ADC模块,稀疏跟踪ADC模块得到一个5比特数据输出(ADC_OUTn),表征为同一列上乘法结果累加的量化结果。
7.根据权利要求1所述的基于稀疏跟踪ADC的电荷域存内计算电路,其特征在于,所述数字加法器和移位器模块将每个存算单元的4个5比特的稀疏跟踪ADC输出结果(ADC_OUTn)进行移位相加,移位相加过程本质为有符号数的乘法运算,计算结果要进行相应的符号位扩展操作,具体扩展方法取决于被乘数与乘数是否为有符号数,所述数字加法器和移位器模块对稀疏跟踪ADC输出结果进行1bit无符号数与4bit有符号数的乘法运算,相对应的符号位扩展操作为将最后一个加数补最高位再连同最高位取反后加一,最终得到一个9比特数据输出计算结果(QOUTn[8:0]),表征为64通道的2比特输入与4比特权重乘法相加的结果,存内计算电路共64个存算单元,每次得到16个9比特输出结果。
8.根据权利要求1所述的基于稀疏跟踪ADC的电荷域存内计算电路,其特征在于,多个在行上重复排列的局部跳选计算单元对应1个局部输入控制单元和1个稀疏配置的局部字线驱动模块;64个在列上重复排列的局部跳选计算单元的输出连接在同一条积累线(MBL)上;局部跳选计算单元与稀疏跟踪ADC的连接关系为:局部跳选计算单元的积累线(MBL)连接到稀疏跟踪ADC的输入端,进行模数转换量化为5比特的计算结果;稀疏跟踪ADC与数字加法器和移位器模块的连接关系为,4个稀疏跟踪ADC对应的4个5比特的计算结果连接至1个数字加法器和移位器模块的输入端,得到1个9比特输出数据(QOUTn[8:0]);或配置为两个周期完成13比特输出数据的运算,第一个周期输出多个9比特数据,第二个周期将每两个9比特数据的移位相加处理得到一个13比特的输出数据QOUT[12:0]。
9.一种基于稀疏跟踪ADC的电荷域存内计算电路的计算方法,其特征在于,包括以下步骤:
当存算单元的计算周期开始时,首先将横向字线(HWL)置于低电平,同时根据稀疏配置的局部字线驱动模块打开相应的字线(WL)同时产生相应的跳选信号(JUMP)和互补跳选信号(JUMPB);
当稀疏配置的局部字线驱动模块未选中存算单元时,该存算单元不进行工作,不参与计算过程;
当稀疏配置的局部字线模块选中存算单元时,存储在6T-SRAM存储单元中的数据被读取到局部位线(LBL)和互补局部位线(LBLB)上,当SRAM中存储的值为0时,互补局部位线(LBLB)信号线为1,局部跳选计算单元中的第五NMOS管(N5)被打开,电容上极板接地,当SRAM中的存储值为1时,互补局部位线(LBLB)信号为0,局部跳选计算单元中的第五NMOS管(N5)被关断,局部位线(LBL)信号为1,打开局部跳选计算单元的第一传输门(S1)使相应的VIN电压传输到电容上极板,跳选信号(JUMP)和互补跳选信号(JUMPB)打开传输门使相应多个局部跳选计算单元的电容下极板相连,共同参与电容耦合与电荷分享的计算过程,多个存算单元乘加产生的模拟电压通过稀疏跟踪ADC量化后产生5位结果,整个存算电路通过数字加法器树和移位器模块实现4个稀疏跟踪ADC量化结果的移位相加获得最终结果。
10.根据权利要求9所述的基于稀疏跟踪ADC的电荷域存内计算电路的计算方法,其特征在于,所述存内计算电路的每个局部跳选计算单元计算1比特权重乘2比特输入信号,每个存算单元对应1个局部输入控制单元;每列存算阵列连接一个稀疏跟踪ADC量化获得5比特二进制结果;整个存算电路输出信号为数字加法器树和移位器模块的QOUT<n>的二进制结果。
CN202311322983.6A 2023-10-12 2023-10-12 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法 Pending CN117130978A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311322983.6A CN117130978A (zh) 2023-10-12 2023-10-12 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311322983.6A CN117130978A (zh) 2023-10-12 2023-10-12 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法

Publications (1)

Publication Number Publication Date
CN117130978A true CN117130978A (zh) 2023-11-28

Family

ID=88860265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311322983.6A Pending CN117130978A (zh) 2023-10-12 2023-10-12 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法

Country Status (1)

Country Link
CN (1) CN117130978A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117910424A (zh) * 2024-03-20 2024-04-19 安徽大学 时域存算单元、时域量化单元、及时域存内计算结构

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117910424A (zh) * 2024-03-20 2024-04-19 安徽大学 时域存算单元、时域量化单元、及时域存内计算结构
CN117910424B (zh) * 2024-03-20 2024-05-28 安徽大学 时域存算单元、时域量化单元、及时域存内计算结构

Similar Documents

Publication Publication Date Title
US11948659B2 (en) Sub-cell, mac array and bit-width reconfigurable mixed-signal in-memory computing module
US20230259456A1 (en) Configurable in memory computing engine, platform, bit cells and layouts therefore
CN111816234B (zh) 一种基于sram位线同或的电压累加存内计算电路
CN111816232B (zh) 一种基于4管存储结构的存内计算阵列装置
KR102207909B1 (ko) 비트라인의 전하 공유에 기반하는 cim 장치 및 그 동작 방법
CN114546335B (zh) 一种多比特输入与多比特权重乘累加的存内计算装置
US11100979B1 (en) Low-power SRAM memory cell and application structure thereof
CN115048075A (zh) 基于电容耦合的sram存算一体芯片
CN117130978A (zh) 基于稀疏跟踪adc的电荷域存内计算电路及其计算方法
CN110941185B (zh) 一种用于二值神经网络的双字线6tsram单元电路
CN112116937B (zh) 一种在存储器中实现乘法和或逻辑运算的sram电路结构
CN113364462B (zh) 模拟存算一体多比特精度实现结构
CN117271436B (zh) 基于sram的电流镜互补存内计算宏电路、及芯片
CN116092553A (zh) 一种兼具乘加功能的存储器
Lee et al. A charge-sharing based 8t sram in-memory computing for edge dnn acceleration
CN113936717B (zh) 一种复用权重的存算一体电路
CN115080501A (zh) 基于局部电容电荷共享的sram存算一体芯片
Zhang et al. In-memory multibit multiplication based on bitline shifting
CN114038492A (zh) 一种多相采样存内计算电路
Kim et al. A charge-domain 10T SRAM based in-memory-computing macro for low energy and highly accurate DNN inference
CN116594587A (zh) 一种基于动态逻辑乘法的单比特全数字存内计算单元
CN116312670A (zh) 一种9t1c存算电路、乘累加运算电路、存内运算电路、芯片
CN116204490A (zh) 一种基于低电压技术的7t存算电路、乘累加运算电路
CN116543808A (zh) 一种基于sram单元的全数字域存内近似计算电路
Li et al. A 65nm 110GOPS 8T-SRAM Computing-in-Memory Macro with Single Cycle Serial Input Mechanism

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