CN111431536A - 子单元、mac阵列、位宽可重构的模数混合存内计算模组 - Google Patents

子单元、mac阵列、位宽可重构的模数混合存内计算模组 Download PDF

Info

Publication number
CN111431536A
CN111431536A CN202010418649.0A CN202010418649A CN111431536A CN 111431536 A CN111431536 A CN 111431536A CN 202010418649 A CN202010418649 A CN 202010418649A CN 111431536 A CN111431536 A CN 111431536A
Authority
CN
China
Prior art keywords
capacitor
mac
calculation
differential
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.)
Granted
Application number
CN202010418649.0A
Other languages
English (en)
Other versions
CN111431536B (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.)
Shenzhen Jiutian Ruixin Technology Co ltd
Original Assignee
Shenzhen Jiutian Ruixin Technology Co ltd
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 Shenzhen Jiutian Ruixin Technology Co ltd filed Critical Shenzhen Jiutian Ruixin Technology Co ltd
Priority to CN202010418649.0A priority Critical patent/CN111431536B/zh
Publication of CN111431536A publication Critical patent/CN111431536A/zh
Priority to US17/762,447 priority patent/US11948659B2/en
Priority to PCT/CN2021/084022 priority patent/WO2021232949A1/zh
Priority to EP21808967.0A priority patent/EP3989445A4/en
Application granted granted Critical
Publication of CN111431536B publication Critical patent/CN111431536B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/34Analogue value compared with reference values
    • H03M1/38Analogue value compared with reference values sequentially only, e.g. successive approximation type
    • H03M1/46Analogue value compared with reference values sequentially only, e.g. successive approximation type with digital/analogue converter for supplying reference values to converter
    • H03M1/466Analogue value compared with reference values sequentially only, e.g. successive approximation type with digital/analogue converter for supplying reference values to converter using switched capacitors
    • H03M1/468Analogue value compared with reference values sequentially only, e.g. successive approximation type with digital/analogue converter for supplying reference values to converter using switched capacitors in which the input S/H circuit is merged with the feedback DAC array
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1069I/O lines read out arrangements
    • 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/04Architecture, e.g. interconnection topology
    • 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
    • G06N3/065Analogue means
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/16Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters 
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M1/00Analogue/digital conversion; Digital/analogue conversion
    • H03M1/12Analogue/digital converters
    • H03M1/34Analogue value compared with reference values
    • H03M1/38Analogue value compared with reference values sequentially only, e.g. successive approximation type
    • H03M1/46Analogue value compared with reference values sequentially only, e.g. successive approximation type with digital/analogue converter for supplying reference values to converter
    • H03M1/462Details of the control circuitry, e.g. of the successive approximation register
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)
  • Analogue/Digital Conversion (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本发明涉及一种模数混合存内计算的子单元,用于1位乘法计算,仅需要9个晶体管,在此基础上,提出多个子单元共用计算电容器、晶体管以组成1个计算单元,使得平均下来子单元的晶体管数量逼近8个,进而提出一种MAC阵列,用于乘加计算,包含多个计算单元,每个单元内的子单元以时分复用的方式被激活。进一步地,提出MAC阵列的差分体系,提高计算的容错能力。进一步地,提出一种用于内存内模数混合运算模组,对MAC阵列的并行模拟输出数字化并进行其它数字域的运算。所述运算模组中的模数转换模块充分利用MAC阵列的电容器,既能减少运算模组的面积,又能降低运算误差。进一步地,提出一种充分利用数据稀疏性来节省模数转换模块能耗的方法。

Description

子单元、MAC阵列、位宽可重构的模数混合存内计算模组
技术领域
本发明涉及一种模数混合存内计算领域,并且更具体地,涉及一种子单元、MAC阵列、位宽可重构的模数混合存内计算模组。
背景技术
目前,现有移动和物联网之类的新兴边缘应用要求高能效和高单位面积的运算速率。高能效意味着更长的电池寿命,而高单位面积的运算速率意味着在指定的运算速率下减小面积,进而降低成本。如今,深度神经网络(Deep Neural Network,DNN)中的前馈推理计算以乘法累加(Multiply-And-Accumulate,MAC)计算为主导,需要MAC计算的高能效和低面积的实现,同时减少待处理数据的搬运量。传统数字集成电路实现MAC有抗噪声能力强、精度高、扩展性好、设计方法成熟等优点,但是数字电路占用的芯片面积大、功耗大,难以实现高能效的大规模神经网络。并且传统数字电路采用的冯诺依曼结构带来的存储器和中央运算单元之间的数据交换瓶颈在DNN应用中的大规模数据搬运下会严重限制运算能效和运算速度。模拟电路实现MAC具有结构简单、功耗较低的优点,所以模拟和模数混合信号计算具有实现高能效的潜力。而为了打破冯诺依曼架构的瓶颈,近年来成为研究热点的存内计算从本质上无法以纯数字电路的形式实现,需要模拟电路的辅助。同时由于DNN对包括电路噪声造成的计算错误的承受能力较高,DNN专用集成电路(ASIC)正重新引起关注。
论文“A mixed-signal binarized convolutional-neural-networkaccelerator integrating dense weight storage and multiplication for reduceddata movement”,DOI:10.1109/VLSIC.2018.8502421(以下称“论文1”)和论文“AMicroprocessor implemented in 65nm CMOS with configurable and bit-scalableaccelerator for programmable in-memory computing”,arXiv:1811.04047(以下称“论文2”),阐述1位MAC计算的乘法阶段是等效于1位权重和1位输入进行同或(XNOR)运算,把XNOR运算结果以电压的形式存储到电容器,加法阶段是利用电荷共享,每个电容器的电荷相同但所有电容器的总电荷不变,得出1位MAC计算结果。上述1位MAC计算的每个1位计算单元都有10个晶体管。论文1和论文2的现有技术存在的问题为:(1)对于每个加法操作,将无条件驱动每个计算单元中的传输门,而无法利用输入数据的稀疏性达到节省能耗的目的;(2)每一个进行1位乘法的运算单元配置一个独立电容器,逐次逼近型(SuccessiveApproximation ,SAR)模拟数字转换器(Analog to Digital Converter,ADC)的金属氧化物金属(Metal Oxide Metal ,MOM)电容器位于静态随机存储器(Static Random AccessMemory,SRAM)计算阵列之外,因为该阵列内部没有空间,从而降低了面积效率;(3)利用电荷共享的加法阶段需要连接存储XNOR运算结果的电容器的顶板。这种电路拓扑使加法容易受到非理想效应的影响,例如电荷注入,时钟馈通,传输门晶体管的漏极/源极处的非线性寄生电容,以及连接到电容器顶板的晶体管的漏电等,从而导致计算错误。此外,因为物理版图的不匹配而带来的运算电容器与ADC中的数模转换器里的电容器之间的不匹配也会导致计算错误。
论文“An always-on 3.8μJ/86% CIFAR-10 mixed-signal binary CNNprocessor with all memory on chip in 28nm CMOS”,DOI: 10.1109/ISSCC.2018.8310264 (以下称“论文3”)提出一种仅支持二进制化的权重和激活值的二值神经网络(BNN)的运算模组。论文3中的运算模组的不足为:(1)该架构只支持BNN,无法用于视觉应用的大型DNN模型,例如对象检测等,适用范围小;(2)1位MAC计算的乘法阶段至少需要一个或(OR)门,两个同或(XNOR)门,两个异或(NOR)门和一个锁存器,使用的晶体管数量多,面积占用大。
论文“Conv-RAM: an energy-efficient SRAM with embedded convolutioncomputation for low-power CNN-based machine learning applications”,DOI:10.1109/ISSCC.2018.8310397 (以下称“论文4”)提出一种具有嵌入式卷积计算功能的节能SRAM。论文4中的SRAM的不足有:(1)每个1位计算SRAM单元具有10个晶体管。每个单元中的晶体管数越高,存储密度越小;(2)利用位线上的寄生电容存储电荷,以用于随后的平均操作。与如MOM电容器之类的显式电容器相比,位线寄生电容的建模不充分,并且可能遭受更大的失配,导致较低的计算精度;(3)论文内所使用的水平电荷平均方法需要6个额外的晶体管,这些晶体管在几行单元之间共享,限制了吞吐量,因为并非所有行都可以同时执行计算;(4)差分电荷平均线VpAVG和VnAVG上的共模电压取决于输入数据Xin的大小,在通过局部MAV电路评估平均值后,此共模电压是不稳定的。因此差分结构的高效率高速ADC,例如SARADC并不适用。文章的方案采用了最大占用2N-1(N是ADC分辨率)次步骤进行收敛的基于斜坡的ADC,降低了模数转换的速度,导致了较低的计算吞吐量;(5)阵列的输入使用额外的DAC电路将输入数据Xin(通常是特征图)从数字表示转换为模拟表示,DAC电路的非理想特性会导致更多的精度损失以及面积和能量的开销。
综上所述,在神经网络计算过程中,现有技术中的MAC阵列中进行1位乘法的计算单元使用的晶体管多;存储乘法结果用于累加的电容器与存储单元一一对应,即存储单元的个数与电容器的数量相同,而电容一般会比SRAM单元大很多,特别是在先进工艺制程下,会导致MAC阵列占用面积大;同时存在乘加运算中晶体管的无条件驱动,导致运算能效不高;另外,计算错误率高导致适用场景有限等。
因此,在模数混合存内计算领域,亟需一种面积小、能效高、容错能力好的位宽可重构的模数混合存内计算的运算模组。
发明内容
有鉴于此,本发明提供一种子单元、MAC阵列、位宽可重构的模数混合存内计算模组。为减小计算误差,还提供了差分体系的MAC阵列的实现。为达到上述目的,本发明采用如下技术方案:
第一方面,提供了一种内存内计算子单元,进行1位乘法计算,包括:一个传统6T SRAM单元、一个互补传输门、一个第一N型MOS管、一个计算电容器;
所述传统6T SRAM单元由MOS管M1、M2、M3、M4、M5、M6组成,其中MOS管M1、M2组成的CMOS反相器与MOS管M3、M4组成CMOS反相器交叉耦合,所述交叉耦合的两个CMOS反相器存储1位的过滤器参数,M5、M6为用于所述过滤器参数读写的位线的控制开关;
所述传统6T SRAM单元中M1、M2组成的CMOS反相器输出端连接互补传输门的输入端,互补传输门的输出端连接第一N型MOS管漏极;
所述第一N型MOS管源极接地,漏极连接计算电容器的底板;
所述运算中的子单元的互补传输门的N型MOS管栅极连接输入信号,P型MOS管栅极与所述第一N型MOS管栅极输入信号在运算时电平相同;
所述输入信号与过滤器参数的乘法结果存储为计算电容器底板的电压,多个子单元用于组成一个计算单元,同一所述计算单元内的每一个子单元共用同一所述第一N型MOS管、计算电容器。
在该方案中,过滤器参数/权重w写入并存储在SRAM单元中,输入信号A连接互补传输门的N型MOS管栅极,互补传输门的P型MOS管栅极连接互补信号nA,第一N型MOS管栅极连接信号B。特别地,对于一个计算子单元,互补输入信号nA的电平在计算时与信号B相同。这样的拓扑结构可以避免传输门的无条件驱动,提高能效。例如,当信号B=0,信号nA=0,输入信号A=1,过滤器参数w=1,计算电容器与第一N型MOS管连接的支路不通,互补传输门与计算电容器连接的支路导通,过滤器参数w与输入信号A的乘法结果存储为计算电容器底板电压Vbtm。那么,完成一位乘法(过滤器参数w与输入信号A)的子单元只需要9个晶体管,减小了单元的面积,传输门避免了连接到进行电荷累加的电容器的顶板,这样可以以最小化计算误差,特别是由于MOS管用作开关时的时钟馈通、由导通转向关断时的电荷注入、在传输门晶体管的漏/源处的非线性寄生电容、以及晶体管的漏电引起的误差。
在一些实施方式中,多个所述子单元组成一个计算单元,同一所述计算单元内的每一个子单元共用同一所述第一N型MOS管、计算电容器,子单元以2×2、4×2等可行的方式排列。直观地,该方案减少了第一N型MOS管的数量以及计算电容器的数量,以2×2的子单元组成的计算单元为例,减少了3个第一N型MOS管以及3个计算电容器。
特别地,越多的子单元共用所述第一N型MOS管与计算电容器,此时需要的器件数量及面积均摊到每一个子单元上,每个子单元需要的晶体管数量越逼近于8个,需要的电容器的面积也被均分。
结合第一方面,在一些实施方式中,计算单元内的子单元以时分复用的方式被激活,例如一个子单元被激活时,同一个计算单元内的其他子单元被停用。在一个子单元参与完成计算后,同一计算单元包含的其他子单元内的SRAM单元存储的过滤器参数可以立即用于内存内运算,不需要再从外部移动数据储存到SRAM内后再进行计算,这极大地提高了计算速度,提高吞吐量并且减少能量损耗以及面积消耗。
第二方面,提供了一种包括第一方面及第一方面可能的实施方式的MAC阵列,进行乘加运算,包括:多个计算单元,同一列的所有计算单元内的计算电容器顶板连接同一累加总线。
该方案中,相对于独立的子单元组成的MAC阵列,采用所述共用电容器及晶体管的模式的计算单元,MAC阵列可以存储更多的神经网络参数或者用于下一层网络的激活值,具体地,计算单元内完成1位乘法的计算并将计算结果存储在计算电容器中,处于MAC阵列中的同一列计算单元通过计算电容器顶板连接的同一条总线将各自的1位乘法结果累加,每一累加总线的电压对应MAC阵列中每一列乘法计算的累加和。
另外,由于一个电容占用的面积一般是一个6T SRAM单元占用面积的数倍,采用所述器件共享的方式,即多个用于1位乘法的子单元共用一个晶体管和计算电容器进行计算、存储,相对其他的1个子单元用于1位乘法需要连接一个电容器存储乘法计算的结果的设计,可以极大地提高单位面积的存储容量。对于内存内计算,减少内外部数据的移动是减少能量消耗的最主要方式之一。方案中,单位面积MAC阵列包括更多的SRAM单元,可以一次性存储更多的神经网络过滤器参数以减少数据移动。
结合第二方面,在一些实施方式中,MAC阵列还包括差分互补传输门、差分计算电容器和第一P型MOS管;所述MAC阵列的每一计算单元内,每个传统6T SRAM单元中M3、M4组成的CMOS反相器的输出端分别连接一个差分互补传输门的输入端,所有M3、M4组成的CMOS反相器所连接的差分互补传输门的输出端连接同一第一P型MOS管漏极;所述第一P型MOS管漏极连接差分计算电容器的底板,源极接VDD;差分乘法结果存储为差分计算电容器底板的电压,同一列每一差分单元的差分计算电容器的顶板连接同一差分累加总线。
结合第二方面,在另一些实施方式中,MAC阵列还包括第一CMOS反相器和差分计算电容器;组成MAC阵列的每一个计算单元内所有互补传输门的输出端连接同一第一CMOS反相器的输入端,第一CMOS反相器的输出端连接一个差分计算电容器底板,差分乘法结果存储为差分计算电容器底板的电压,同一列的所有差分计算电容器顶板连接同一差分累加总线。
第三方面,提出了一种位宽可重构的模数混合内存内计算的运算模组,包括:
第二方面及第二方面可能实施方式的MAC阵列,阵列中列向累积的乘法结果表示为模拟电压;
filter/ifmap模块,提供被写入并存储在MAC阵列中的过滤器参数或上一层计算完成的激活值;ifmap/filter模块,提供MAC阵列的输入,与所述的神经网络的过滤器参数或者上一层计算完成的激活值进行乘法计算;模数转换模块,将所述MAC阵列计算后得到的模拟电压转换为数字表示;数字处理模块,对模数转换模块的输出至少进行多位融合、偏置、缩放或非线性等操作,输出结果为部分和或者为能直接用于下一层网络输入的激活值。
该方案中,所述过滤器参数或者神经网络上一层计算完的激活值通过filter/ifmap模块写入并存储在MAC阵列中,此过程按照标准的传统6T SRAM写入过程操作,使子单元中的SRAM存储逻辑1或0,并与ifmap/filter块提供的输入进行乘加运算。此过程,每个子单元内的存储值与输入的乘法运算属于数字运算,等效于AND,乘法运算的结果存储在计算电容器中,加法阶段,由于同一列的所有计算电容器的顶板通过累加总线连接在一起,不同计算电容器中存储的电荷通过累加总线进行共享,列向累积的乘法结果存储为模拟电压。随后,模拟结果通过模数转换模块转换为数字表示,最后对该数字表示进行处理,输出结果为部分和或者为能用于下一层网络输入的激活值。在神经网络计算过程中,MAC耗费大量能耗。该方案中,MAC采用模数混合运算,可以极大降低能耗,同时MAC阵列的低面积实现可以提高能效以及计算速度。针对整个神经网络计算的不同阶段采用不同的运算方式的结合,极大地利用了模拟和数字电路的不同优点,保证了计算过程的低功耗、高能效、高速度、高精度的实现。
结合第三方面,在一种可能的实施方式中,模数转换模块采用SAR ADC,具体为二进制加权电容阵列的SAR ADC。
结合第三方面和第一种可能的实施方式,在第二种实施方式中,MAC阵列的输入数值以及存储数值的稀疏性可以使SAR DAC中的部分电容器的开关序列免于切换,从而获得更高的能效和ADC转换速度。换一种方式说,MAC阵列中每一列SAR ADC的位宽可以实时地由输入数值以及存储数值的稀疏性来决定。
结合第三方面或第三方面的第一种或第二种可能的实施方式,在第三种可能的实施方式中,MAC DAC和SAR DAC可以连接在一起,应当理解,所述MAC DAC指的是MAC阵列中的一列计算电容器,即所有MAC阵列中的电容器与SAR DAC中的电容器并联。
结合第三方面或第三方面的第一种或第二种或第三种实施方式中,在第四种可能的实施方式中,允许MAC DAC通过底板采样复用为SAR DAC,从而使用相同的电容阵列实现MAC操作以及模数转换,避免在MAC操作环节的MAC DAC和模数转换阶段的SAR DAC中使用不同电容阵列导致的失配以及精度损失,进一步地,并且允许全差分SAR ADC的实现,更好地解决共模相关的比较器的输入失调电压偏移的问题。
附图说明
图1为本发明一实施例中用于1位乘运算的子单元结构的示意图;
图2为本发明一实施例中1位乘子单元真值表的示意图;
图3a为本发明一实施例中计算单元中子单元排列示意图;
图3b为本发明一实施例中多个子单元组成的计算单元的示意图;
图3c为本发明一实施例中计算单元运行时的真值表;
图4a为本发明一实施例中MAC阵列示意图;
图4b为本发明一实施例中计算电容器底、顶板电压示意图;
图5a为本发明一实施例中10T结构示意图;
图5b为本发明一实施例计算单元拓展示意图;
图6a为本发明一实施例中8T结构示意图;
图6b为本发明另一实施例中计算单元拓展示意图;
图6c为本发明一实施例中差分体系下的MAC阵列结构示意图;
图7为本发明一实施例中存内计算模组示意图;
图8为本发明一实施例中模数转换模块示意图;
图9为本发明另一实施例中模数转换模块示意图;
图10为本发明另一实施例中模数转换模块示意图;
图11为本发明另一实施例中模数转换模块示意图;
图12为本发明另一实施例中模数转换模块差分结构示意图;
图13为本发明一实施例中减少模数转换的能量消耗的架构示意图。
具体实施方式
为了使发明的目的、原理、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,正如本发明内容部分所述,此处所描述的具体实施例用以解释本发明,并不用于限定本发明。
需要特别说明的是,根据说明书的文字或者技术内容可以确定的连接或位置关系,为了图画的简洁进行了部分的省略或者没有画出全部的位置变化图,本说明书未明确说明省略的或者没有画出的位置变化图,不能认为没有说明,为了阐述的简洁,在具体阐述时不再一一进行说明,在此统一说明。
作为一种常见的应用场景,本发明实施例所提供的的位宽可重构的模数混合计算模组可以应用在视觉、声学DNN架构中,更具体地,用于实现对象检测、低功耗的声学特征提取等。
以特征提取为例,将待处理数据与特征提取器中的由权重构成的过滤器进行卷积运算后,输出相应的特征图。过滤器选取不同,提取的特征也会不同。此过程中,待处理数据与过滤器的卷积运算需要的能耗最高,需要避免电路无条件驱动等情形造成的能耗,特别是待处理数据为稀疏矩阵时。
图1为用于1位乘运算的子单元结构一实施例示意图,进行1位乘法计算,包括:一个传统6T SRAM单元、一个互补传输门、一个第一N型MOS管、一个计算电容器;所述传统6TSRAM单元由MOS管M1、M2、M3、M4、M5、M6组成,其中MOS管M1、M2组成的CMOS反相器与MOS管M3、M4组成CMOS反相器交叉耦合,所述交叉耦合的两个CMOS反相器存储1位的过滤器参数,M5、M6为用于所述过滤器参数读写的位线的控制开关;
所述传统6T SRAM单元中M1、M2组成的CMOS反相器输出端连接互补传输门的输入端,互补传输门的输出端连接第一N型MOS管漏极;
所述第一N型MOS管源极接地,漏极连接计算电容器的底板;
所述运算中的子单元的互补传输门的N型MOS管栅极连接输入信号,P型MOS管栅极与所述第一N型MOS管栅极输入信号在运算时电平相同;
所述输入信号与过滤器参数的乘法结果存储为计算电容器底板的电压,多个计算子单元用于组成一个计算单元,所述同一计算单元内的每一个子单元共用同一所述第一N型MOS管、计算电容器。
互补传输门的N端和P端栅极的输入信号分别为A和nA,第一N型MOS管的栅极信号B,特别地,如图1,对于一个子单元,信号B和nA相同,在一些可能的实施方式中,可以采用信号nA与信号B共用节点从而提供相同的电平。传统6T SRAM存储被写入的过滤器参数W,写入过程按照标准的6T SRAM单元的写入,即字线WL置VDD,位线BL 、nBL根据被写入的值为0或1。以写入“0”为例,字线WL置高电平VDD,M5和M6均导通,位线BL置0,nBL置VDD,W处电压透过M6下降,为逻辑0;nW处电压透过M5上升,为逻辑1。
可选的,子单元进行一位乘法计算的过程如下:
1.计算电容器的顶板电压Vtop通过累加总线上的复位开关Srst复位到Vrst
2.将子单元中第一N型MOS管的栅极信号B提升到VDD,导通第一N型MOS管,将电容器的底板电压Vbtm重置为0,将子单元中的传输门的输入信号A和nA分别保持在0和VDD。Vbtm重置为0后,Srst断开连接;
3.计算过程中,激活输入信号A和nA,激活子单元时1位乘法运算的真值表如图2所示;
4.子单元乘法运算完成后,计算电容器的底板电压Vbtm要么保持在0,要么进入VDD,乘法运算的输出结果为计算电容器底板的电压表示为VDD×W×A。
可以理解,对于一个子单元,所述完成一位乘法(过滤器参数W与输入信号A)的结构只需要9个晶体管,减小了子单元的面积,提高能效。应当理解,所述子单元中第一N型MOS管起控制作用,输入信号A与SRAM单元内存储的过滤器参数W的1位乘法计算结果存储为计算电容器底板的电压。为方便描述,所述SRAM单元与互补传输门连接的结构包含8个晶体管,称为8T结构(8T sub-cell,8个晶体管)。另外,所述计算子单元是对标准的传统6T SRAM单元外部拓展,一方面在实际应用中,标准化的结构实施具备更好的经济效益,另一方面提高了子单元的可拓展性,且传输门连接在计算电容器的底板相对于现有技术中采用连接在计算电容器的顶板的方式,能够最小化计算误差,特别是由于MOS管用作开关时的时钟馈通,由导通转向关断时的电荷注入,在传输门晶体管的漏/源处的非线性寄生电容,以及晶体管本身的漏电等等引起的误差。
为了进一步减少子单元的器件,在一些实施例中,多个所述子单元用于组成一个计算单元,子单元以2×2、4×2等可行的方式排列,排列方式参考图3a。如图3b所示,同一个计算单元内的每个子单元保留各自所述的8T结构(8T sub-cell,8个晶体管),所有子单元共用同一所述第一N型MOS管、计算电容器。具体地,同个计算单元内的每个子单元的互补传输门输出端连接同一个第一N型MOS管的漏极,第一N型MOS管的漏极连接一个计算电容器的底板,可以理解,一个计算单元内只有一个第一N型MOS管、一个计算电容器,多个子单元共用一个计算电容器以及第一N型MOS管进行1位乘法的计算。直观地,该方案减少了第一N型MOS管的数量以及计算电容器的数量,以2×2的子单元组成的计算单元为例,减少了3个第一N型MOS管以及3个计算电容器。应当理解,越多的子单元共用所述第一N型MOS管与电容器,分摊下来每个子单元的晶体管数量就会越接近8个。
另外,由于单个电容占用的面积一般是整个6T SRAM占用面积的数倍,差距悬殊,采用所述子单元共用器件的方式,即多个用于1位乘法的子单元共用一个电容器存储计算结果相对其他的独立的1个子单元用于1位乘法需要连接一个电容器存储乘法计算结果的方式,可以极大的提高单位面积的存储容量,即相同面积内可以一次性存储较现有技术更多的过滤器参数或权重。
进一步地,计算单元内的子单元以时分复用的方式被激活,即一个子单元被激活时,同一个计算单元内的其他子单元被停用。子单元被激活后按照上述执行一位乘法的运算,单元内计算的真值表参考图3c,具体地,在一些实施例中,子单元互补传输门N型MOS管栅极和P型MOS管栅极的信号分别为Aij和nAij,其中i为单元列的索引,且为0~(n-1)的非负整数,j为单元内子单元的索引,在2×2的单元内,j=a,b,c,d。可以理解,所述子单元共用一个计算电容器以及一个第一N型MOS管,指的是一个计算单元内包含了多个能用于乘加运算的子单元,应当注意,不同于单个独立的子单元,当多个子单元组成一个计算单元时,所述第一N型MOS管栅极的输入信号Bi与每个子单元的互补传输门的P端栅极的互补输入信号nAij是分别控制的,在时分复用下,虽然某时刻处于工作状态的子单元内的互补输入信号nAij与信号Bi电平相同,但是不再适用二者共用节点的情形。应当理解,所述子单元共用一个计算电容器以及一个第一N型MOS管,指的是一个计算单元内包含了多个能用于乘加运算的子单元,相对于相同数量且独立的子单元来说,子单元组合成的计算单元内需要的计算电容器以及第一N型MOS管的数量分别减少n-1个,计算单元内完成1位乘法的子单元结构逼近8个晶体管。一般地,由于制作工艺的区别,计算电容器的占用的面积是SRAM单元的数倍,减少单位面积中电容器的数量,可以提高计算单元组成的阵列模组的存储容量。
应当理解,所述的子单元内部如果采用非传统6T SRAM的结构,但是起到同样存入和读出1位过滤器参数的功能时,同样适用所述的共用器件模式。
第二方面,提供了一种包括第一方面及第一方面可能实施方式的子单元的MAC阵列,进行乘加运算,参见图4a,MAC阵列包括多个计算单元,同一列的所有计算单元内的计算电容器顶板连接同一累加总线。
该方案中,相对于独立的子单元组成的MAC阵列,所述采用共用电容器及晶体管的模式的计算单元,MAC阵列可以存储更多的神经网络参数或者上一层网络计算完成的值,具体地,计算单元内的完成1位乘法的计算并将计算结果存储在计算电容器中,处于MAC阵列中的同一列计算单元通过计算电容器顶板连接的同一条累加总线将各自的1位乘法结果累加。
另外,对于内存内计算,减少内外部数据的移动是减少能量消耗的直接方式。可以理解,方案中,单位面积MAC阵列包括更多的SRAM单元,可以一次性存储较现有技术更多的过滤器参数,在一个子单元计算完成后,同一单元其他子单元内存储的过滤器参数可以立即用于内存内运算,不需要再从外部移动数据储存到SRAM内后再进行计算,这能提高吞吐量并且减少能量损耗以及面积消耗。一般地,计算电容器占用的面积是传统6T SRAM单元的数倍,减少计算单元中电容的数量,可以提高模组的吞吐量以及降低能耗。
参见图4b所示,特别地,同一列的所有计算电容器的顶板通过累加总线连接在一起,累加总线电压为Vtop,需要明确的是,多个计算单元按列分布,1个计算单元对应1个计算电容器,1个计算单元中包含多个第一方面或者第一方面实施例所述的子单元。
在一些实施例中,MAC阵列以下列“方式一”执行乘加运算:
1.过滤器参数(或上一层网络计算完成的激活值)首先按照6T SRAM写入过程写入单元,并被存储在子单元中;
2.计算电容器的顶板电压Vtop通过累加总线上的复位开关Srst复位到Vrst,Vrst可以为0;
3.将每个计算单元中的信号Bi提升到VDD,计算电容器的底板电压Vbtmi重置为0,每个计算单元中的信号Aij和nAij分别保持在0和VDD。Srst断开连接;
4.在计算过程中,信号Aij和nAij以时间复用的方式被激活,例如,当A0a和nA0a被激活时,A0j和nA0j (j=b, c, d)被停用,即分别保持在0和VDD。值得注意,在计算过程中,一个计算单元的B0与该时刻被激活的子单元内的nA0j是一样的电平。
5.在一列中的每个计算单元的相乘完成后,计算电容器的底板电压Vbtmi要么保持在0,要么进入VDD。电荷在一列计算电容器中重新分布,类似于SAR DAC的电容器中的电荷重新分布。如果不考虑寄生电容等非理想性,则一列计算电容器的模拟输出电压Vtop表示如下式的累加结果,如图4b。
Figure 147717DEST_PATH_IMAGE002
在其他实施例中,MAC阵列可以按照下面的“方式二”进行运算:
1.过滤器参数(或上一层网络计算完成的激活值)写入各个子单元;
2.计算电容器的顶板电压Vtop通过累加总线上的复位开关Srst复位到Vrst。Srst保持Vtop和Vrst之间的连接。
3.将每个计算单元中的信号Bi提升到VDD,将计算电容器的底板电压Vbtmi重置为0,将每个计算单元中的信号Aij和nAij分别保持在0和VDD;
4.在计算过程中,同理,信号Aij和nAij以时间复用的方式被激活。
5.在一列中的每个计算单元的相乘完成后,每个计算电容器的底板电压Vbtmi要么保持在0,要么进入VDD。然后断开Srst,将底板电压Vbtmi设置为0或VDD,每个计算单元的控制模块里的MOS开关运行逐次逼近算法进行模数转换。以Vbtmi均被置为0为例,电压Vtop可表示为:
Figure 753273DEST_PATH_IMAGE004
特别地,所述的MAC阵列可用于多位权重的计算。每一列的计算单元执行逐位的MAC操作,通过把模数转换后的数字表示进行移位相加的操作得到多位权重的输出结果,举例而言,对于一个k位的权重或过滤器参数,每一列执行逐位的MAC,可以是第一列执行最低位,即第0位的值与输入信号的MAC,第k列执行最高位,即第k位的值与输入信号的MAC。可以理解,相当于每一列单独对一个多位的二进制权重的一位进行MAC,所有参与计算的列得到的MAC结果包含了k个元素,最后对进行模数转换后的k个元素进行数字域的移位相加。
为了减少计算误差,可使用差分体系的MAC阵列架构,在一些实施方式中,MAC阵列还包括差分互补传输门、差分计算电容器和第一P型MOS管;所述MAC阵列的每一计算单元内,每个传统6T SRAM单元中M3、M4组成的CMOS反相器的输出端分别连接一个差分互补传输门的输入端,同一所述计算单元内所有M3、M4组成的CMOS反相器所连接的差分互补传输门的输出端连接同一第一P型MOS管漏极;所述第一P型MOS管漏极连接差分计算电容器的底板,源极接VDD;差分乘法结果存储为差分计算电容器底板的电压,同一列每一差分单元的差分计算电容器的顶板连接同一差分累加总线。为描述方便,参见图5a,所述6T SRAM结构连接差分互补传输门和互补传输门的结构为10T结构(10 T Sub-cell,包含10个晶体管)。参见图5b,组成MAC阵列的计算单元连接结构称为第一差分单元。那么可以理解,所述第一差分单元是计算单元的拓展,进一步地,是对组成计算单元的子单元的拓展,本实施例中所述第一差分单元内除了10T结构外,部分晶体管以及电容器是共用的,具体地,共用所述第一N型MOS管、第一P型MOS管、差分计算电容器、计算电容器,而且所述第一差分单元内的子单元同样以所述的时分复用的方式被激活。
在差分体系的MAC阵列架构另一些的实施方式中,MAC阵列还包括第一CMOS反相器和差分计算电容器;组成MAC阵列的每一个计算单元内所有互补传输门的输出端连接同一第一CMOS反相器的输入端,第一CMOS反相器的输出端连接一个差分计算电容器底板。类似的,为描述方便,参见图6a,所述6T SRAM结构连接互补传输门为8T结构(8 T Sub-cell,包含8个晶体管)。参见图6b,组成MAC阵列的计算单元连接结构称为第二差分单元,差分乘法结果存储为差分计算电容器底板的电压。那么可以理解,本实施例中所述第二差分单元内除了8T结构外,部分晶体管以及电容器是共用的。具体地,共用所述第一N型MOS管、第一CMOS反相器、差分计算电容器和计算电容器,所述第二差分单元内的子单元同样以所述的时分复用的方式被激活。
应当注意,所述第一差分单元、第二差分单元均是根据计算单元的拓展,此处命名只是为了方便电路结构的描述。图6c为由前述第一差分单元或者第二差分单元构成差分体系的MAC阵列架构的示意图,同一列的所有计算电容器顶板连接同一累加总线,所有差分计算电容器顶板连接同一差分累加总线。
第三方面,提供了一种位宽可重构的模数混合计算模组,参见图7,包括:第二方面或第二方面的任意可能的实现方式的MAC阵列,计算完成后列向累积的结果表示为模拟电压,即上述实施例中电容器顶板Vtop的值;filter/ifmap模块,提供被写入并存储在MAC阵列中的过滤器参数,应当理解,对于神经网络,所述被写入并存储在MAC阵列中的还可以是上一层网络计算完成所输出的值;ifmap/filter模块,提供MAC阵列的输入,具体地,提供计算单元内互补传输门的输入,与所述的过滤器参数或上一层网络计算后的激活值进行乘加运算;模数转换模块,将MAC操作得到的模拟电压转换为数字表示;数字处理模块,对模数转换模块输出的数字表示至少进行多位融合、偏置、缩放或非线性等操作,输出结果为部分和或者为能直接用于下一层网络的激活值(特征图)。
可以理解,将本申请的模组用于神经网络的MAC计算时,一般情况下,由于相同的面积上,模组包括更多的存储单元,即6T SRAM单元,可以一次性预先用于加载过滤器参数(权重)。在完成一层网络的计算后,输出部分和或者是最终用于下一层网络计算的激活值(特征图),可以立即与预先加载并存储在模组中的过滤器参数(权重)进行MAC计算,减少了片外的数据搬运的等待时间以及功耗。另外,模组的大吞吐量可以提高片上的存储能力,例如,存储单元除了存储过滤器参数外,本层网络输出的激活值(特征值)也可以存储在MAC阵列中。
应当理解,除了在第一方面或第二方面所述的计算单元和MAC阵列内采用共用晶体管和计算电容器的方式,实际上,在所述模组的非MAC阵列区域,计算单元还共用一些参与模数转换和数字处理的晶体管。
本发明中,所述模数转换模块可为并行电容结构的SAR ADC,将列向计算单元输出的顶板电压Vtop转换为数字表示,包括MAC DAC、SAR DAC、比较器、开关序列和SAR逻辑,所述SAR逻辑控制所述开关序列。相对于采用其他类型如电阻、混合阻容结构等的SAR ADC,采用并行电容结构的SAR ADC更能充分利用本发明已有的结构,达到节省器件,减小面积的效果。MAC DAC由前述MAC阵列中一列计算单元的电容器并联组成,应当理解,所述MAC DAC的输出电压为Vtop。SAR DAC包括(B+1)个并联电容器,B=log2Bit,LSB)的电容呈2倍递减的B个电容器,还包括一个与最低位LSB电容等值的电容器,作为冗余电容器。举例说明,MAC DAC中电容器的数量N=8,则B=3,最高位MSB电容器C Significant Bit,MSB)到最低位(LeastSignificant N,N是MAC DAC中电容器的数量;所述电容器包括从最高位(MostB-1的电容为C,次高位电容器CB-2的电容为C/2,最低位LSB电容器C0的电容为C/4,从MSB到LSB能够分配SAR DAC的基准电压比例分别为:1/2、1/4、1/8,冗余电容器CU的电容为C/4,所述B个电容器和冗余电容器的一端并联在一起,B个电容器的另一端连接开关序列,冗余电容器的另一端始终接地。所述开关序列的自由端包括VDD端和接地端,SAR逻辑控制所述开关序列。
在一实施例中,如图8,MAC DAC的输出电压Vtop作为比较器的正输入V+;SAR DAC的输出VSAR作为比较器的负输入V-,SAR逻辑控制所述开关序列使负输入V-近似等于正输入V+,最终的SAR逻辑输出是V +的数字表示。特别地,MAC阵列的激活稀疏性可以使SAR DAC中的某些电容器免于切换,从而获得更高的能效和ADC转换速度。例如,如果已知在MAC操作之后,底板电压Vbtmi为VDD的MAC电容器数量小于25%,即MAC阵列中,一列计算单元进行1位乘法中1×0、0×0、0×1的情形较多,而1×1的情形小于该列计算单元数量的1/4,则可以将SAR DAC的前两位电容器,即CB-1和CB-2对应的开关序列的SB-1和SB-2拨向接地端,并不是无条件激活SAR DAC中的所有电容进行数模转换,节省能耗。应当注意,本发明附图所示的比较器V+侧和V-侧的连接方式只是为了方便说明,实际上V+侧和V-侧的连接可以互换。
在另一实施例中,参见图9,MAC DAC和SAR DAC可以连接在一起,即所有电容器并联,产生的总电压为比较器的正输入V+;比较器的负输入V-为Vref;SAR逻辑控制开关序列使正输入V+逼近Vref。应当注意,本实施例应在MAC操作遵循前述“方式一”的情况下。如果Vrst=0且未考虑电路非理想情况,连接至比较器负输入V-侧的Vref可以为0或VDD / 2。例如,如果Vref=0,SAR DAC中的电容器最初是通过从S0到SB-1的开关连接到VDD的,则SAR操作可以在给出数字表示的同时使V +返回0,对应了“方式一”中电容器的顶板电压Vtop通过重置开关Srst重置为0这一步骤所需的Vrst=0。
图8和图9所示的两个实施例中,当比较器的正输入V+和负输入V-无限地彼此接近时,比较器很容易在模数转换过程中遭受亚稳性问题,即在短暂的时间内无法判断比较器的正输入V+和负输入V-的差异。这是因为要量化的模拟MAC结果的幅度不是连续的而是离散的,并且离散的幅度级别与SAR DAC对齐。为了减轻比较器的亚稳性,如图10,在另一实施例中,相对于图8,比较器的正输入V+侧的MAC DAC和负输入V-侧的SAR DAC均添加一个与其他电容器并联的半LSB电容器;正输入V+侧的半LSB电容器另一端始终接地,负输入V-侧的半LSB电容器另一端可连接开关序列。这将在MAC DAC和SAR DAC之间的离散模拟电平之间产生半个LSB电压的差异,提供额外的误差容限。上述半LSB电容器可以是两个串联的最低位LSB电容器,以实现良好的匹配。
在另一实施例,允许MAC DAC通过底板采样复用为SAR DAC。如图11,比较器的正输入V+侧连接MAC DAC和一个半LSB电容器,MAC DAC的第1个至第N-1个单元的电容器和半LSB电容器均可连接开关序列的接VDD端或者接地端,第N个单元的电容器可选择连接地端;比较器的负输入V-侧不连接电容器而是电压Vref。实际上,本实施例中的MAC DAC也是SARDAC。应当注意,此实施例应当在MAC计算遵循“方式二”的操作,且通常Vref=Vrst。SAR转换完成后,比较器的正输入电压V +返回Vrst,对应了“方式二”中电容器的顶板电压Vtop通过重置开关Srst重置为Vrst这一步骤所需的Vrst。这样使用相同的电容阵列实现MAC操作以及模数转换,避免在MAC操作环节的MAC DAC和模数转换阶段SAR DAC中的电容阵列不同而导致的失配以及精度损失,并且允许全差分SAR ADC的实现。
结合图11的实施例,在另一实施例中,图12显示差分MAC体系结构,解决了共模相关比较器输入失调电压偏移的问题。比较器的正输入V+侧连接MAC DAC和一个额外的LSB电容器,在模数转换的过程中,MAC DAC的第1个至第N-1个单元的电容器和额外的LSB电容器均可连接开关序列的接VDD端或者接地端,第N个单元的电容器可连接接地开关序列;比较器的负输入V-侧连接差分MAC DAC和一个额外的差分LSB电容器,在模数转换过程中,差分MAC DAC的第1个至第N-1个单元的电容器和额外的差分LSB电容器均可连接开关序列,第N个单元的电容器可选择连接接地开关序列。所述差分MAC DAC包括MAC阵列中的差分计算电容阵列。应当注意,所述差分MAC体系结构需与前述差分结构的模组结合才可实现。
在一实施例中,一列SAR ADC的位宽可以实时地由输入数据以及存储在该列的数值的稀疏性来决定,这样平均下来在模数转换过程中需要充放电的二进制加权电容器阵列里的电容的个数有可能大量减少,从而达到大幅节省模数转换能耗的效果。特别地,如图13所示,SAR ADC的实时位宽可以计算为ceil(log2(min(X,W)+1))。其中ceil为上取整函数,min为最小值函数,X为1比特输入向量中1的个数,可以通过加法器树计算得到,W为计算阵列的一列里存储的1的个数,可以在片下计算得到,并且在将数据存储在计算阵列里的时候已经存放在SAR逻辑里。计算位宽的式子里的min,log2,ceil函数可以被简单的数字组合逻辑替代而得到同样的计算结果。
值得注意的是,上述实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种内存内模数混合计算子单元,进行1位乘法计算,其特征在于,包括:一个传统6TSRAM单元、一个互补传输门、一个第一N型MOS管、一个计算电容器;
所述传统6T SRAM单元由MOS管M1、M2、M3、M4、M5、M6组成,其中MOS管M1、M2组成的CMOS反相器与MOS管M3、M4组成CMOS反相器交叉耦合,所述交叉耦合的两个CMOS反相器存储1位的过滤器参数,M5、M6为用于所述过滤器参数读写的位线的控制开关;
所述传统6T SRAM单元中M1、M2组成的CMOS反相器输出端连接互补传输门的输入端,互补传输门的输出端连接第一N型MOS管漏极;
所述第一N型MOS管源极接地,漏极连接计算电容器的底板;
所述互补传输门的N型MOS管栅极连接输入信号,P型MOS管栅极连接互补输入信号且与第一N型MOS管栅极输入信号在运算时电平相同;
所述输入信号与过滤器参数的乘法结果存储为计算电容器底板的电压,多个子单元用于组成一个计算单元,同一所述计算单元内的每一个子单元共用同一所述第一N型MOS管、计算电容器。
2.如权利要求1所述的子单元,其特征在于,所述计算单元内的子单元以时分复用的方式被激活,同一计算单元内的某时刻处于工作状态的子单元的互补传输门的P型MOS管栅极的互补输入信号与第一N型MOS管栅极连接的信号电平相同。
3.一种包括权利要求2所述子单元的MAC阵列,进行乘加运算,其特征在于,包括多个计算单元,每一计算单元内的所有子单元的互补传输门的输出端连接同一个计算电容器的底板,同一列的所有计算单元内的计算电容器顶板连接同一累加总线,每一累加总线的电压对应MAC阵列中每一列乘法计算结果的累加和。
4.如权利要求3所述的MAC阵列,其特征在于,MAC阵列还包括差分互补传输门、差分计算电容器和第一P型MOS管;所述MAC阵列的每一计算单元内,每个传统6T SRAM单元中M3、M4组成的CMOS反相器的输出端分别连接一个差分互补传输门的输入端,所有M3、M4组成的CMOS反相器所连接的差分互补传输门的输出端连接同一第一P型MOS管漏极;所述第一P型MOS管漏极连接差分计算电容器的底板,源极接VDD;差分乘法结果存储为差分计算电容器底板的电压,同一列每一差分单元的计算电容器的顶板连接同一差分累加总线。
5.如权利要求3所述的MAC阵列,其特征在于,MAC阵列还包括第一CMOS反相器和差分计算电容器;组成MAC阵列的每一个计算单元内所有互补传输门的输出端连接同一第一CMOS反相器的输入端,第一CMOS反相器的输出端连接一个差分计算电容器底板;差分乘法结果存储为差分计算电容器底板的电压,同一列的所有差分计算电容器顶板连接同一差分累加总线。
6.一种位宽可重构的模数混合内存内计算的运算模组,其特征在于,包括:如权利要求3至5中任一项所述的MAC阵列,MAC阵列中列向累积的乘法结果表示为模拟电压;
filter/ifmap模块,提供被写入并存储在MAC阵列中的神经网络的过滤器参数或上一层计算完成的激活值;
ifmap/filter模块,提供MAC阵列的输入,与所述神经网络的过滤器参数或者上一层计算完成的激活值进行乘法计算;
模数转换模块,将MAC阵列计算后得到的模拟电压转换为数字表示;
数字处理模块,对模数转换模块的输出至少进行多位融合、偏置、缩放或非线性操作,输出结果为部分和或者为能直接用于下一层网络输入的激活值。
7.如权利要求6所述的运算模组,其特征在于,模数转换模块为二进制加权电容阵列的SAR ADC,所述SAR ADC包括:MAC DAC,由MAC阵列中的一列计算电容器组成;SAR DAC,由多个二进制加权电容器和1个与LSB电容等值的冗余电容器组成;比较器;以及开关序列和SAR逻辑,所述SAR逻辑控制所述开关序列。
8.如权利要求7所述的运算模组,其特征在于,MAC DAC的输出电压作为比较器一端的输入;SAR DAC的输出电压作为比较器另一端的输入。
9.如权利要求7所述的运算模组,其特征在于,MAC DAC和SAR DAC中的电容器并联产生的输出电压作为比较器一端的输入;比较电压Vref作为比较器另一端的输入。
10.如权利要求8所述的运算模组,其特征在于,比较器的两端各添加一个半LSB电容器;MAC DAC和一个半LSB电容器并联产生的输出电压作为比较器一端的输入,SAR DAC和另一个半LSB电容器并联产生的输出电压作为比较器另一端的输入。
11.如权利要求7所述的运算模组,其特征在于,所述MAC DAC并联一个半LSB电容器复用为SAR DAC,此双用途DAC的输出电压作为比较器一端的输入;比较电压Vref作为比较器另一端的输入。
12.如权利要求7所述的运算模组,其特征在于,SAR ADC还包括差分MAC DAC,所述差分MAC DAC由MAC阵列中的一列差分计算电容器组成。
13.如权利要求12所述的运算模组,其特征在于,MAC DAC和一个额外并联的LSB电容器复用为SAR DAC,此双用途DAC的输出电压作为比较器一端的输入;差分MAC DAC和另一个额外并联的差分LSB电容器复用为差分SAR DAC,此双用途差分DAC的输出电压作为比较器另一端的输入。
14.如权利要求9所述的运算模组,其特征在于,SAR ADC的位宽实时地根据输入数据和存储在MAC阵列中的数据的稀疏性来决定,此实时位宽计算为ceil(log2(min(X,W)+1));其中ceil为上取整函数,min为最小值函数,X为1比特输入向量中1的个数,W为MAC阵列的一列里存储的1的个数,该计算式子可以在电路中等效地由数字组合逻辑实现。
CN202010418649.0A 2020-05-18 2020-05-18 子单元、mac阵列、位宽可重构的模数混合存内计算模组 Active CN111431536B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010418649.0A CN111431536B (zh) 2020-05-18 2020-05-18 子单元、mac阵列、位宽可重构的模数混合存内计算模组
US17/762,447 US11948659B2 (en) 2020-05-18 2021-03-30 Sub-cell, mac array and bit-width reconfigurable mixed-signal in-memory computing module
PCT/CN2021/084022 WO2021232949A1 (zh) 2020-05-18 2021-03-30 子单元、mac阵列、位宽可重构的模数混合存内计算模组
EP21808967.0A EP3989445A4 (en) 2020-05-18 2021-03-30 SUB-UNIT, MAC NETWORK, BIT WIDTH RECONFIGURABLE MEMORY RECONFIGURABLE HYBRID ANALOG-DIGITAL COMPUTER MODULE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010418649.0A CN111431536B (zh) 2020-05-18 2020-05-18 子单元、mac阵列、位宽可重构的模数混合存内计算模组

Publications (2)

Publication Number Publication Date
CN111431536A true CN111431536A (zh) 2020-07-17
CN111431536B CN111431536B (zh) 2023-05-02

Family

ID=71551188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010418649.0A Active CN111431536B (zh) 2020-05-18 2020-05-18 子单元、mac阵列、位宽可重构的模数混合存内计算模组

Country Status (4)

Country Link
US (1) US11948659B2 (zh)
EP (1) EP3989445A4 (zh)
CN (1) CN111431536B (zh)
WO (1) WO2021232949A1 (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111816234A (zh) * 2020-07-30 2020-10-23 中科院微电子研究所南京智能技术研究院 一种基于sram位线同或的电压累加存内计算电路
CN111915001A (zh) * 2020-08-18 2020-11-10 腾讯科技(深圳)有限公司 卷积计算引擎、人工智能芯片以及数据处理方法
CN112116937A (zh) * 2020-09-25 2020-12-22 安徽大学 一种在存储器中实现乘法和或逻辑运算的sram电路结构
CN112133348A (zh) * 2020-11-26 2020-12-25 中科院微电子研究所南京智能技术研究院 一种基于6t单元的存储单元、存储阵列和存内计算装置
CN112711394A (zh) * 2021-03-26 2021-04-27 南京后摩智能科技有限公司 基于数字域存内计算的电路
CN113364462A (zh) * 2021-04-27 2021-09-07 北京航空航天大学 模拟存算一体多比特精度实现结构
CN113488092A (zh) * 2021-07-02 2021-10-08 上海新氦类脑智能科技有限公司 基于sram实现多比特权重存储与计算的电路及存储与模拟计算系统
CN113658628A (zh) * 2021-07-26 2021-11-16 安徽大学 一种用于dram非易失存内计算的电路
CN113672860A (zh) * 2021-08-25 2021-11-19 恒烁半导体(合肥)股份有限公司 一种正负数兼容的存内运算方法、乘加运算装置及其应用
WO2021232949A1 (zh) * 2020-05-18 2021-11-25 深圳市九天睿芯科技有限公司 子单元、mac阵列、位宽可重构的模数混合存内计算模组
CN114300012A (zh) * 2022-03-10 2022-04-08 中科南京智能技术研究院 一种解耦合sram存内计算装置
CN114546335A (zh) * 2022-04-25 2022-05-27 中科南京智能技术研究院 一种多比特输入与多比特权重乘累加的存内计算装置
CN114816327A (zh) * 2022-06-24 2022-07-29 中科南京智能技术研究院 一种加法器及全数字存内计算装置
CN114913895A (zh) * 2022-07-19 2022-08-16 中科南京智能技术研究院 一种实现两比特输入单比特权重的存内计算宏单元
TWI788964B (zh) * 2021-08-20 2023-01-01 大陸商深圳市九天睿芯科技有限公司 子單元、mac陣列、位寬可重構的模數混合存內計算模組
CN115756388A (zh) * 2023-01-06 2023-03-07 上海后摩智能科技有限公司 多模式存算一体电路、芯片及计算装置
CN116402106A (zh) * 2023-06-07 2023-07-07 深圳市九天睿芯科技有限公司 神经网络加速方法、神经网络加速器、芯片及电子设备
CN117608519A (zh) * 2024-01-24 2024-02-27 安徽大学 基于10t-sram的带符号乘法与乘累加运算电路

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11170292B2 (en) * 2017-09-21 2021-11-09 The Trustees Of Columbia University In The City Of New York Static random-access memory for deep neural networks
CN113627601B (zh) * 2020-05-08 2023-12-12 深圳市九天睿芯科技有限公司 子单元、mac阵列、位宽可重构的模数混合存内计算模组
US11899518B2 (en) * 2021-12-15 2024-02-13 Microsoft Technology Licensing, Llc Analog MAC aware DNN improvement
CN114089950B (zh) * 2022-01-20 2022-05-27 中科南京智能技术研究院 一种多比特乘累加运算单元及存内计算装置
US20230244921A1 (en) * 2022-01-31 2023-08-03 Microsoft Technology Licensing, Llc Reduced power consumption analog or hybrid mac neural network
TWI822313B (zh) * 2022-09-07 2023-11-11 財團法人工業技術研究院 記憶體單元
CN117807021B (zh) * 2024-03-01 2024-05-10 安徽大学 2t-2mtj存算单元和mram存内计算电路

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662283A (zh) * 2008-12-30 2010-03-03 香港应用科技研究院有限公司 用作逐次逼近模数转换器和数模转换器的两用比较器/运算放大器
CN102332921A (zh) * 2011-07-28 2012-01-25 复旦大学 一种适用于自动增益控制环路的逐次逼近型模数转换器
US20140210535A1 (en) * 2013-01-30 2014-07-31 Texas Instruments Incorporated Signal Level Conversion in Nonvolatile Bitcell Array
CN111079919A (zh) * 2019-11-21 2020-04-28 清华大学 支持权重稀疏的存内计算架构及其数据输出方法
US20200259500A1 (en) * 2017-11-07 2020-08-13 Radiawave Technologies Co., Ltd. N-bit hybrid structure analog-to-digital converter and integrated circuit chip including the same

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850103B2 (en) * 2002-09-27 2005-02-01 Texas Instruments Incorporated Low leakage single-step latch circuit
US8164943B2 (en) * 2009-03-30 2012-04-24 Manoj Sachdev Soft error robust storage SRAM cells and flip-flops
US7812757B1 (en) 2009-06-12 2010-10-12 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Hybrid analog-to-digital converter (ADC) with binary-weighted-capacitor sampling array and a sub-sampling charge-redistributing array for sub-voltage generation
US7898837B2 (en) * 2009-07-22 2011-03-01 Texas Instruments Incorporated F-SRAM power-off operation
JP5623877B2 (ja) 2010-11-15 2014-11-12 ルネサスエレクトロニクス株式会社 半導体集積回路およびその動作方法
CN102394102B (zh) 2011-11-30 2013-09-04 无锡芯响电子科技有限公司 一种采用虚拟地结构实现的近阈值电源电压sram单元
US8625334B2 (en) 2011-12-16 2014-01-07 Taiwan Semiconductor Manufacturing Company, Ltd. Memory cell
US8547269B2 (en) * 2012-01-30 2013-10-01 Texas Instruments Incorporated Robust encoder for folding analog to digital converter
US9335954B2 (en) * 2012-09-10 2016-05-10 Texas Instruments Incorporated Customizable backup and restore from nonvolatile logic array
CN112567350A (zh) 2018-06-18 2021-03-26 普林斯顿大学 可配置的存储器内计算引擎、平台、位单元及其布局
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
CN110414677B (zh) 2019-07-11 2021-09-03 东南大学 一种适用于全连接二值化神经网络的存内计算电路
CN110598858A (zh) 2019-08-02 2019-12-20 北京航空航天大学 基于非易失性存内计算实现二值神经网络的芯片和方法
CN110941185B (zh) * 2019-12-20 2022-06-07 安徽大学 一种用于二值神经网络的双字线6tsram单元电路
US11372622B2 (en) * 2020-03-06 2022-06-28 Qualcomm Incorporated Time-shared compute-in-memory bitcell
CN111144558B (zh) * 2020-04-03 2020-08-18 深圳市九天睿芯科技有限公司 基于时间可变的电流积分和电荷共享的多位卷积运算模组
CN111431536B (zh) 2020-05-18 2023-05-02 深圳市九天睿芯科技有限公司 子单元、mac阵列、位宽可重构的模数混合存内计算模组

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662283A (zh) * 2008-12-30 2010-03-03 香港应用科技研究院有限公司 用作逐次逼近模数转换器和数模转换器的两用比较器/运算放大器
CN102332921A (zh) * 2011-07-28 2012-01-25 复旦大学 一种适用于自动增益控制环路的逐次逼近型模数转换器
US20140210535A1 (en) * 2013-01-30 2014-07-31 Texas Instruments Incorporated Signal Level Conversion in Nonvolatile Bitcell Array
US20200259500A1 (en) * 2017-11-07 2020-08-13 Radiawave Technologies Co., Ltd. N-bit hybrid structure analog-to-digital converter and integrated circuit chip including the same
CN111079919A (zh) * 2019-11-21 2020-04-28 清华大学 支持权重稀疏的存内计算架构及其数据输出方法

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021232949A1 (zh) * 2020-05-18 2021-11-25 深圳市九天睿芯科技有限公司 子单元、mac阵列、位宽可重构的模数混合存内计算模组
US11948659B2 (en) 2020-05-18 2024-04-02 Reexen Technology Co., Ltd. Sub-cell, mac array and bit-width reconfigurable mixed-signal in-memory computing module
CN111816234A (zh) * 2020-07-30 2020-10-23 中科院微电子研究所南京智能技术研究院 一种基于sram位线同或的电压累加存内计算电路
CN111816234B (zh) * 2020-07-30 2023-08-04 中科南京智能技术研究院 一种基于sram位线同或的电压累加存内计算电路
CN111915001A (zh) * 2020-08-18 2020-11-10 腾讯科技(深圳)有限公司 卷积计算引擎、人工智能芯片以及数据处理方法
WO2022037257A1 (zh) * 2020-08-18 2022-02-24 腾讯科技(深圳)有限公司 卷积计算引擎、人工智能芯片以及数据处理方法
CN111915001B (zh) * 2020-08-18 2024-04-12 腾讯科技(深圳)有限公司 卷积计算引擎、人工智能芯片以及数据处理方法
CN112116937A (zh) * 2020-09-25 2020-12-22 安徽大学 一种在存储器中实现乘法和或逻辑运算的sram电路结构
CN112116937B (zh) * 2020-09-25 2023-02-03 安徽大学 一种在存储器中实现乘法和或逻辑运算的sram电路结构
CN112133348A (zh) * 2020-11-26 2020-12-25 中科院微电子研究所南京智能技术研究院 一种基于6t单元的存储单元、存储阵列和存内计算装置
CN112711394A (zh) * 2021-03-26 2021-04-27 南京后摩智能科技有限公司 基于数字域存内计算的电路
CN112711394B (zh) * 2021-03-26 2021-06-04 南京后摩智能科技有限公司 基于数字域存内计算的电路
CN113364462A (zh) * 2021-04-27 2021-09-07 北京航空航天大学 模拟存算一体多比特精度实现结构
CN113364462B (zh) * 2021-04-27 2022-09-02 北京航空航天大学 模拟存算一体多比特精度实现结构
CN113488092A (zh) * 2021-07-02 2021-10-08 上海新氦类脑智能科技有限公司 基于sram实现多比特权重存储与计算的电路及存储与模拟计算系统
CN113658628A (zh) * 2021-07-26 2021-11-16 安徽大学 一种用于dram非易失存内计算的电路
CN113658628B (zh) * 2021-07-26 2023-10-27 安徽大学 一种用于dram非易失存内计算的电路
TWI788964B (zh) * 2021-08-20 2023-01-01 大陸商深圳市九天睿芯科技有限公司 子單元、mac陣列、位寬可重構的模數混合存內計算模組
CN113672860B (zh) * 2021-08-25 2023-05-12 恒烁半导体(合肥)股份有限公司 一种正负数兼容的存内运算方法、乘加运算装置及其应用
CN113672860A (zh) * 2021-08-25 2021-11-19 恒烁半导体(合肥)股份有限公司 一种正负数兼容的存内运算方法、乘加运算装置及其应用
CN114300012B (zh) * 2022-03-10 2022-09-16 中科南京智能技术研究院 一种解耦合sram存内计算装置
CN114300012A (zh) * 2022-03-10 2022-04-08 中科南京智能技术研究院 一种解耦合sram存内计算装置
CN114546335B (zh) * 2022-04-25 2022-07-05 中科南京智能技术研究院 一种多比特输入与多比特权重乘累加的存内计算装置
CN114546335A (zh) * 2022-04-25 2022-05-27 中科南京智能技术研究院 一种多比特输入与多比特权重乘累加的存内计算装置
CN114816327B (zh) * 2022-06-24 2022-09-13 中科南京智能技术研究院 一种加法器及全数字存内计算装置
CN114816327A (zh) * 2022-06-24 2022-07-29 中科南京智能技术研究院 一种加法器及全数字存内计算装置
CN114913895A (zh) * 2022-07-19 2022-08-16 中科南京智能技术研究院 一种实现两比特输入单比特权重的存内计算宏单元
CN114913895B (zh) * 2022-07-19 2022-11-01 中科南京智能技术研究院 一种实现两比特输入单比特权重的存内计算宏单元
CN115756388A (zh) * 2023-01-06 2023-03-07 上海后摩智能科技有限公司 多模式存算一体电路、芯片及计算装置
CN116402106B (zh) * 2023-06-07 2023-10-24 深圳市九天睿芯科技有限公司 神经网络加速方法、神经网络加速器、芯片及电子设备
CN116402106A (zh) * 2023-06-07 2023-07-07 深圳市九天睿芯科技有限公司 神经网络加速方法、神经网络加速器、芯片及电子设备
CN117608519A (zh) * 2024-01-24 2024-02-27 安徽大学 基于10t-sram的带符号乘法与乘累加运算电路
CN117608519B (zh) * 2024-01-24 2024-04-05 安徽大学 基于10t-sram的带符号乘法与乘累加运算电路

Also Published As

Publication number Publication date
CN111431536B (zh) 2023-05-02
WO2021232949A1 (zh) 2021-11-25
EP3989445A1 (en) 2022-04-27
EP3989445A4 (en) 2022-12-21
US11948659B2 (en) 2024-04-02
US20220351761A1 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
CN111431536B (zh) 子单元、mac阵列、位宽可重构的模数混合存内计算模组
Biswas et al. Conv-RAM: An energy-efficient SRAM with embedded convolution computation for low-power CNN-based machine learning applications
CN113627601B (zh) 子单元、mac阵列、位宽可重构的模数混合存内计算模组
CN110209375B (zh) 一种基于radix-4编码和差分权重存储的乘累加电路
Danial et al. Breaking through the speed-power-accuracy tradeoff in ADCs using a memristive neuromorphic architecture
US11551745B2 (en) Computation in-memory architecture for analog-to-digital conversion
US11762700B2 (en) High-energy-efficiency binary neural network accelerator applicable to artificial intelligence internet of things
CN112181895A (zh) 可重构架构、加速器、电路部署和计算数据流方法
CN115906976A (zh) 一种全模拟向量矩阵乘法存内计算电路及其应用
Hsieh et al. 7.6 A 70.85-86.27 TOPS/W PVT-insensitive 8b word-wise ACIM with post-processing relaxation
Lee et al. A charge-sharing based 8t sram in-memory computing for edge dnn acceleration
Caselli et al. Charge sharing and charge injection A/D converters for analog in-memory computing
Khodabandehloo et al. CVNS-based storage and refreshing scheme for a multi-valued dynamic memory
Yu et al. A 4-bit mixed-signal MAC array with swing enhancement and local kernel memory
Nasrin et al. Memory-immersed collaborative digitization for area-efficient compute-in-memory deep learning
Kim et al. A charge-domain 10T SRAM based in-memory-computing macro for low energy and highly accurate DNN inference
Chen et al. SAMBA: Single-ADC multi-bit accumulation compute-in-memory using nonlinearity-compensated fully parallel analog adder tree
Kneip et al. IMPACT: A 1-to-4b 813-TOPS/W 22-nm FD-SOI Compute-in-Memory CNN Accelerator Featuring a 4.2-POPS/W 146-TOPS/mm 2 CIM-SRAM With Multi-Bit Analog Batch-Normalization
Caselli et al. Tiny ci-SAR A/D converter for deep neural networks in analog in-memory computation
TWI788964B (zh) 子單元、mac陣列、位寬可重構的模數混合存內計算模組
Zhang et al. An energy-efficient mixed-signal parallel multiply-accumulate (MAC) engine based on stochastic computing
Rasul et al. A 128x128 SRAM macro with embedded matrix-vector multiplication exploiting passive gain via MOS capacitor for machine learning application
Lin et al. A reconfigurable in-SRAM computing architecture for DCNN applications
Fan et al. A 3-8bit Reconfigurable Hybrid ADC Architecture with Successive-approximation and Single-slope Stages for Computing in Memory
CN113672854A (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