CN116821048A - 一种存算一体芯片及其操作方法 - Google Patents
一种存算一体芯片及其操作方法 Download PDFInfo
- Publication number
- CN116821048A CN116821048A CN202210282818.1A CN202210282818A CN116821048A CN 116821048 A CN116821048 A CN 116821048A CN 202210282818 A CN202210282818 A CN 202210282818A CN 116821048 A CN116821048 A CN 116821048A
- Authority
- CN
- China
- Prior art keywords
- memory
- module
- chip
- signal
- sub
- 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
Links
- 238000000034 method Methods 0.000 title claims description 39
- 239000003990 capacitor Substances 0.000 claims abstract description 71
- 238000004364 calculation method Methods 0.000 claims abstract description 50
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 229920005994 diacetyl cellulose Polymers 0.000 description 22
- 238000010586 diagram Methods 0.000 description 17
- 238000013461 design Methods 0.000 description 12
- 239000000243 solution Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 102100031577 High affinity copper uptake protein 1 Human genes 0.000 description 7
- 101710196315 High affinity copper uptake protein 1 Proteins 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005293 physical law Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100428764 Drosophila melanogaster vret gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000002629 virtual reality therapy Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本申请实施例涉及一种存算一体芯片,包括:具有开关网络和复用电容的存算阵列模块、读写模块、全局控制模块和输出模块。全局控制模块根据预先配置的控制信号控制开关网络中各开关的闭合,以使存算阵列模块处于存储模式。存算阵列模块接收模拟输入信号。根据控制信号和权重完成对模拟输入信号的运算,并根据复用电容和反馈信号叠加基准电压确定运算结果。其中,运算结果存储在复用电容中。输出模块将运算结果进行移位相加,确定数字输出信号,并将数字输出信号进行输出。本申请通过对存算阵列模块中的电容进行复用,可以去除SAR ADC中CAP DAC,从而在提升芯片算力的同时,可以进一步减小芯片所占面积。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种存算一体(computing in memory,CIM)运算核芯片及其操作方法。
背景技术
随着大数据、人工智能的兴起,终端设备对于芯片的要求也越来越高。例如对芯片单位面积算力、能效比的需求急剧增加。传统的数字精确乘加器等计算电路的算力、效率逐渐无法满足当前需求。因此,为了提高芯片算力和能效比,当前业界和学术界试图从多个维度进行创新、优化,以进一步推动芯片的发展。而存算一体架构及其电路的实现是一条尤为重要的研究方向。
存算一体是为了打破数据搬移产生的瓶颈,将计算单元与存储单元融为一体,利用物理定律在“存算”单元上完成高能效并发运算的新型计算架构。在一些情况下,存算一体也可称为存内计算。从广义上来讲,“存算一体”也指在架构设计上缩短计算单元与存储单元物理距离的新型计算架构。此类架构可以增加带宽,降低数据搬移的代价,缓解数据搬移产生的瓶颈。
目前芯片的存算一体化的实现方式有多种。例如,从计算原理上可以分为数字型和模拟型两个大方向。其中,数字型存算一体方案是对存储单元或者读出电路进行一定的改善,在数据读取时完成部分位运算,例如与非、或非等。之后,通过加法树等数字电路模块完成剩余计算。例如图1所示出的一种数字型存算一体方案示意图,可以看出在数字型存算一体的方案中,对于输入的数字信号,先根据不同的权重先进行乘法运算,然后再通过加法树进行移位加法计算。由于此类方案本质上仍为数字电路,对于芯片效率、算力等提高十分有限。而对于模拟型存算一体方案,则是利用了物理定律,在电流域或者电荷域上完成乘加运算,然后通过模拟数字转换器(analog to digital converter,ADC)将结果量化为数字信号。例如图2所示出的一种模拟型存算一体方案示意图,通过多个数字模拟转换器(digital to analog converter,DAC)输入模拟信号,并对模拟型号进行乘加运算。之后,将累加结果的模拟输出通过ADC进行数字量化为数字信号。由于模拟型存算一体方案从原理上对计算方案进行了优化,因此理论上相比数字型存算一体方案能够获得更大收益。但是由于ADC带来巨大的面积开销以及功耗开销,因此导致模拟型存算一体方案的实际收益仍然有限。
显然,当前的芯片在保证算力、功耗的前提下,芯片面积无法做的更小。若进一步缩小芯片面积,则会影响芯片的算力和功耗。可见,现在亟需一种在提升芯片算力、降低功耗的条件下,可以进一步减小芯片面积的方案。
发明内容
本申请实施例提供了一种存算一体芯片,通过对存算一体芯片中存算单元内的电容进行复用,从而可以去除逐次逼近寄存器型模数转换器(successive approximationregister analog to digital converter,SAR ADC)中的电容型数模转化器(capacitortype digital to analog converter,CAP DAC),以便进一步减小各模块所占用的面积。实现了缩小芯片面积即提升芯片的单位面积算力。
第一方面,提供了一种存算一体芯片,芯片包括:存算阵列模块、读写模块、全局控制模块和输出模块。其中,存算阵列模块可以包括开关网络和复用电容。全局控制模块,用于根据预先配置的控制信号控制开关网络中各开关的闭合,以使存算阵列模块处于存储模式或运算模式。当存算阵列模块处于运算模式时,存算阵列模块,用于接收模拟输入信号。存算阵列模块还用于,根据控制信号和权重完成对模拟输入信号的运算,并根据复用电容和反馈信号叠加基准电压确定运算结果。其中,运算结果存储在复用电容中,权重为读写模块预先输入并存储的,基准电压、反馈信号通过输出模块提供。输出模块,用于将运算结果进行数字化并移位相加,确定数字输出信号,并将数字输出信号进行输出。本申请通过对存算阵列模块中的电容进行复用,可以去除SAR ADC中CAP DAC,从而在提升芯片算力的同时,可以进一步减小芯片所占面积。
在一个可能的实施方式中,存算阵列模块由具有多个存算单元的存算阵列构成,每个存算单元包括存储子模块和运算子模块。存储子模块,用于接收并存储所述权重。运算子模块,用于接收模拟输入信号。运算子模块还用于,根据控制信号,实现模拟输入信号和权重的乘法运算,确定乘法结果。其中,乘法结果存储在复用电容中。运算子模块还用于,根据反馈信号从复用电容中确定叠加电容。运算子模块还用于,基于叠加电容,将基准电压与乘法结果进行叠加,确定运算结果。
在一个可能的实施方式中,存算阵列中位于同一列的多个存算单元的输出电压端口互连;以及,存算阵列中位于同一列的多个存算单元根据预设比例分为多个组,每组中的多个存算单元的基准电压端口互连。
在一个可能的实施方式中,存算单元包括由多个存储子模块构成的存储子阵列。本申请中,存算单元中可以包括多个存储子模块,从而增加芯片存储容量。
在一个可能的实施方式中,输出模块包括:至少一个模数转换子模块和移位加法子模块,每个模数转换子模块包括比较器、逐次逼近逻辑子模块和基准电压反馈子模块。比较器,用于将运算结果与预先配置的参考电压进行比较,确定比较结果。逐次逼近逻辑子模块,用于根据比较结果确定逻辑输出值。基准电压反馈子模块,用于根据逻辑输出值确定反馈信号,并将反馈信号反馈发送至存算阵列模块。移位加法子模块,用于对逻辑输出值进行移位相加,确定数字输出信号。本申请通过反馈信号实现对存算一体模块中电容的复用,使得芯片可以去除SAR ADC中CAP DAC,从而减小芯片所占面积。
在一个可能的实施方式中,当存算阵列模块处于存储模式时,存算阵列模块还用于,接收读写模块输入的待存储信息,并将待存储信息进行存储。
在一个可能的实施方式中,存算阵列模块包括多个存算单元构成的存算阵列,每个存算单元包括存储子模块。存储子模块,用于接收并存储所述待存储信息。
在一个可能的实施方式中,芯片还包括:数据输入模块,用于将待计算的数字输入信号转换为模拟输入信号,并将模拟输入信号输入至存算阵列模块。
第二方面,提供了一种存算一体芯片的操作方法,该方法可以应用于第一方面所涉及的存算一体芯片。其中,存算一体芯片具有开关网络和复用电容。方法可以包括:根据预先配置的控制信号控制开关网络中各开关的闭合,以使存算一体芯片处于存储模式或运算模式。当存算一体芯片处于运算模式时,接收模拟输入信号。然后,可以根据控制信号和权重完成对模拟输入信号的运算,并根据复用电容和反馈信号叠加基准电压,以确定运算结果。其中,运算结果存储在复用电容中,权重为预先输入并存储的,基准电压为预先设定的,反馈信号为存算一体芯片根据上一次的运算结果确定的。之后,将运算结果进行数字化并移位相加,确定数字输出信号,并将数字输出信号进行输出。本申请通过对存算阵列模块中的电容进行复用,可以去除SAR ADC中CAP DAC,从而在提升芯片算力的同时,可以进一步减小芯片所占面积。
在一个可能的实施方式中,根据控制信号和权重完成对模拟输入信号的运算,并根据复用电容和反馈信号叠加基准电压,以确定运算结果,包括:根据控制信号,实现模拟信号和权重的乘法运算,确定乘法结果。其中,乘法结果存储在复用电容中。之后,根据反馈信号从复用电容中确定叠加电容。然后,基于叠加电容,将基准电压与乘法结果进行叠加,确定运算结果。
在一个可能的实施方式中,将运算结果进行数字化并移位相加,确定数字输出信号,包括:将运算结果与预先配置的参考电压进行比较,确定比较结果。然后,根据比较结果确定逻辑输出值。再对逻辑输出值进行移位相加,确定数字输出信号。本申请通过反馈信号实现对存算一体模块中电容的复用,使得芯片可以去除SAR ADC中CAP DAC,从而减小芯片所占面积。
在一个可能的实施方式中,该方法还可以包括:根据逻辑输出值确定用于下一次基准电压叠加的反馈信号。
在一个可能的实施方式中,当存算一体芯片处于存储模式时,接收待存储信息,并将待存储信息进行存储。
在一个可能的实施方式中,接收模拟输入信号,可以包括:接收待计算的数字输入信号。将数字输入信号转换为模拟输入信号。
第三方面,提供了一种计算设备,设备包括第一方面所描述的存算一体芯片和存储器:存算一体芯片,用于与存储器耦合,以及读取并执行存储在存储器中的指令。其中,存算一体芯片具有开关网络和复用电容。当存算一体芯片运行时执行指令,以实现根据预先配置的控制信号控制开关网络中各开关的闭合,以使存算一体芯片处于存储模式或运算模式。当存算一体芯片处于运算模式时,接收模拟输入信号。然后,可以根据控制信号和权重完成对模拟输入信号的运算,并根据复用电容和反馈信号叠加基准电压,以确定运算结果。其中,运算结果存储在复用电容中,权重为预先输入并存储的,基准电压为预先设定的,反馈信号为存算一体芯片根据上一次的运算结果确定的。之后,将运算结果进行数字化并移位相加,确定数字输出信号,并将数字输出信号进行输出。本申请通过对存算阵列模块中的电容进行复用,可以去除SAR ADC中CAP DAC,从而在提升芯片算力的同时,可以进一步减小芯片所占面积。
在一个可能的实施方式中,存算一体芯片还用于:根据控制信号,实现模拟信号和权重的乘法运算,确定乘法结果。其中,乘法结果存储在复用电容中。之后,根据反馈信号从复用电容中确定叠加电容。然后,基于叠加电容,将基准电压与乘法结果进行叠加,确定运算结果。
在一个可能的实施方式中,存算一体芯片还用于:将运算结果与预先配置的参考电压进行比较,确定比较结果。然后,根据比较结果确定逻辑输出值。再对逻辑输出值进行移位相加,确定数字输出信号。本申请通过反馈信号实现对存算一体模块中电容的复用,使得芯片可以去除SAR ADC中CAP DAC,从而减小芯片所占面积。
在一个可能的实施方式中,存算一体芯片还用于:根据逻辑输出值确定用于下一次基准电压叠加的反馈信号。
在一个可能的实施方式中,存算一体芯片还用于:当存算一体芯片处于存储模式时,接收待存储信息,并将待存储信息进行存储。
在一个可能的实施方式中,存算一体芯片还用于:接收待计算的数字输入信号。将数字输入信号转换为模拟输入信号。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机指令,当计算机指令在计算机上运行时,使得计算机实现第二方面中任意一项的方法。
第五方面,提供了一种包含指令的计算机,当计算机运行时,执行第二方面中任意一项的方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第二方面中任意一项的方法。
本申请公开了一种存算一体芯片及其操作方法,通过对存算一体芯片中存算单元内的电容进行复用,从而可以去除SAR ADC中的CAP DAC。使得可以减小各模块所占用的面积,在提升芯片算力的同时,进一步缩小芯片面积。
附图说明
图1为一种数字型存算一体方案示意图;
图2为一种模拟型存算一体方案示意图;
图3为一种SAR ADC的架构示意图;
图4为本申请实施例提供的一种存算一体系统结构示意图;
图5为本申请实施例提供的一种存算一体芯片结构示意图;
图6为图5所示的另一种存算一体芯片结构示意图;
图7为本申请实施例提供的一种存算单元结构示意图;
图8为本申请实施例提供的一种存算阵列结构示意图;
图9为本申请实施例提供的另一种存算单元结构示意图;
图10为本申请实施例提供的另一种存算阵列结构示意图;
图11为本申请实施例提供的一种存算一体芯片的操作方法流程图;
图12为本申请实施例提供的一种计算设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请主要应用于存算一体芯片,当前在模拟型存算一体芯片中在电流域或者电荷域完成乘加运算后,需要通过ADC将模拟运算结果量化为数字信号。通常情况下,综合考虑ADC的速度和功耗,目前SAR ADC的应用最为广泛。例如图3示出了一种SAR ADC的架构图。可以看出,SAR ADC可以包括以下几部分,如采样保持(track/sample and hold)模块、比较器(comparator)、逐次逼近逻辑(successive approximation register logic,SARLogic)模块和CAP DAC等。对于一个高精度的SAR ADC而言,其面积的主要开销来自于CAPDAC。由于电容的面积并不会随着工艺演进发展而减小,而其它几个模块可能会随着工艺发展减小占用面积。因此在先进的工艺下,CAP DAC的面积开销占比会越来越大。这导致了SARADC整体的面积无法做到更小。因此,在一些方案中采用了时分复用ADC的方案来量化每一列的模拟输出,但这会影响芯片的整体算力。
在一些方案中,例如可以是一种10T1C静态随机存储器(static random accessmemory,SRAM)。其中,输入端可以是5bit的差分输出数模转化器(digital to analogconverter,DAC),其输入范围可以是-15到+15。SRAM阵列可以由10T1C单元结构组成,其中,10T表示具有10个金属-氧化物半导体场效应晶体管(metal-oxide-semiconductor field-effect transistor,MOSFET或MOS),1C可以表示为具有1个电容。其中,每个10T1C单元可以存储+1或-1。输入的模拟电压在SRAM阵列中同一列上的一个或多个10T1C单元可以通过电荷共享的原理在阵列的计算线(computing line,CL)上完成运算,并输出代表运算结果的模拟电压。最后,SRAM阵列中同一列上的一个或多个10T1C单元,其输出的模拟电压可以通过一个8bit的SAR ADC将结果量化为数字信号,并在数字域上完成移位累加运算。但此类方案中可以看出,每一列都需要一个8bit的SAR ADC,使得ADC的面积开销巨大,严重影响芯片算力。同时,由于采用的是10T1C的单元结构,此类结构的存算单元不是紧凑型的存算单元结构,因此芯片各模块的配置信息和控制逻辑与紧凑型的芯片完全不同,无法适用阵列面积更小的芯片结构。
在另一些方案中,例如可以是一种基于代工厂提供的6T SRAM。在一些例子中,可以是由32个6T SRAM单元构成一个子阵列。其中,32个6T SRAM单元构成的子阵列与源注入局部乘法单元(source-injection local-multiplication cell,SILMC)、GSW构成一个存算单元。位于同一列的子阵列之间可以通过全局位线开关(global-bitline switch,GSW)连接。在进行局部乘法时,GSW通过控制全局位线(bit line,BL)将各个子阵列分段断开,使得子阵列内部完成相应的乘法运算。之后,GSW再控制BL为连接状态,通过电荷共享的方式完成累加运算。然后,输出表示运算结果的模拟电压至改进版ADC中将结果量化为数字信号。以便通过数字移位器和加法器(digital shifter-and-adder,DSaA)在数字域完成移位累加运算。具体可以参考现有方式,本申请不再赘述。该方案每一列均需要一个改进版ADC,例如可以是混合优先级模数转换器(prioritized-hybrid-analog to digitalconverter,Ph-ADC),虽然进行了部分优化,但是ADC的面积开销仍然非常大,严重影响芯片算力。同时,该方案中各个子阵列共享乘法运算单元,无法实现全阵列的并行运算,使得算力同样受限。
因此,本申请提供了一种存算一体芯片及其操作方法,通过对存算一体芯片中存算单元内的电容进行复用,从而可以去除SAR ADC中的CAP DAC。极大的减小了SAR ADC的面积开销,提升芯片算力的同时,进一步缩小芯片面积。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述。
图4为本申请实施例提供的一种存算一体系统结构示意图。
如图4所示,本申请提供了一种存算一体系统,该系统在一些例子中可以是一种片上系统(system-on-a-chip,SoC)。该系统可以包括粗粒度可重构阵列(coarse-grainedreconfigurable array,CGRA)401、CIM运算核402、基于精简指令集-V(reducedinstruction set computer-V,RISC-V)的CPU403、直接存储器访问控制器(direct memoryaccess,DMA)404、双倍速率内存(double data rate,DDR)405、高速串行计算机扩展总线(peripheral component interconnect express,PCIE)接口406和总线407。可以理解的是,该系统通过采用CIM运算核402来提高整个系统的算力和能效比。在一些例子中,该系统可以用于关键词检测、语音检测、图像检测、图像超分、图像渲染等等场景。
其中,CIM运算核402的具体结构可以通过图5进行更为详细的描述。
图5为本申请实施例提供的一种存算一体芯片结构示意图。
如图5所示,为图4中CIM运算核402的一种更为具体的结构示意图。可以看出,CIM运算核402可以包括存算阵列模块510、全局控制模块520、读写模块530和输出模块540。
在一些例子中,存算阵列模块510中可以包括开关网络和复用电容。其中,开关网络可以包括一个或多个开关。在一些例子中也可以是一个或多个开关组。
全局控制模块520可以根据预先配置的控制信号,控制存算阵列模块510中开关网络包括的各开关的闭合。从而使得存算阵列模块510处于存储模式或是运算模式,以实现存储功能或运算功能。可以理解的是,存算一体芯片可以具有多个不同的工作模式,在一些例子中,存算一体信息可以接收用于确定工作模式的模式控制指令,以确定当前存算一体芯片的工作模式。该模式控制指令可以是用户输入,或者根据其它任务、进程等生成的,本申请不做限定。其中,工作模式例如可以包括运算模式和/或存储模式等。该存算一体芯片的全局控制模块520可以在不同工作模式下,依次产生预先配置的相应模式下的多个控制信号。从而便于后续根据产生的多个控制信号控制开关网络中的一个或多个开关(或开关组)。
当存算阵列模块510处于运算模式时,存算阵列模块510可以接收模拟输入信号。可以理解的是,在一些例子中,存算阵列模块510可以直接接收图4所示存算一体系统中其它装置发送的模拟输入信号。当然,在另一些例子中,CIM运算核402中还可以包括数据输入模块550。数据输入模块550可以用于将待计算的数字输入信号转换为模拟输入信号,然后将模拟输入信号输入至存算阵列模块510中。
在一些例子中,数据输入模块550可以包括数据输入子模块551和数模转换子模块552。其中,数模转换子模块552可以包括有一个或多个DAC。数据输入子模块551可以接收待计算的数字输入信号,并将该数字输入信号发送至数模转换子模块552,例如可以是N bit数字输入信号。数模转换子模块552中的DAC可以将N bit的数字输入信号转换为模拟输入信号,并将转换得到的模拟输入信号输入至存算阵列模块510中。当然,具体数字输入信号经DAC转换为模拟输入信号的过程可以参考现有方式,本申请不在赘述。
之后,存算阵列模块510可以根据控制信号和权重完成对模拟输入信号的运算,还可以根据复用电容和反馈信号叠加上基准电压,从而确定运算结果。其中,该运算结果可以存储在复用电容中。权重可以是读写模块530预先输入存算阵列模块510中并存储的。基准电压和反馈信号可以是输出模块540提供的。在一些例子中,存算阵列模块510可以是由具有多个存算单元的存算阵列511构成。例如图6所示出的,存算阵列511中包括按照顺序排列的多个存算单元。可以看出,数模转换子模块552中的每个DAC可以对应于存算阵列511中的一行存算单元。也就是说,存算阵列511中每行存算单元的模拟信号输入,可以由同一个DAC提供。
在一些例子中,图7提供了一种较为具体的存算单元结构示意图。如图7所示,每个存算单元可以包括存储子模块和运算子模块。在一个例子中,存储子模块例如可以是6TSRAM。其中,6T表示该SRAM具有6个MOS管。当然,6T SRAM的具体的连接关系和电路设计可以参考现有方式,本申请不再赘述。当然可以理解的是,本申请仅以6T SRAM作为存储子模块的一种具体形式进行描述。在其它例子中,存储子模块还可以是其它任意规格的SRAM、动态随机存取存储器(dynamic random access memory,DRAM)或只读存储器(read-onlymemory,ROM)等任意存储结构,本申请不做限定。
在一些例子中,该存算单元具有10个端口,每个端口可以提供一个模拟信号或者电压。例如,可以包括电源电压VDD、公共接地端电压VSS、字线(world line,WL)、BL、BLB、控制信号(control,CTR)0、CTR1、模拟输入信号VIN、参考电压VREF和模拟输出信号VOUT。其中,BL表示第一位线,BLB表示为位线B或称第二位线。CTR0表示为输入控制信号,用于控制VIN的输入。CTR1表示为参考电压控制信号,用于控制VREF的输入。
在一些例子中,当存算单元处于运算模式时,存储子模块可以用于存储权重(weight,W)。例如,读写模块530通过BL、BLB、WL等端口预先将计算所需的权重存储至存储子模块中。以便运算子模块在运算时完成模拟输入信号与权重的乘法操作,并将乘法结果存储在复用电容上。
通过图7可以看出,运算子模块中可以包括开关网络和复用电容C。例如,开关网络可以包括开关S0、开关S1和开关S2。其中,CTR0用于控制开关S0的闭合,CTR1用于控制开关S2的闭合,存储子模块中预先存储的权重W用于控制开关S1的闭合。
接下来将详细介绍运算子模块完成模拟输入信号与权重的乘法操作,并存储在复用电容C上。
首先,运算子模块进行运算之前,需要对复用电容C的两端电压进行复位操作。例如,可以设定复用电容C的第一端为VOUT端、第二端为VQ端。当然,这里的第一端、第二端仅仅作为一种示意,并不用于进行限定。在进行复用电压C复位时,将复用电容C的VOUT端与复位电压VRST相连接,同时全局控制模块520根据预先配置控制信号CTR0和CTR1,控制开关S0断开以及控制开关S2闭合。此时,将基准电压VREF接0V,可以将复用电容C的VQ端复位到0V。此时,完成了复用电容C的复位。
之后,运算子模块可以对模拟输入信号和权重W进行乘法操作后的乘法结果进行采样。全局控制模块520根据预先配置控制信号CTR0控制开关S0闭合。此时,VIN接入模拟输入信号。可以理解的是,在运算阶段,需要全局控制模块520据预先配置控制信号CTR1控制开关S2断开,以避免复用电容C的VQ端电压受到VREF干扰。开关S1受到权重W控制。当权重W为1时,开关S1闭合;当权重W为0时,开关S1断开。显然,当权重W为1时,开关S1闭合,使得VIN对复用电容C的VQ端进行充电,VQ则等于VIN。而当权重W为0时,开关S1断开,则VIN无法对复用电容C进行充电,VQ则等于0V。此时,完成了对模拟输入信号和权重W的乘法操作,同时,乘法结果也存储到了复用电容C上。
然后,在一些例子中,存算阵列模块510中还具有复位开关以及控制该复位开关的复位信号。其中,复位信号可以通过全局控制模块520预先配置。当乘法结果存储至复用电容C后,全局控制模块520可以通过预先配置的复位信号控制住复位开关断开,以使得复用电容C的VOUT端与VRST断开。但显然,此时,复用电容C的VOUT端仍然为VRST,但是处于浮空状态。之后,全局控制模块520通过预先配置的控制信号CTR1控制开关S2闭合,此时VREF仍然接0V。VQ端则会从0V(当W=0时)或者VIN(当W=1时)被拉到0V。应当注意的是,此时需要全局控制模块520通过预先配置的控制信号CTR0控制开关S0断开。由于VOUT端处于浮空状态,电容无法进行放电,因此电容两端电势差为了保持不变,VOUT端电压则会变为VRST(当W=0时)或者VRST-VIN(当W=1时)。这样一个存算单元则完成了一次1bit的乘法运算。
然而存算阵列511中包含有多个按照顺序排列的多个存算单元,因此如图8所示出的,可以看出每一列的各个存算单元的VOUT端可以相互连接,并共同与VRET连接。同时可以看到,VRST与VOUT端之间包括复位开关,可以通过复位信号控制该复位开关的断开或闭合。同时,看到,每一列的各个存算单元具有相同的BL和BLB输入。而每一行的各个存算单元具有相同VIN、CTR0、CTR1和VREF输入。
由于在存算阵列中每一列上各个存算单元的VOUT端相互连接,因此可以通过电荷共享的原理完成各bit位的累加运算,则每一列的运算结果输出可以如公式1所示。
其中,N表示存算阵列中一列上存算单元的数量,i为第i个存算单元。
在一些例子中,对于每一列上的多个存算单元还可以按照预先设定方式进行分组。以图8为例,假设存算阵列为256行X列的阵列构成。可以对同一列的256个存算单元进行分组。可以按照2的a次方的比例对256行存算单元分组,则可以分为9组。其中,分组的比例分别为128:64:32:16:8:4:2:1:1。也就是图8中可以看到,存算单元0为一组、存算单元1为一组、存算单元2至存算单元3为一组、存算单元4至存算单元7为一组、存算单元8至存算单元15为一组、存算单元16至存算单元31为一组、存算单元32至存算单元63为一组、存算单元64至存算单元127为一组、存算单元128至存算单元255为一组。处于同一组的各个存算单元可以具有相同的WL输入,以及将同一组的VREF端相连。此时,存算阵列中的各个存算单元可以根据反馈信号控制开关S2的断开和闭合。也就是说,反馈信号可以通过CTR1端输入以控制运算子模块中的开关S2。显然,当同一组中各个存算单元的S2闭合后,复用电容C可以并联到一起为一个更大的电容,例如可以分别获得128C、64C、32C、16C、8C、4C、2C、1C和1C的大电容。
运算子模块则可以根据反馈信号调整复用电容的电容量,以确定实际需要的叠加电容。例如,通过反馈信号控制各个存算单元中的开关S2以得到叠加电容。运算子模块再基于叠加电容,同时接收到预先设定的VREF,以实现基准电压与乘法结果的叠加,并得到最终的运算结果。应当注意的是,此时的VREF为预先设定的,并非进行乘法运算时接入的0V。在一些例子中,该VREF的电压可以通过输出模块540提供。
可以理解的是,图8仅仅示出了一种可能的存算阵列结构,当然,具体阵列的行数可以根据输出数据的位数确定,例如若输出Y bit数据,则存算阵列的行数需要达到2Y个才可实现。
可以看出,当存算单元中运算子模块的开关S2闭合、开关S1断开时,同一列上的复用电容可以看作为CAP DAC的电容。而当开关S2断开、开关S1闭合时,每一个复用电容又是独立的,可以存储每个存算单元的运算结果。
结合图5、图6和图8可以看出,对于存算阵列511中的每一列存算单元,其运算结果可以输出至输出模块540中。在一个示例中,输出模块540可以包括至少一个模数转换子模块541和移位加法子模块542。其中,每个模数转换子模块541可以包括比较器5411、SAR逻辑子模块5412和基准电压反馈子模块5413。对于输出模块540中的每个模数转换子模块541,可以与存算阵列511中的各列存算单元相对应,也就是说,存算阵列511中各列存算单元的运算结果,可以分别输入对应的模数转换子模块541中。
在一个例子中,比较器5411可以接收存算阵列511中相应列的运算结果。然后,将该运算结果与预先配置的参考电压进行比较,以确定比较结果。例如,若运算结果大于等于参考电压,则比较结果为高电平;若运算结果小于参考电压,则比较结果为低电平。当然,在一些例子中,也可以若运算结果大于等于参考电压,设定比较结果为低电平;若运算结果小于参考电压,则比较结果为高电平,本申请在此不作限定。或者。SAR逻辑子模块5412会将运算结果即高电平或低电平转换为逻辑输出值,即可以设定高电平为1,低电平为0。当然在又一些例子中,也可以设定高电平为0,低电平为1,本申请不做限定。此时,SAR逻辑子模块5412可以将该逻辑输出值反馈给基准电压反馈子模块5413。基准电压反馈子模块5413可以根据反馈的数字信号调整反馈信号,以便用于下一次运算时调整叠加电容的电容量。当然,SAR逻辑子模块5412还可以将该逻辑输出值发送至移位加法子模块542中进行数字域的移位加法运算。可以理解的是,具体移位加法运算的过程可以参考现有方式,本申请不再赘述。
可以理解的是,SAR逻辑子模块5412输出的逻辑输出值仅为1bit,因此经过多次运算后,移位加法子模块542可以根据同一个模数转换子模块541输出的多个1bit逻辑输出值进行移位,以得到相应的多bit数字信号。然后,将各个模数转换子模块541输出的多bit数字信号进行相加,以得到数字输出信号。
之后,输出模块540可以将该数字输出信号进行输出。
在一些例子中,当存算阵列模块510处于存储模式时,存算阵列模块510可以接收读写模块530输入的待存储信息,并将该待存储信息存储至存算阵列511中相应存算单元的存储子模块中。例如可以通过BL、BLB和WL存储待存储信息。具体存储过程可以参考现有方式,本申请不再赘述。
可以理解,上述图4至图8所描述的方案中,全局控制模块520输出的控制信号,会根据预先设定的时序逻辑进行输出,以实现在不同时刻控制相应开关并完成对应逻辑。
通常情况下,一个8bit SAR ADC的面积通常由采样保持模块的面积、CAP DAC的面积、比较器的面积以及SRA逻辑模块的面积决定,其中CAP DAC的面积占主导,本申请图4至图8所描述的方案可以省去CAP DAC以及采样保持模块的面积开销,相比于现有方式设计的芯片面积具有明显优势。
本申请中通过复用电容,使得运算模块不仅用于运算,还可以用作CAP DAC。使得ADC的面积极大地缩小。并且本申请的存算一体芯片采用了紧凑型的存算单元结构设计,例如6T3S1C的结构,从而适用于相匹配的紧凑型芯片的控制逻辑,无需再次单独开发。同时,本申请通过存算阵列构成了CAP DAC的不同电容比例,可以完美适应不同叠加电容的需求。
在另一个示例中,基于图4至图8所描述的方案,存算单元还可以具有多个并联的存储子模块。例如图9所示出的另一种存算单元结构。可以看出,与图7相比,多个存储子模块可以构成一个存储子阵列。该存储子阵列中的多个存储子模块的BL相互连接,以及和该存储子阵列中的多个存储子模块的BLB相互连接。存储子阵列中的每个存储子模块具有独立的本地字线(local word line,LWL),以在运算模式下可以选择对应的权重W。在一些例子中,存储子阵列中的存储子模块仍然可以采用6T SRAM,则构成的存储子阵列可以为SRAM子阵列。在一些方案中,该存算单元的结构可以认为是N’*6T+3S1C结构。N’*6T表示具有N’个6T SRAM,3S1C表示具有3个开关和1个复用电容。
在图9所示出的方案中,由于单个存算单元具有更多的存储子模块,因此在存储模式下可以存储更多待存储信息。当然,在运算模式下,仍然仅选择存储子阵列中的某一个存储子模块参与运算,即提供运算过程中需要的权重W。
图10则示出了另一种存算阵列结构示意图。与图8相类似,区别在于图10中的存算单元为图9所示出的具有存储子阵列的存算单元。而存算单元各端口的连接关系均类似,在此不再赘述。可以看出,图10中具有存储子阵列的存算单元仍然可以按照预设比例进行分组,以实现将存算单元中的复用电容作为CAP DAC的电容。图10以复用为4bit CAP DAC为例示意,将每列的存算单元分为5组,电容比例为8:4:2:1:1。当然,这仅为一种可能的分组情况,具体可以根据实际需要输出的数字输出信号大小,确定存算阵列511中存算单元的行数,并按照预设比例进行分组,本申请不做限定。
图9和图10的方案与图7、图8的方案相比,采用了子阵列共享运算子模块的设计,该方案可以使用芯片厂商(foundry)提供的6T SRAM,片上的存储容量可以做到更高。图9和图10的方案中单个存储子模块面积约为图7、图8的方案中单个存储子模块面积的1/4。
通过图4至图11所描述的方案,通过复用存算单元中的复用电容为作为SAR ADC中CAP DAC的电容,因此,在存算阵列511与输出模块540之间具有一个双向的传输端口。其中,VOUT为运算结果与VREF的叠加输出,VOUT电压会连接到比较器5411的输入端与预先配置的参考电压进行比较,根据比较的结果SAR逻辑子模块5412会将输出值传输至基准电压反馈子模块5413,并产生反馈信号反馈至存算阵列511。以便下一次运算后可以得到一个新的VOUT,并再次与参考电压进行比较。通过逐次比较得到最终的量化结果,并进行移位加法计算得到数字输出信号。由于位于输出模块540中的SAR ADC实际上只包含比较器5411和SAR逻辑子模块5412,相比与传统的SAR ADC(包含采样保持、CAP DAC、比较器和SAR逻辑)面积有显著降低,功耗也略有降低,可以提高芯片的算力和能效比。
可以理解的是,图4至图11所描述的存算一体芯片方案可以应用于语音检测、图像检测等场景,当然还可以应用于类脑芯片,本申请不做限定。
图11为本申请实施例提供的一种存算一体芯片的操作方法流程图。
如图11所示,本申请还提供了一种存算一体芯片的操作方法,该方法可以应用在图4至图10所描述的存算一体芯片上。其中,存算一体芯片具有开关网络和复用电容。方法可以包括一下步骤:
S1101,根据预先配置的控制信号控制所述开关网络中各开关的闭合,以使所存算一体芯片处于存储模式或运算模式。
在一个例子,当存算一体芯片处于运算模式时,可以执行S1102。当存算一体芯片处于存储模式时,可以执行S1105。
S1102,接收模拟输入信号。
在一个可能的实施例中,接收模拟输入信号,可以包括:接收待计算的数字输入信号。然后,将数字输入信号转换为模拟输入信号。
S1103,根据控制信号和权重完成对模拟输入信号的运算,并根据复用电容和反馈信号叠加基准电压,以确定运算结果。
其中,运算结果存储在复用电容中,权重为预先输入并存储的,基准电压为预先设定的,反馈信号为存算一体芯片根据上一次的运算结果确定的。
在一个可能的实施例中,根据所述控制信号和权重完成对模拟输入信号的运算,并根据复用电容和反馈信号叠加基准电压,以确定运算结果,可以包括:根据控制信号,实现模拟信号和权重的乘法运算,确定乘法结果。其中,乘法结果存储在所述复用电容中。然后,根据反馈信号从复用电容中确定叠加电容。再基于叠加电容,将基准电压与乘法结果进行叠加,确定运算结果。
S1104,将运算结果进行数字化并移位相加,确定数字输出信号,并将数字输出信号进行输出。
在一个可能的实施例中,将运算结果进行数字化并移位相加,确定数字输出信号,可以包括:将运算结果与预先配置的参考电压进行比较,确定比较结果。然后,根据比较结果确定逻辑输出值。对逻辑输出值进行移位相加,确定数字输出信号。
在一个可能的实施例中,方法还可以包括:根据逻辑输出值确定用于下一次基准电压叠加的反馈信号。
S1105,接收待存储信息,并将待存储信息进行存储。
可以理解的是,图11中的具体实现过程可以参考图4至图10中相应的描述,本申请不再赘述。
图12为本申请实施例提供的一种计算设备示意图。
如图12所示,本申请还提供一种计算设备1200。该计算设备1200可以是服务器或者终端设备。
在一些例子中,终端设备可以包括但不限于手机、智能电视、智能音响、可穿戴设备、平板电脑、桌面型计算机、电脑一体机、手持计算机、笔记本电脑、服务器、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personaldigitalassistant,PDA)、膝上型计算机(laptop)、移动电脑、增强现实(augmentedreality,AR)设备、虚拟现实(virtual reality,VR)设备和/或人工智能(artificialintelligence,AI)设备等任意终端设备或便携式终端设备。
计算设备1200包括处理器1210、存储器1220以及总线1230。其中,处理器1210、存储器1220可以通过总线1230实现彼此之间的通信连接。
处理器1210读取存储器1220存储的程序和数据集合以执行前述图11所执行的方法。
当然,处理器1210可以是图4至图10中所描述的存算一体芯片。
本申请提出一种存算一体芯片的设计方案,该方案可以复用存算单元中的电容作为SAR ADC的CAP DAC,也就是可以将SAR ADC中的电容型ADC模块去掉,从而极大的减小ADC的面积开销。这样存算阵列中的每一列输出都能带一个独立的ADC,且ADC面积占比不大,极大的提高了芯片算力。同时,本申请的存算阵列模块可以对数据输入模块输出的模拟信号进行采样而不是现有方式中BL输入的数字信号进行采样,可以将ADC中采样保持模块去掉,进一步减小功耗开销,提高计算效率。
本申请提出了两种存算单元的设计方案,其中一种存算单元可以应用6T3S1C结构不仅可用于存储数据、计算数据,其中的复用电容还能够用作SAR ADC中的CAP DAC,用于量化计算结果。而另一种具有存储子阵列的存算单元,采用多个存储子模块共享一个运算子模块,可以减小存储子模块的面积开销,提高片上存储的容量。
本申请相比于图5所示的现有方案,现有方案每一列输出是一个8bit的SAR ADC,SAR ADC中电容阵列面积开销大。而本申请采用复用电容的设计方案,运算子模块不仅可以做运算还可以用作CAP DAC,ADC面积极大缩小。同时,单元结构不同,现有方案为10T1C结构,本申请为6T3S1C结构。并且阵列结构不同,本申请为实现CAP DAC的功能,对同一列单元进行分组连接,构成CAP DAC电容比例。使得由于底层单元于阵列的差异,相应的宏(macro)设计、控制也有所不同,例如本申请中的输出模块540会发送反馈信号到存算阵列511。
本申请相比于图6和图7所示的现有方案,现有方案每一列输出是一个SAR ADC+单斜率(single slope,SS)ADC的混合结构(即改进版ADC)。虽然减小了电容阵列的面积,但是需要额外增加single slope的控制逻辑,使得ADC的速度会有所降低。而本申请采用复用电容的设计方案,运算子模块不仅可以做运算还可以用作CAP DAC,ADC面积极大缩小。虽然该方案对SAR ADC做了一定优化,但仍需CAP DAC以及还需额外引入SS ADC的控制逻辑。面积开销并未减少,同时降低ADC效率。本申请与图6和图7所示的现有方案的单元结构也不同,该现有方案是多个6T SRAM+SILMC+GSW构成的子阵列结构,而本申请采用了6T3S1C的单元结构,属于一种紧凑型芯片。并且阵列结构不同本申请为实现CAP DAC的功能,对同一列单元进行分组连接,构成CAP DAC电容比例。使得由于底层单元于阵列的差异,相应的宏(macro)设计、控制也有所不同,例如本申请中的输出模块540会发送反馈信号到存算阵列511。
本申请为提高芯片单位面积算力,提出复用电容的存算一体芯片设计方案,节省的SAR ADC的面积开销。在一些例子中,设计了6T3S1C结构以及存算阵列结构来实现复用电容的功能。在又一些例子中,为提高片上存储密度,还提出了共享运算子模块的存储子阵列及存算阵列结构。
应当理解,本申请所涉及的芯片还可以用于类脑芯片等相应的芯片上,本申请不做限定。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(英文:non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:magnetic tape),软盘(英文:floppy disk),光盘(英文:optical disc)及其任意组合。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (17)
1.一种存算一体芯片,其特征在于,所述芯片包括:存算阵列模块、读写模块、全局控制模块和输出模块,其中,所述存算阵列模块包括开关网络和复用电容;
所述全局控制模块,用于根据预先配置的控制信号控制所述开关网络中各开关的闭合,以使所述存算阵列模块处于存储模式或运算模式;
当所述存算阵列模块处于所述运算模式时,
所述存算阵列模块,用于接收模拟输入信号;
所述存算阵列模块还用于,根据所述控制信号和权重完成对所述模拟输入信号的运算,并根据所述复用电容和反馈信号叠加基准电压,以确定运算结果,其中,所述运算结果存储在所述复用电容中,所述权重为所述读写模块预先输入并存储的,所述基准电压、所述反馈信号通过所述输出模块提供;
所述输出模块,用于将所述运算结果进行数字化并移位相加,确定数字输出信号,并将所述数字输出信号进行输出。
2.如权利要求1所述的芯片,其特征在于,所述存算阵列模块由具有多个存算单元的存算阵列构成,每个所述存算单元包括存储子模块和运算子模块;
所述存储子模块,用于接收并存储所述权重;
所述运算子模块,用于接收模拟输入信号;
所述运算子模块还用于,根据所述控制信号,实现所述模拟输入信号和所述权重的乘法运算,确定乘法结果,其中,所述乘法结果存储在所述复用电容中;
所述运算子模块还用于,根据所述反馈信号从所述复用电容中确定叠加电容;
所述运算子模块还用于,基于所述叠加电容,将所述基准电压与所述乘法结果进行叠加,确定所述运算结果。
3.如权利要求2所述的芯片,其特征在于,所述存算阵列中位于同一列的多个存算单元的输出电压端口互连;以及,
所述存算阵列中位于同一列的多个存算单元根据预设比例分为多个组,每组中的多个存算单元的基准电压端口互连。
4.如权利要求2或3所述的芯片,其特征在于,所述存算单元包括由多个所述存储子模块构成的存储子阵列。
5.如权利要求1-4任意一项所述的芯片,其特征在于,所述输出模块包括:至少一个模数转换子模块和移位加法子模块,每个所述模数转换子模块包括比较器、逐次逼近逻辑子模块和基准电压反馈子模块;
所述比较器,用于将所述运算结果与预先配置的参考电压进行比较,确定比较结果;
所述逐次逼近逻辑子模块,用于根据所述比较结果确定逻辑输出值;
所述基准电压反馈子模块,用于根据所述逻辑输出值确定所述反馈信号,并将所述反馈信号反馈发送至所述存算阵列模块;
所述移位加法子模块,用于对所述逻辑输出值进行移位相加,确定所述数字输出信号。
6.如权利要求1-5任意一项所述的芯片,其特征在于,当所述存算阵列模块处于所述存储模式时,
所述存算阵列模块还用于接收所述读写模块输入的待存储信息,并将所述待存储信息进行存储。
7.如权利要求6所述的芯片,其特征在于,所述存算阵列模块包括多个存算单元构成的存算阵列,每个所述存算单元包括存储子模块;
所述存储子模块,用于接收并存储所述待存储信息。
8.如权利要求1-7任意一项所述的芯片,其特征在于,所述芯片还包括:
数据输入模块,用于将待计算的数字输入信号转换为所述模拟输入信号,并将所述模拟输入信号输入至所述存算阵列模块。
9.一种存算一体芯片的操作方法,其特征在于,所述方法应用于权利要求1所述的存算一体芯片,其中,所述存算一体芯片具有开关网络和复用电容;所述方法包括:
根据预先配置的控制信号控制所述开关网络中各开关的闭合,以使所述存算一体芯片处于存储模式或运算模式;
当所述存算一体芯片处于所述运算模式时,
接收模拟输入信号;
根据所述控制信号和权重完成对所述模拟输入信号的运算,并根据所述复用电容和反馈信号叠加基准电压,以确定运算结果,其中,所述运算结果存储在所述复用电容中,所述权重为预先输入并存储的,所述基准电压为预先设定的,所述反馈信号为所述存算一体芯片根据上一次的所述运算结果确定的;
将所述运算结果进行数字化并移位相加,确定数字输出信号,并将所述数字输出信号进行输出。
10.如权利要求9所述的方法,其特征在于,所述根据所述控制信号和权重完成对所述模拟输入信号的运算,并根据所述复用电容和反馈信号叠加基准电压,以确定运算结果,包括:
根据所述控制信号,实现所述模拟信号和所述权重的乘法运算,确定乘法结果,其中,所述乘法结果存储在所述复用电容中;
根据所述反馈信号从所述复用电容中确定叠加电容;
基于所述叠加电容,将所述基准电压与所述乘法结果进行叠加,确定所述运算结果。
11.如权利要求9或10所述的方法,其特征在于,所述将所述运算结果数字化并进行移位相加,确定数字输出信号,包括:
将所述运算结果与预先配置的参考电压进行比较,确定比较结果;
根据所述比较结果确定逻辑输出值;
对所述逻辑输出值进行移位相加,确定所述数字输出信号。
12.如权利要求11所述的方法,其特征在于,所述方法还包括:
根据所述逻辑输出值确定用于下一次所述基准电压叠加的反馈信号。
13.如权利要求9-12任意一项所述的方法,其特征在于,当所述存算一体芯片处于所述存储模式时,
接收待存储信息,并将所述待存储信息进行存储。
14.如权利要求9-13任意一项所述的方法,其特征在于,所述接收模拟输入信号,包括:
接收待计算的数字输入信号;
将所述数字输入信号转换为所述模拟输入信号。
15.一种计算设备,其特征在于,所述设备包括权利要求1所述的存算一体芯片和存储器:
所述存算一体芯片,用于与存储器耦合,以及读取并执行存储在所述存储器中的指令;
当所述存算一体芯片运行时执行所述指令,以实现所述权利要求9-14中任意一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机实现如权利要求9-14任意一项所述的方法。
17.一种包含指令的计算机,其特征在于,当所述计算机运行时,执行如权利要求9-14任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210282818.1A CN116821048A (zh) | 2022-03-22 | 2022-03-22 | 一种存算一体芯片及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210282818.1A CN116821048A (zh) | 2022-03-22 | 2022-03-22 | 一种存算一体芯片及其操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116821048A true CN116821048A (zh) | 2023-09-29 |
Family
ID=88139747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210282818.1A Pending CN116821048A (zh) | 2022-03-22 | 2022-03-22 | 一种存算一体芯片及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116821048A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608519A (zh) * | 2024-01-24 | 2024-02-27 | 安徽大学 | 基于10t-sram的带符号乘法与乘累加运算电路 |
-
2022
- 2022-03-22 CN CN202210282818.1A patent/CN116821048A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608519A (zh) * | 2024-01-24 | 2024-02-27 | 安徽大学 | 基于10t-sram的带符号乘法与乘累加运算电路 |
CN117608519B (zh) * | 2024-01-24 | 2024-04-05 | 安徽大学 | 基于10t-sram的带符号乘法与乘累加运算电路 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209375B (zh) | 一种基于radix-4编码和差分权重存储的乘累加电路 | |
US9800256B2 (en) | Semiconductor device including integrator and successive approximation register analog-to-digital converter and driving method of the same | |
EP3754561A1 (en) | Reconfigurable memory compression techniques for deep neural networks | |
CN111033438B (zh) | 运算装置及电子设备 | |
CN115048075A (zh) | 基于电容耦合的sram存算一体芯片 | |
CN106372723B (zh) | 基于神经网络芯片的存储结构及其存储方法 | |
US20220374694A1 (en) | Neural network circuit and neural network system | |
CN114707647B (zh) | 适用于多精度神经网络的精度无损存算一体装置及方法 | |
CN116821048A (zh) | 一种存算一体芯片及其操作方法 | |
CN114063975B (zh) | 一种基于sram存内计算阵列的计算系统及方法 | |
US11764801B2 (en) | Computing-in-memory circuit | |
CN116092553A (zh) | 一种兼具乘加功能的存储器 | |
US20210150328A1 (en) | Hierarchical Hybrid Network on Chip Architecture for Compute-in-memory Probabilistic Machine Learning Accelerator | |
KR102318819B1 (ko) | 멀티 비트 가중치의 연산을 위한 인 메모리 장치 | |
CN114330694A (zh) | 实现卷积运算的电路及其方法 | |
CN113031912B (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN115629734A (zh) | 并行向量乘加器的存内计算装置和电子设备 | |
Guo et al. | VCCIM: a voltage coupling based computing-in-memory architecture in 28 nm for edge AI applications | |
CN117828253B (zh) | 一种多比特矩阵向量乘法计算单元、阵列及其工作方法 | |
US12009054B2 (en) | Computing-in-memory circuitry | |
CN110717580B (zh) | 面向二值化神经网络的基于电压调制的计算阵列 | |
WO2023124561A1 (zh) | 电路、乘加器和电路优化方法 | |
US20230289066A1 (en) | Reconfigurable multibit analog in-memory computing with compact computation | |
CN220983883U (zh) | 矩阵计算装置、小芯片设备及人工智能加速器装置 | |
Lin et al. | An 11T1C Bit-Level-Sparsity-Aware Computing-in-Memory Macro With Adaptive Conversion Time and Computation Voltage |
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 |