CN113672860A - 一种正负数兼容的存内运算方法、乘加运算装置及其应用 - Google Patents
一种正负数兼容的存内运算方法、乘加运算装置及其应用 Download PDFInfo
- Publication number
- CN113672860A CN113672860A CN202110984101.7A CN202110984101A CN113672860A CN 113672860 A CN113672860 A CN 113672860A CN 202110984101 A CN202110984101 A CN 202110984101A CN 113672860 A CN113672860 A CN 113672860A
- Authority
- CN
- China
- Prior art keywords
- bias
- input
- difference
- weight
- array
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/5443—Sum of products
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明涉及存储器技术领域,公开了一种正负数兼容的存内运算方法、乘加运算装置及其应用,其中方法包括基于由存储运算单元组成的存储阵列,对原输入数据和原权重选择进行差分、偏置配对处理运算或者全偏置处理运算,包括采用差分输入和偏置权重匹配或者差分权重和偏置输入匹配或偏置输入和偏置权重匹配进行乘法运算,并在此基础上进行乘加运算;本发明能够可以高效地完成包括负数乘法在内的存内计算,创新的电路结构设计能够获得更高的通用性,达到更好的计算性能和性能功耗比,有着切实意义上的实用价值。
Description
技术领域
本发明涉及存储器术领域,具体涉及一种正负数兼容的存内运算方法、乘加运算装置及其应用。
背景技术
存内计算被广泛应用于人工智能的矩阵运算加速,常见的有向量矩阵乘法,以及卷积运算。对于以计算密集且存储密集为特点的人工智能算法而言,存内运算被认为是突破现有计算机架构的新范式。
由于物理特性的影响,存内计算多处理的是非负数的计算。但实际人工智能算法中,为了追求更高的准确度,常常需要进行负数运算,如何高效地进行负数运算,是存内计算的关键。
现有的可以处理负数计算的存内结构器面积较大、计算方法较为复杂,计算应用规模受限,亟需改进。
发明内容
针对现有技术的不足,本发明提供一种正负数兼容的存内运算方法、装置及应用,相比于现有的技术能够在不增加面积成本的前提下,将计算性能提升了一倍,达到了更好的计算性能和性能功耗比。
本发明解决技术问题采用如下技术方案:
本发明提供一种正负数兼容的存内运算方法所述方法包括:
基于由存储运算单元组成的存储阵列,对原输入数据和原权重选择进行差分、偏置配对处理运算或者全偏置处理运算,其中,差分、偏置配对处理运算包括:
若将原输入数据配置为两路差分输入,则设定参考权重偏置,对原权重进行偏置处理得到偏置权重,基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集差分输入与偏置权重和参考权重偏置的乘积信号,并以差值形式输出;
若将原权重配置为两路差分权重,则设定参考输入偏置,对原输入数据进行偏置处理得到偏置输入,基于两路差分权重配置一对存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与两路差分权重的乘积信号,并以差值形式输出;
全偏置处理运算包括:设定参考权重偏置和参考输入偏置,对原权重和原输入数据分别进行偏置处理得到偏置权重和偏置输入,基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与偏置权重和参考权重偏置的乘积信号,分组作差后输出。
优选地,所述存储阵列为NOR Flash存储阵列;
所述原输入数据为待运算数字输入通过DAC模块转换的模拟信号;
所述以差值形式输出或分组作差后输出还包括将输出的模拟信号经ADC模块转换为数字信号进行输出;
所述配置存储运算单元的阈值电压具体包括:
首先对存储运算单元进行离线标定,获取其初始参数,得到各存储运算单元自身阈值电压VTH随编程操作的变化曲线;
根据偏置权重、参考权重偏置或者两路差分权重以及变化曲线配置对应存储运算单元的阈值电压。
优选地,所述参考权重偏置的设定标准为:原权重为正数权重时,偏置处理后的偏置权重大于参考权重偏置;原权重为负数权重时,偏置处理后的偏置权重小于参考权重偏置;
所述参考输入偏置的设定标准为:原输入数据为正数时,偏置处理后的偏置输入大于参考输入偏置;原输入数据为负数时,偏置处理后的偏置输入小于参考输入偏置。
优选地,所述基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集差分输入与偏置权重和参考权重偏置的乘积信号具体包括:
匹配存储阵列配置偏置列,将两路差分输入分别接入偏置列中两个存储运算单元的输入端,并将两个存储运算单元的阈值电压均按照参考权重偏置配置,采集两个存储运算单元输出端电流信号并以差值形式输出作为差分输入与参考权重偏置的乘积信号;
将两路差分输入分别接入存储阵列中两个存储运算单元的输入端,并将两个存储运算单元的阈值电压均按照偏置权重配置,采集两个存储运算单元输出端电流信号并以差值形式输出作为差分输入与偏置权重的乘积信号。
优选地,所述基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集差分输入与偏置权重和参考权重偏置的乘积信号,并以差值形式输出具体包括:
所述两路差分输入为基于待运算数字输入配置的两路数字输入信号通过DAC模块转换而得;
将两路差分输入分别接入存储阵列中两个存储运算单元的输入端,并将两个存储运算单元的阈值电压均按照偏置权重配置,采集两个存储运算单元输出端电流信号并以差值形式输出作为差分输入与偏置权重的乘积信号;
将两路数字输入信号通过数字电路计算差值;
对参考权重偏置进行模数转换后与两路数字输入信号的差值直接通过数字电路计算,得到偏置乘积信号;
将差分输入与偏置权重的乘积信号通过ADC电路转换为数字信号后,与偏置乘积信号通过数字电路进行差值运算并输出差值结果。
优选地,所述基于两路差分权重配置一对存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与两路差分权重的乘积信号,并以差值形式输出具体包括:
基于两路差分权重设置两个由浮栅场效应晶体管配置的存储运算单元的阈值电压;
将参考输入偏置同时接入两个存储运算单元输入端,并将两输出端相减后转换为数字信号后送入寄存器存储;
再将偏置输入同时接入两个存储运算单元输入端,并将两输出端相减后转换为数字信号后与寄存器中存储的信号通过数字电路进行差值运算并输出差值结果。
优选地,所述基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与偏置权重和参考权重偏置的乘积信号,分组作差后输出具体包括:
匹配存储阵列设置偏置列,并按照参考权重偏置配置偏置列中存储运算单元的阈值电压;
按照偏置权重配置存储阵列中存储运算单元的阈值电压;
将参考输入偏置分别接入存储阵列和偏置列中存储运算单元的输入端,并将两输出端相减后转换为数字信号后送入寄存器存储;
再将偏置输入同时接入存储阵列和偏置列中存储运算单元的输入端,并将两输出端相减后转换为数字信号后与寄存器中存储的信号通过数字电路进行差值运算并输出差值结果。
本发明还提供一种乘加运算装置,包括计算阵列、偏置列、DAC模块、差分模块和ADC模块;
所述计算阵列基于存储运算单元组成,包括匹配设置的第一计算子阵列和第二计算子阵列;其中第一计算子阵列和第二计算子阵列中位于同一行数上的存储运算单元均接入同一输入端,位于同一列数上的存储运算单元均接入同一输出端;
所述偏置列基于存储运算单元组成,包括分别匹配第一计算子阵列和第二计算子阵列设置的第一偏置列和第二偏置列,其中第一偏置列和第二偏置列中的存储运算单元的输出端均归一合并输出,输入端分别接入第一计算子阵列和第二计算子阵列对应行的输入端;
所述DAC配置成用于将待运算数字输入转换为原输入数据,并配置为两路差分输入分别接入第一计算子阵列和第二计算子阵列中位于同行数的输入端;
所述差分模块配置成用于将第一计算子阵列和第二计算子阵列上位于同一列的两个输出端以及第一偏置列和第二偏置列的两个输出端的输出电流信号进行差值运算后输出;
所述ADC模块配置成用于采集差分模块输出的第一计算子阵列和第二计算子阵列中每列输出的差值信号,并分别与第一偏置列和第二偏置列输出的差值信号进行差值运算,并将运算结果分别转换为数字信号输出。
本发明还提供一种乘加运算装置,包括计算阵列、DAC模块、数字运算功能模块、差分模块和ADC模块;
所述计算阵列基于存储运算单元组成,包括匹配设置的第一计算子阵列和第二计算子阵列;其中第一计算子阵列和第二计算子阵列中位于同一行数上的存储运算单元均接入同一输入端,位于同一列数上的存储运算单元均接入同一输出端;
所述DAC配置成用于将待运算数字输入转换为原输入数据,并将配置的两路数字输入信号转换为两路差分输入,分别接入第一计算子阵列和第二计算子阵列中位于同行数的输入端;
所述差分模块配置成用于将第一计算子阵列和第二计算子阵列上位于同一列的两个输出端的输出电流信号进行差值运算后输出;
所述数字运算功能模块包括数字加法器、数字乘法器和数字减法器,其中,
所述数字加法器配置成用于将第一计算阵列和第二计算子阵列中接入的每路数字输入信号累加后分别送入数字减法器中执行减法运算,并将减法运算结果匹配模数转换后的参考权重信号送入数字乘法器执行乘法运算;
所述ADC模块配置成用于采集差分模块输出的第一计算子阵列和第二计算子阵列中每列输出的差值信号并转换为数字信号,并分别匹配数字乘法器输出的乘法运算结果送入数字减法器执行减法运算,同步输出运算结果。
本发明还提供一种乘加运算装置,其特征在于,包括计算阵列、权重差分模块、DAC模块、寄存器模块、数字减法器、差分模块和ADC模块;
所述计算阵列基于存储运算单元组成,包括匹配设置的第一计算子阵列和第二计算子阵列;其中第一计算子阵列和第二计算子阵列中位于同一行数上的存储运算单元均接入同一输入端,位于同列数上的存储运算单元输出端分别归一化后匹配接入差分模块;
所述权重差分模块配置成用于将原权重配置为两路差分权重,并基于两路差分权重分别配置第一计算子阵列和第二计算子阵列中位于同行数且同列数上的存储运算单元的阈值电压;
所述DAC模块用于将待运算数字输入转换为原输入数据以进行后续处理运算;
所述差分模块配置成用于将第一计算子阵列和第二计算子阵列中位于同列数的存储运算单元输出端的输出电流信号进行差值运算后输出;
所述ADC模块配置成用于采集差分模块输出的差值信号并转换为数字信号;
所述寄存器模块配置成用于存储将参考输入偏置接入计算阵列输入端时,ADC模块输出的数字信号数据;
所述数字减法器配置成用于将偏置输入接入存储阵列输入端时ADC模块输出的数字信号与匹配寄存器模块存储的数据执行减法运算,同步输出运算结果。
本发明还提供一种乘加运算装置,包括计算阵列、偏置列、DAC模块、寄存器模块、数字减法器、差分模块和ADC模块;
所述计算阵列基于存储运算单元组成,且位于同一行上的存储运算单元均接入同一输入端,位于同一列上的存储运算单元均接入同一输出端;
所述偏置列匹配计算阵列设置并基于存储运算单元组成,其中各存储运算单元的输出端均归一合并输出,输入端分别接入计算阵列对应行的输入端;
所述DAC模块用于将待运算数字输入转换为原输入数据以进行后续处理运算;
所述差分模块配置成用于将计算阵列每列输出端和偏置列输出端的输出电流信号进行差值运算后输出;
所述ADC模块配置成用于采集差分模块输出的差值信号并转换为数字信号;
所述寄存器模块配置成用于存储将参考输入偏置接入计算阵列输入端时,ADC模块输出的数字信号数据;
所述数字减法器配置成用于将偏置输入接入存储阵列输入端时ADC模块输出的数字信号与对应寄存器模块存储的数据执行减法运算,同步输出运算结果。
本发明还提供的一种芯片,包含如前述的乘加运算装置,所述乘加运算装置被设置为按照预设程序执行包括如前述的的存内运算方法。
与现有技术相比,本发明具有如下的有益效果:
本发明提出的一种正负数兼容的存内运算方法,采用差分输入和偏置权重匹配或者差分权重和偏置输入匹配进行乘法运算,其所需计算单元比现有的方案少,在电路面积和计算性能上做到了最优化的处理,基于现有存储阵列更高效准确地实现模拟域的正负数计算,能够获得更高的计算性能和计算准确度,并在此基础上设计了全新的乘加运算结构,能够高效的进行正负数的乘加运算,提高了本发明的兼容性和扩展性,均能够获得更好的计算性能和性能功耗比。
关于本发明相对于现有技术,其他突出的实质性特点和显著的进步在实施例部分进一步详细介绍。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为实施例6中乘加运算装置的结构示意图;
图2为实施例6中第一计算阵列和第一偏置列电路结构示意图;
图3为实施例6中第二计算阵列和第二偏置列电路结构示意图;
图4为实施例6中差分模块和ADC模块的电路连接示意图;
图5为实施例7中乘加运算装置的结构示意图;
图6为实施例7中第一计算阵列与DAC模块和数字加法器电路结构示意图;
图7为实施例7中第二计算阵列与DAC模块和数字加法器电路结构示意图;
图8为实施例7中差分模块与ADC以及数字减法器和数字乘法器的电路连接示意图;
图9为实施例8中乘加运算装置的结构示意图;
图10为实施例8中输入为参考输入偏置时装置的电路结构示意图;
图11为实施例8中输入为偏置输入矩阵时装置的电路结构示意图;
图12为实施例9中乘加运算装置的结构示意图;
图13为实施例9中输入为参考输入偏置时装置的电路结构示意图;
图14为实施例9中输入为参考输入偏置时差分模块与ADC模块以及寄存器模块的电路结构示意图;
图15为实施例9中输入为偏置输入矩阵时装置的电路结构示意图;
图16为实施例9中输入为偏置输入矩阵时差分模块与ADC模块、寄存器模块和数字减法器模块的电路连接结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在说明书及权利要求书当中使用了某些名称来指称特定组件。应当理解,本领域普通技术人员可能会用不同名称来指称同一个组件。本申请说明书及权利要求书并不以名称的差异作为区分组件的方式,而是以组件在功能上的实质性差异作为区分组件的准则。如在本申请说明书和权利要求书中所使用的“包含”或“包括”为一开放式用语,其应解释为“包含但不限定于”或“包括但不限定于”。具体实施方式部分所描述的实施例为本发明的较佳实施例,并非用以限定本发明的范围。
在具体说明各实施例之前需要说明的是:各实施例中的存储阵列为NOR Flash存储阵列,每个存储运算单元能实现其输入和权值的乘积运算输出,也即每个存储运算单元为单个浮栅场效应晶体管,通过该浮栅场效应晶体管可以实现乘法运算,例如:由于单个存储运算单元的漏端电流ID受自身阈值电压VTH和各端电压的控制,ID=K(VGS-VTH)VDS,其中VGS为栅源电压,VDS为漏源电压,导电因子K=(μC_ox W)/L,对确定工艺及尺寸的存储运算单元,其导电因子K为定值,同时通过编程(PGM)和擦除(ERS)操作,可以控制Flash浮栅中电荷量的多少,进而控制存储运算单元的阈值电压VTH大小,从而可以以(VGS-VTH)为乘数(权值)、VDS(输入)为被乘数实现乘法运算,运算结果以漏端电流形式输出;当然也可以基于浮栅场效应晶体管采用其他方式实现乘法运算功能,在本发明的后续实施例中为了重点说明正负数兼容的独特设计,因此采用最简化的乘法运算进行举例说明,也即输入接入浮栅场效应晶体管栅极,权值直接映射浮栅场效应晶体管的阈值电压,输出为浮栅场效应晶体管的漏端,同时还要配置使得浮栅场效应晶体管工作在饱和区,此种方式可以实现最简单的1比特的乘法,此仅为一种示例说明,至于其他多比特的乘法可以根据需要选择合适的参数设定方式和单个浮栅场效应晶体管输入输出接入方式,在此不做赘述。
实施例1
请参照图1-6,本实施例的一种正负数兼容的存内运算方法,包括:
基于由存储运算单元组成的存储阵列,对原输入数据和原权重选择进行差分、偏置配对处理运算或者全偏置处理运算,即在本发明的运算方法中选择采用差分输入和偏置权重匹配或者差分权重和偏置输入匹配或者偏置输入和偏置权重匹配进行乘法运算:
如果采用差分输入和偏置权重匹配,则将原输入数据配置为两路差分输入,此处原输入数据为待运算数字输入通过DAC模块转换的模拟信号;设定参考权重偏置,对原权重进行偏置处理得到偏置权重;本实施例中参考权重偏置的设定标准为:原权重为正数权重时,偏置处理后的偏置权重大于参考权重偏置;原权重为负数权重时,偏置处理后的偏置权重小于参考权重偏置;
基于偏置权重配置存储运算单元的阈值电压,本实施例中阈值电压的配置包括:
首先对存储阵列中各存储运算单元进行离线标定,获取其初始参数,得到存储阵列中各存储运算单元自身阈值电压VTH随编程操作的变化曲线;根据偏置权重或者两路差分权重以及变化曲线配置对应存储运算单元的阈值电压;
根据偏置权重、参考权重偏置或者两路差分权重以及变化曲线配置对应存储运算单元的阈值电压;
分别采集差分输入与偏置权重和参考权重偏置的乘积信号,并以差值形式输出,其中以差值形式输出还包括将输出的模拟信号经ADC模块转换为数字信号进行输出;
例如实际要计算的是原输入数据f与原权重w的乘积,现在将输入数据转换为两路差分输入fa和fb,即f=fa-fb,设置参考权重偏置为wref,则得到偏置权重w1,即w=w1-wref,则f·w即为(fa-fb)·(w1-wref),也即(fa-fb)·w1-(fa-fb)·wref,即为差分输入与偏置权重和参考权重偏置的乘积信号以差值形式输出的结果。
如果将原权重配置为两路差分权重,则设定参考输入偏置,对原输入数据进行偏置处理得到偏置输入,此时参考输入偏置的设定标准为:原输入数据为正数时,偏置处理后的偏置输入大于参考输入偏置;原输入数据为负数时,偏置处理后的偏置输入小于参考输入偏置。
基于两路差分权重配置一对存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与两路差分权重的乘积信号,并以差值形式输出,此处以差值形式输出也包括将输出的模拟信号经ADC模块转换为数字信号进行输出。
例如实际要计算的是原输入数据f与原权重w的乘积,现在将权重w使用两个存储运算单元的差值表示,即w=wip-win,设定参考输入偏置为fref,则得到偏置输入fr,即f=fr-fref,则f·w即为(fr-fref)·(wip-win),也即fr·(wip-win)-fref·(wip-win),即为偏置输入和参考输入偏置与两路差分权重的乘积信号以差值形式输出的结果。
如果采用全偏置处理运算,则设定参考权重偏置和参考输入偏置,对原权重和原输入数据分别进行偏置处理得到偏置权重和偏置输入,此时参考输入偏置的设定标准为:原输入数据为正数时,偏置处理后的偏置输入大于参考输入偏置;原输入数据为负数时,偏置处理后的偏置输入小于参考输入偏置;参考权重偏置的设定标准为:原权重为正数权重时,偏置处理后的偏置权重大于参考权重偏置;原权重为负数权重时,偏置处理后的偏置权重小于参考权重偏置;基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与偏置权重和参考权重偏置的乘积信号,分组作差后输出
例如实际要计算的是原输入数据f与原权重w的乘积,现在设置参考权重偏置为wref,则得到偏置权重w1,即w=w1-wref,设定参考输入偏置为fref,则得到偏置输入fr,即f=fr-fref,则f·w即为(fr-fref)·(w1-wref),也即fr·(w1-wref)-fref·(w1-wref),即为偏置输入和参考输入偏置与偏置权重和参考输入偏置的乘积信号分组做差输出的结果。
实施例2
本实施例提供的一种正负数兼容的存内运算方法,是基于实施例1上的优选方案,因此本实施例中与实施例1中类似地方,不做赘述,请参考实施例1中的内容;
如实施例1所述:例如实际要计算的是原输入数据f与原权重w的乘积,现在将输入数据转换为两路差分输入fa和fb,即f=fa-fb,设置参考权重偏置为wref,则得到偏置权重w1,即w=w1-wref,则f·w即为(fa-fb)·(w1-wref),也即(fa-fb)·w1-(fa-fb)·wref,即为差分输入与偏置权重和参考权重偏置的乘积信号以差值形式输出的结果。
本实施例的正负数兼容的存内运算方法即实现上述运算功能,即选用的是差分输入和偏置权重匹配实现乘法,具体包括:
匹配存储阵列配置偏置列,其中偏置列有单列存储运算单元组成,每个存储运算单元能实现其输入和权值的乘积运算,将两路差分输入fa和fb分别接入偏置列中两个存储运算单元的输入端,并将两个存储运算单元的阈值电压均按照参考权重wref偏置配置,采集两个存储运算单元输出端电流信号即为fa·wref和fb·wref,并以差值形式输出作为差分输入与参考权重偏置的乘积信号(fa-fb)·wref;
将两路差分输入fa和fb分别接入存储阵列中两个存储运算单元的输入端,并将两个存储运算单元的阈值电压均按照偏置权重w1配置,采集两个存储运算单元输出端电流信号即fa·w1和fb·w1并以差值形式输出作为差分输入与偏置权重的乘积信号(fa-fb)·w1;
分别采集差分输入与偏置权重和参考权重偏置的乘积信号即为(fa-fb)·w1和(fa-fb)·wref,并以差值形式输出即为原输入数据f与原权重w的乘积结果。
实施例3
本实施例提供的一种正负数兼容的存内运算方法,是基于实施例1上的优选方案,因此本实施例中与实施例1中类似地方,不做赘述,请参考实施例1中的内容;
如实施例1所述:例如实际要计算的是原输入数据f与原权重w的乘积,现在将输入数据转换为两路差分输入fa和fb,即f=fa-fb,设置参考权重偏置为wref,则得到偏置权重w1,即w=w1-wref,则f·w即为(fa-fb)·(w1-wref),也即(fa-fb)·w1-(fa-fb)·wref,即为差分输入与偏置权重和参考权重偏置的乘积信号以差值形式输出的结果。
本实施例的一种正负数兼容的存内运算方法即实现上述运算功能,即选用的是差分输入和偏置权重匹配实现乘法,由于所有的参考权重值wref相同且为固定值,故上述计算公式(fa-fb)·w1-(fa-fb)·wref中第二项与实际算法无关,可以采用数字功能电路实现第二项的内容,因此无需设置偏置列,并且由于计算最终的结果还是需要通过DAC模块转换为数字信号输出,基于此设计了本实施例的存内运算方法,具体包括:
本实施例中两路差分输入fa和fb为基于待运算数字输入配置的两路数字输入信号fDa和fDb通过DAC模块转换而得;
将两路差分输入fa和fb分别接入存储阵列中两个存储运算单元的输入端,并将两个存储运算单元的阈值电压均按照偏置权重w1配置,采集两个存储运算单元输出端电流信号即fa·w1和fb·w1并以差值形式输出作为差分输入与偏置权重的乘积信号(fa-fb)·w1;
将两路数字输入信号fDa和fDb通过数字电路计算差值fDa-fDb;
对参考权重偏置进行模数转换后得到wDref与两路数字输入信号的差值直接通过数字电路计算,得到偏置乘积信号(fDa-fDb)·wDref;
将差分输入与偏置权重的乘积信号(fa-fb)·w1通过ADC电路转换为数字信号后,与偏置乘积信号通过数字电路进行差值运算并输出差值结果,这个结果也即是(fa-fb)·w1-(fa-fb)·wref通过ADC电路转换为数字信号的结果,也即为原输入数据f与原权重w的乘积结果转换为后的数字信号结果。
实施例4
本实施例提供的一种正负数兼容的存内运算方法,是基于实施例1上的优选方案,因此本实施例中与实施例1中类似地方,不做赘述,请参考实施例1中的内容;
如实施例1所述:例如实际要计算的是原输入数据f与原权重w的乘积,现在将权重w使用两个存储运算单元的差值表示,即w=wip-win,设定参考输入偏置为fref,则得到偏置输入fr,即f=fr-fref,则f·w即为(fr-fref)·(wip-win),也即fr·(wip-win)-fref·(wip-win),即为偏置输入和参考输入偏置与两路差分权重的乘积信号以差值形式输出的结果。
本实施例的一种正负数兼容的存内运算方法即实现上述运算功能,即选用的是差分权重和偏置输入匹配实现乘法,本实施例的存内运算方法,具体包括:
基于两路差分权重即wip和win设置两个由浮栅场效应晶体管配置的存储运算单元的阈值电压;
将参考输入偏置fref同时接入两个存储运算单元输入端,并将两输出端相减后的信号即fref·(wip-win)转换为数字信号后即为送入寄存器存储;
再将偏置输入fr同时接入两个存储运算单元输入端,并将两输出端相减后的信号即fr·(wip-win)转换为数字信号后与寄存器中存储的信号通过数字电路进行差值运算并输出差值结果,这个结果也即是fr·(wip-win)-fref·(wip-win)通过ADC电路转换为数字信号的结果,也即为原输入数据f与原权重w的乘积结果转换为后的数字信号结果。
实施例5
本实施例提供的一种正负数兼容的存内运算方法,是基于实施例1上的优选方案,因此本实施例中与实施例1中类似地方,不做赘述,请参考实施例1中的内容;
如实施例1所述:例如实际要计算的是原输入数据f与原权重w的乘积,现在设置参考权重偏置为wref,则得到偏置权重w1,即w=w1-wref,设定参考输入偏置为fref,则得到偏置输入fr,即f=fr-fref,则f·w即为(fr-fref)·(w1-wref),也即fr·(w1-wref)-fref·(w1-wref),即为偏置输入和参考输入偏置与偏置权重和参考输入偏置的乘积信号分组做差输出的结果。
本实施例的一种正负数兼容的存内运算方法即实现上述运算功能,即选用的是偏置权重和偏置输入匹配实现乘法,具体包括:
匹配存储阵列设置偏置列,并按照参考权重偏置wref配置偏置列中存储运算单元的阈值电压;
按照偏置权重w1配置存储阵列中存储运算单元的阈值电压;
将参考输入偏置fref分别接入存储阵列和偏置列中存储运算单元的输入端,并将两输出端相减后转换的数字信号,即fref·(w1-wref)送入寄存器存储;
再将偏置输入fr同时接入存储阵列和偏置列中存储运算单元的输入端,将两输出端相减并转换的数字信号即fr·(w1-wref)与寄存器中存储的信号fref·(w1-wref)通过数字电路进行差值运算并输出差值结果,这个结果也即是fr·(w1-wref)-fref·(w1-wref)通过ADC电路转换为数字信号的结果,也即为原输入数据f与原权重w的乘积结果转换为后的数字信号结果。
实施例6
本实施提供一种乘加运算装置,其主要基于实施例2中的存内运算方法设计得到,因此本实施例中有涉及到实施例2中的内容,不做赘述,请参考实施例2中的内容;
请参照图1-4,本实施例的乘加运算装置包括计算阵列、偏置列、DAC模块、差分模块和ADC模块;
其中计算阵列基于存储运算单元组成,包括匹配设置的第一计算子阵列和第二计算子阵列;其中第一计算子阵列和第二计算子阵列中位于同一行数上的存储运算单元均接入同一输入端,位于同一列数上的存储运算单元均接入同一输出端;在本实施例中第一计算子阵列和第二计算子阵列结构上均相同;
偏置列基于存储运算单元组成,包括分别匹配第一计算子阵列和第二计算子阵列设置的第一偏置列和第二偏置列,其中偏置列由单列存储运算单元组成,其行数与第一计算子阵列和第二计算子阵列均相同,其中第一偏置列和第二偏置列中的存储运算单元的输出端均归一合并输出,输入端分别接入第一计算子阵列和第二计算子阵列对应行的输入端;
DAC配置成用于将待运算数字输入转换为原输入数据,并配置为两路差分输入分别接入第一计算子阵列和第二计算子阵列中位于同行数的输入端;
差分模块配置成用于将第一计算子阵列和第二计算子阵列上位于同一列的两个输出端以及第一偏置列和第二偏置列的两个输出端的输出电流信号进行差值运算后输出;
ADC模块配置成用于采集差分模块输出的第一计算子阵列和第二计算子阵列中每列输出的差值信号,并分别与第一偏置列和第二偏置列输出的差值信号进行差值运算,并将运算结果分别转换为数字信号输出。
具体的请参照图2-4,本实施例中第一计算阵列和第二计算阵列均为n行m列,第一计算阵列接入由差分输入的第一路输入构成的输入矩阵第二计算阵列接入由差分输入的第二路输入构成的输入矩阵将第一计算阵列和第二计算阵列中相同列存储运算单元的阈值电压均按照偏置权重矩阵配置,则第一计算阵列和第二计算阵列的第一列输出结果分别为和其他列输出类比可得,不做详述;
差分模块按照列数m配置为m+1个,分别将第一计算子阵列和第二计算子阵列上位于同一列的两个输出端以及第一偏置列和第二偏置列的两个输出端的输出电流信号进行差值运算后输出,也即与相减作为I1输出,并同理得到I2直至Im,同步得到Iref,其中Iref=Irefa-Irefb;
ADC模块按照列数m配置为m个,分别将I1…Im与Iref差值运算后转换为数字信号输出。
实施例7
本实施提供一种乘加运算装置,其主要基于实施例3中的存内运算方法设计得到,因此本实施例中有涉及到实施例3中的内容,不做赘述,请参考实施例3中的内容;
在本实施例中由于所有的参考权重值wref相同且为固定值,故计算公式(fa-fb)·w1-(fa-fb)·wref中第二项与实际算法无关,可以采用数字功能电路实现第二项的内容,因此无需设置偏置列;
请参照图5-8,本实施例的乘加运算装置包括计算阵列、DAC模块、数字运算功能模块、差分模块和ADC模块;
其中计算阵列基于存储运算单元组成,包括匹配设置的第一计算子阵列和第二计算子阵列;其中第一计算子阵列和第二计算子阵列中位于同一行数上的存储运算单元均接入同一输入端,位于同一列数上的存储运算单元均接入同一输出端;
DAC配置成用于将待运算数字输入转换为原输入数据,并将配置的两路数字输入信号转换为两路差分输入,分别接入第一计算子阵列和第二计算子阵列中位于同行数的输入端;
差分模块配置成用于将第一计算子阵列和第二计算子阵列上位于同一列的两个输出端的输出电流信号进行差值运算后输出;
数字运算功能模块包括数字加法器、数字乘法器(简称乘法器)和数字减法器(简称减法器),其中,
本实施例中数字加法器为两个,分别配置成用于将第一计算阵列和第二计算子阵列中接入的每路数字输入信号累加后分别送入数字减法器中执行减法运算,并将减法运算结果匹配模数转换后的参考权重信号送入数字乘法器执行乘法运算;
ADC模块配置成用于采集差分模块输出的第一计算子阵列和第二计算子阵列中每列输出的差值信号并转换为数字信号,并分别匹配数字乘法器输出的乘法运算结果送入数字减法器执行减法运算,同步输出运算结果。
具体的参照图6-8,本实施例中第一计算阵列和第二计算阵列均为n行m列,第一计算阵列接入由差分输入的第一路输入构成的输入矩阵第二计算阵列接入由差分输入的第二路输入构成的输入矩阵将第一计算阵列和第二计算阵列中相同列存储运算单元的阈值电压均按照偏置权重矩阵配置,则第一计算阵列和第二计算阵列的第一列输出结果分别为和其他列输出类比可得,不做详述;
数字减法器对suma和sumb执行减法,并将结果匹配模数转换后的参考权重信号wDref送入数字乘法器执行乘法运算输出结果(suma-suma)*wDref;
ADC模块按照列数m配置为m个,分别将I1…Im转换为数字信号后送入数字减法器中分别与(suma-suma)*wDref执行减法运算,同步输出运算结果。
实施例8
本实施提供一种乘加运算装置,其主要基于实施例4中的存内运算方法设计得到,因此本实施例中有涉及到实施例4中的内容,不做赘述,请参考实施例4中的内容;
本实施例采用的是差分权重和偏置输入匹配实现乘法;
参照图9-11本实施例中的乘加运算装置包括计算阵列、权重差分模块、DAC模块、寄存器模块、数字减法器、差分模块和ADC模块;
其中计算阵列基于存储运算单元组成,包括匹配设置的第一计算子阵列和第二计算子阵列;其中第一计算子阵列和第二计算子阵列中位于同一行数上的存储运算单元均接入同一输入端,位于同列数上的存储运算单元输出端分别归一化后匹配接入差分模块;
权重差分模块配置成用于将原权重配置为两路差分权重,并基于两路差分权重分别配置第一计算子阵列和第二计算子阵列中位于同行数且同列数上的存储运算单元的阈值电压;
DAC模块用于将待运算数字输入转换为原输入数据以进行后续处理运算;
差分模块配置成用于将第一计算子阵列和第二计算子阵列中位于同列数的存储运算单元输出端的输出电流信号进行差值运算后输出;
ADC模块配置成用于采集差分模块输出的差值信号并转换为数字信号;
寄存器模块Reg配置成用于存储将参考输入偏置接入计算阵列输入端时,ADC模块输出的数字信号数据;
数字减法器(简称减法器)配置成用于将偏置输入接入存储阵列输入端时ADC模块输出的数字信号与匹配寄存器模块存储的数据执行减法运算,同步输出运算结果。
具体的参照图10-11,由于第一计算阵列和第二计算阵列后期需要将输入端和输出端进行配置连接,因此本实施例中直接将第一计算阵列和第二计算阵列合并到一起进行举例说明,在本实施例中第一计算阵列和第二计算阵列均为n行m列,根据前述的连接方式进行连接后,形成一个n行2m列的计算阵列,每行均有2m个存储运算单元,也即该计算阵列中第1、3、5……2n-1列构成第一计算阵列,第2、4、6……2n列构成第二计算阵列,每相邻两个存储运算单元构成一对,用于配置一对差分权重;
按照差分权重分别匹配相邻两个存储运算单元的阈值电压,例如对于第一列和第二列存储运算单元的阈值电压分别按照差分权重的第一路权重构成的权重矩阵和按照差分权重的第二路权重构成的权重矩阵进行配置,其他列同理,不做赘述;
并通过差分模块将计算阵列中相邻两列的两个输出端的输出电流信号进行差值运算,将运算结果即REF1=Iref1-Iref2输出至ADC模块转换为数字信号送入第一寄存器存储,其他列类似,不做赘述;
再将偏置输入矩阵分别接入计算阵列各行的输入端,此时第一列输出信号为第二列输出信号为并通过差分模块将计算阵列中相邻两列的两个输出端的输出电流信号进行差值运算并通过ADC模块转换后,与寄存器中存储的信号即REF1=Iref1-Iref2通过数字减法器进行差值运算并输出差值结果,其他列的运算类似,不做赘述。
实施例9
本实施提供一种乘加运算装置,其主要基于实施例5中的存内运算方法设计得到,因此本实施例中有涉及到实施例5中的内容,不做赘述,请参考实施例5中的内容;
本实施例采用的是偏置权重和偏置输入匹配实现乘法;
参照图12-16,本实施例中的乘加运算装置包括计算阵列、偏置列、DAC模块、寄存器模块、数字减法器、差分模块和ADC模块;
其中计算阵列基于存储运算单元组成,且位于同一行上的存储运算单元均接入同一输入端,位于同一列上的存储运算单元均接入同一输出端;
偏置列匹配计算阵列设置并基于存储运算单元组成,其中各存储运算单元的输出端均归一合并输出,输入端分别接入计算阵列对应行的输入端;
DAC模块用于将待运算数字输入转换为原输入数据以进行后续处理运算;
差分模块配置成用于将计算阵列每列输出端和偏置列输出端的输出电流信号进行差值运算后输出;
ADC模块配置成用于采集差分模块输出的差值信号并转换为数字信号;
寄存器模块(Reg)配置成用于存储将参考输入偏置接入计算阵列输入端时ADC模块输出的数字信号数据;
数字减法器(简称减法器)配置成用于将偏置输入接入存储阵列输入端时ADC模块输出的数字信号与对应的寄存器模块存储的数据执行减法运算,同步输出运算结果。
具体的参照图13-16,本实施例中计算阵列为n行m列,每行均有m个存储运算单元;
偏置列也基于存储运算单元组成,且由单列存储运算单元组成,其行数与计算阵列相同,其中偏置列中的存储运算单元的输出端均归一合并输出,输入端分别接入计算阵列对应行的输入端;
偏置列中存储运算单元的阈值电压均按照参考权重wref配置;
并通过差分模块分别将计算阵列中每列输出电流信号和偏置列输出电流信号进行差值运算,将运算结果即REF1=Iref1-Iref输出至ADC模块转换为数字信号送入第一寄存器存储,其他列类似,不做赘述;
再将偏置输入矩阵分别接入计算阵列各行的输入端,此时第一列输出信号为第二列输出信号为其他列类似,不做赘述,偏置列输出信号为并通过差分模块将计算阵列中每列输出电流信号和偏置列输出电流信号进行差值运算,将运算结果即I1-Ic通过ADC模块转换后,与寄存器中存储的信号即REF1=Iref1-Iref通过数字减法器进行差值运算并输出差值结果,该结果即为本列乘加结果,其他列的运算类似,不做赘述。
实施例10
本发明提供一种芯片,包含实施例6-9任意一项的乘加运算装置,所述乘加运算装置被设置为按照预设程序执行包括如实施例1-5任意一项所述的的存内运算方法。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (12)
1.一种正负数兼容的存内运算方法,其特征在于,所述方法包括:
基于由存储运算单元组成的存储阵列,对原输入数据和原权重选择进行差分、偏置配对处理运算或者全偏置处理运算,其中,差分、偏置配对处理运算包括:
若将原输入数据配置为两路差分输入,则设定参考权重偏置,对原权重进行偏置处理得到偏置权重,基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集差分输入与偏置权重和参考权重偏置的乘积信号,并以差值形式输出;
若将原权重配置为两路差分权重,则设定参考输入偏置,对原输入数据进行偏置处理得到偏置输入,基于两路差分权重配置一对存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与两路差分权重的乘积信号,并以差值形式输出;
全偏置处理运算包括:设定参考权重偏置和参考输入偏置,对原权重和原输入数据分别进行偏置处理得到偏置权重和偏置输入,基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与偏置权重和参考权重偏置的乘积信号,分组作差后输出。
2.根据权利要求1所述的一种正负数兼容的存内运算方法,其特征在于,所述存储阵列为NOR Flash存储阵列;
所述原输入数据为待运算数字输入通过DAC模块转换的模拟信号;
所述以差值形式输出或分组作差后输出还包括将输出的模拟信号经ADC模块转换为数字信号进行输出;
所述配置存储运算单元的阈值电压具体包括:
首先对存储运算单元进行离线标定,获取其初始参数,得到各存储运算单元自身阈值电压VTH随编程操作的变化曲线;
根据偏置权重、参考权重偏置或者两路差分权重以及变化曲线配置对应存储运算单元的阈值电压。
3.根据权利要求2所述的一种正负数兼容的存内运算方法,其特征在于,所述参考权重偏置的设定标准为:原权重为正数权重时,偏置处理后的偏置权重大于参考权重偏置;原权重为负数权重时,偏置处理后的偏置权重小于参考权重偏置;
所述参考输入偏置的设定标准为:原输入数据为正数时,偏置处理后的偏置输入大于参考输入偏置;原输入数据为负数时,偏置处理后的偏置输入小于参考输入偏置。
4.根据权利要求2所述的一种正负数兼容的存内运算方法,其特征在于,所述基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集差分输入与偏置权重和参考权重偏置的乘积信号具体包括:
匹配存储阵列配置偏置列,将两路差分输入分别接入偏置列中两个存储运算单元的输入端,并将两个存储运算单元的阈值电压均按照参考权重偏置配置,采集两个存储运算单元输出端电流信号并以差值形式输出作为差分输入与参考权重偏置的乘积信号;
将两路差分输入分别接入存储阵列中两个存储运算单元的输入端,并将两个存储运算单元的阈值电压均按照偏置权重配置,采集两个存储运算单元输出端电流信号并以差值形式输出作为差分输入与偏置权重的乘积信号。
5.根据权利要求2所述的一种正负数兼容的存内运算方法,其特征在于,所述基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集差分输入与偏置权重和参考权重偏置的乘积信号,并以差值形式输出具体包括:
所述两路差分输入为基于待运算数字输入配置的两路数字输入信号通过DAC模块转换而得;
将两路差分输入分别接入存储阵列中两个存储运算单元的输入端,并将两个存储运算单元的阈值电压均按照偏置权重配置,采集两个存储运算单元输出端电流信号并以差值形式输出作为差分输入与偏置权重的乘积信号;
将两路数字输入信号通过数字电路计算差值;
对参考权重偏置进行模数转换后与两路数字输入信号的差值直接通过数字电路计算,得到偏置乘积信号;
将差分输入与偏置权重的乘积信号通过ADC电路转换为数字信号后,与偏置乘积信号通过数字电路进行差值运算并输出差值结果。
6.根据权利要求2所述的一种正负数兼容的存内运算方法,其特征在于,所述基于两路差分权重配置一对存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与两路差分权重的乘积信号,并以差值形式输出具体包括:
基于两路差分权重设置两个由浮栅场效应晶体管配置的存储运算单元的阈值电压;
将参考输入偏置同时接入两个存储运算单元输入端,并将两输出端相减后转换为数字信号后送入寄存器存储;
再将偏置输入同时接入两个存储运算单元输入端,并将两输出端相减后转换为数字信号后与寄存器中存储的信号通过数字电路进行差值运算并输出差值结果。
7.根据权利要求2所述的一种正负数兼容的存内运算方法,其特征在于,所述基于偏置权重和参考权重偏置配置存储运算单元的阈值电压,分别采集偏置输入和参考输入偏置与偏置权重和参考权重偏置的乘积信号,分组作差后输出具体包括:
匹配存储阵列设置偏置列,并按照参考权重偏置配置偏置列中存储运算单元的阈值电压;
按照偏置权重配置存储阵列中存储运算单元的阈值电压;
将参考输入偏置分别接入存储阵列和偏置列中存储运算单元的输入端,并将两输出端相减后转换为数字信号后送入寄存器存储;
再将偏置输入同时接入存储阵列和偏置列中存储运算单元的输入端,将两输出端相减并转换为数字信号后与寄存器中存储的信号通过数字电路进行差值运算并输出差值结果。
8.一种采用如权利要求1-4任意一项所述的存内运算方法的乘加运算装置,其特征在于,包括计算阵列、偏置列、DAC模块、差分模块和ADC模块;
所述计算阵列基于存储运算单元组成,包括匹配设置的第一计算子阵列和第二计算子阵列;其中第一计算子阵列和第二计算子阵列中位于同一行数上的存储运算单元均接入同一输入端,位于同一列数上的存储运算单元均接入同一输出端;
所述偏置列基于存储运算单元组成,包括分别匹配第一计算子阵列和第二计算子阵列设置的第一偏置列和第二偏置列,其中第一偏置列和第二偏置列中的存储运算单元的输出端均归一合并输出,输入端分别接入第一计算子阵列和第二计算子阵列对应行的输入端;
所述DAC配置成用于将待运算数字输入转换为原输入数据,并配置为两路差分输入分别接入第一计算子阵列和第二计算子阵列中位于同行数的输入端;
所述差分模块配置成用于将第一计算子阵列和第二计算子阵列上位于同一列的两个输出端以及第一偏置列和第二偏置列的两个输出端的输出电流信号进行差值运算后输出;
所述ADC模块配置成用于采集差分模块输出的第一计算子阵列和第二计算子阵列中每列输出的差值信号,并分别与第一偏置列和第二偏置列输出的差值信号进行差值运算,并将运算结果分别转换为数字信号输出。
9.一种采用如权利要求1-3和5中任意一项所述的存内运算方法的乘加运算装置,其特征在于,包括计算阵列、DAC模块、数字运算功能模块、差分模块和ADC模块;
所述计算阵列基于存储运算单元组成,包括匹配设置的第一计算子阵列和第二计算子阵列;其中第一计算子阵列和第二计算子阵列中位于同一行数上的存储运算单元均接入同一输入端,位于同一列数上的存储运算单元均接入同一输出端;
所述DAC配置成用于将待运算数字输入转换为原输入数据,并将配置的两路数字输入信号转换为两路差分输入,分别接入第一计算子阵列和第二计算子阵列中位于同行数的输入端;
所述差分模块配置成用于将第一计算子阵列和第二计算子阵列上位于同一列的两个输出端的输出电流信号进行差值运算后输出;
所述数字运算功能模块包括数字加法器、数字乘法器和数字减法器,其中,
所述数字加法器配置成用于将第一计算阵列和第二计算子阵列中接入的每路数字输入信号累加后分别送入数字减法器中执行减法运算,并将减法运算结果匹配模数转换后的参考权重信号送入数字乘法器执行乘法运算;
所述ADC模块配置成用于采集差分模块输出的第一计算子阵列和第二计算子阵列中每列输出的差值信号并转换为数字信号,并分别匹配数字乘法器输出的乘法运算结果送入数字减法器执行减法运算,同步输出运算结果。
10.一种采用如权利要求1-3和6中任意一项所述的存内运算方法的乘加运算装置,其特征在于,包括计算阵列、权重差分模块、DAC模块、寄存器模块、数字减法器、差分模块和ADC模块;
所述计算阵列基于存储运算单元组成,包括匹配设置的第一计算子阵列和第二计算子阵列;其中第一计算子阵列和第二计算子阵列中位于同一行数上的存储运算单元均接入同一输入端,位于同列数上的存储运算单元输出端分别归一化后匹配接入差分模块;
所述权重差分模块配置成用于将原权重配置为两路差分权重,并基于两路差分权重分别配置第一计算子阵列和第二计算子阵列中位于同行数且同列数上的存储运算单元的阈值电压;
所述DAC模块用于将待运算数字输入转换为原输入数据以进行后续处理运算;
所述差分模块配置成用于将第一计算子阵列和第二计算子阵列中位于同列数的存储运算单元输出端的输出电流信号进行差值运算后输出;
所述ADC模块配置成用于采集差分模块输出的差值信号并转换为数字信号;
所述寄存器模块配置成用于存储将参考输入偏置接入计算阵列输入端时,ADC模块输出的数字信号数据;
所述数字减法器配置成用于将偏置输入接入存储阵列输入端时ADC模块输出的数字信号与匹配寄存器模块存储的数据执行减法运算,同步输出运算结果。
11.一种采用如权利要求1-3和7中任意一项所述的存内运算方法的乘加运算装置,其特征在于,包括计算阵列、偏置列、DAC模块、寄存器模块、数字减法器、差分模块和ADC模块;
所述计算阵列基于存储运算单元组成,且位于同一行上的存储运算单元均接入同一输入端,位于同一列上的存储运算单元均接入同一输出端;
所述偏置列匹配计算阵列设置并基于存储运算单元组成,其中各存储运算单元的输出端均归一合并输出,输入端分别接入计算阵列对应行的输入端;
所述DAC模块用于将待运算数字输入转换为原输入数据以进行后续处理运算;
所述差分模块配置成用于将计算阵列每列输出端和偏置列输出端的输出电流信号进行差值运算后输出;
所述ADC模块配置成用于采集差分模块输出的差值信号并转换为数字信号;
所述寄存器模块配置成用于存储将参考输入偏置接入计算阵列输入端时ADC模块输出的数字信号数据;
所述数字减法器配置成用于将偏置输入接入存储阵列输入端时ADC模块输出的数字信号与对应寄存器模块存储的数据执行减法运算,同步输出运算结果。
12.一种芯片,其特征在于,包含如权利要求8-11任意一项所述的乘加运算装置,所述乘加运算装置被设置为按照预设程序执行包括如权利要求1-7任意一项所述的的存内运算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110984101.7A CN113672860B (zh) | 2021-08-25 | 2021-08-25 | 一种正负数兼容的存内运算方法、乘加运算装置及其应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110984101.7A CN113672860B (zh) | 2021-08-25 | 2021-08-25 | 一种正负数兼容的存内运算方法、乘加运算装置及其应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672860A true CN113672860A (zh) | 2021-11-19 |
CN113672860B CN113672860B (zh) | 2023-05-12 |
Family
ID=78546312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110984101.7A Active CN113672860B (zh) | 2021-08-25 | 2021-08-25 | 一种正负数兼容的存内运算方法、乘加运算装置及其应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672860B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180019732A1 (en) * | 2016-07-14 | 2018-01-18 | Texas Instruments Incorporated | Methods and apparatus for efficient linear combiner |
CN111128279A (zh) * | 2020-02-25 | 2020-05-08 | 杭州知存智能科技有限公司 | 基于NAND Flash的存内计算芯片及其控制方法 |
CN111431536A (zh) * | 2020-05-18 | 2020-07-17 | 深圳市九天睿芯科技有限公司 | 子单元、mac阵列、位宽可重构的模数混合存内计算模组 |
CN111611534A (zh) * | 2019-02-26 | 2020-09-01 | 北京知存科技有限公司 | 一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 |
CN111967586A (zh) * | 2020-07-15 | 2020-11-20 | 北京大学 | 一种用于脉冲神经网络存内计算的芯片及计算方法 |
CN112053712A (zh) * | 2019-06-06 | 2020-12-08 | 意法半导体国际有限公司 | 具有集成偏差元件的存储器内计算阵列 |
CN112926022A (zh) * | 2019-12-05 | 2021-06-08 | 美光科技公司 | 用于在存储器阵列内执行分集矩阵运算的方法及设备 |
CN112989268A (zh) * | 2021-02-06 | 2021-06-18 | 江南大学 | 一种面向存内运算的全展开非正交布线的存算阵列设计 |
-
2021
- 2021-08-25 CN CN202110984101.7A patent/CN113672860B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180019732A1 (en) * | 2016-07-14 | 2018-01-18 | Texas Instruments Incorporated | Methods and apparatus for efficient linear combiner |
CN111611534A (zh) * | 2019-02-26 | 2020-09-01 | 北京知存科技有限公司 | 一种动态偏置模拟向量-矩阵乘法运算电路及其运算控制方法 |
CN112053712A (zh) * | 2019-06-06 | 2020-12-08 | 意法半导体国际有限公司 | 具有集成偏差元件的存储器内计算阵列 |
CN112926022A (zh) * | 2019-12-05 | 2021-06-08 | 美光科技公司 | 用于在存储器阵列内执行分集矩阵运算的方法及设备 |
CN111128279A (zh) * | 2020-02-25 | 2020-05-08 | 杭州知存智能科技有限公司 | 基于NAND Flash的存内计算芯片及其控制方法 |
CN111431536A (zh) * | 2020-05-18 | 2020-07-17 | 深圳市九天睿芯科技有限公司 | 子单元、mac阵列、位宽可重构的模数混合存内计算模组 |
CN111967586A (zh) * | 2020-07-15 | 2020-11-20 | 北京大学 | 一种用于脉冲神经网络存内计算的芯片及计算方法 |
CN112989268A (zh) * | 2021-02-06 | 2021-06-18 | 江南大学 | 一种面向存内运算的全展开非正交布线的存算阵列设计 |
Also Published As
Publication number | Publication date |
---|---|
CN113672860B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11244225B2 (en) | Neural network processor configurable using macro instructions | |
CN109086249B (zh) | 模拟向量-矩阵乘法运算电路 | |
WO2020024608A1 (zh) | 模拟向量-矩阵乘法运算电路 | |
US20060081767A1 (en) | Semiconductor integrated circuit device having a plurality of photo detectors and processing elements | |
CN113033759A (zh) | 脉冲卷积神经网络算法、集成电路、运算装置及存储介质 | |
CN111241028A (zh) | 一种数模混合存算一体芯片以及运算装置 | |
CN113596361B (zh) | 一种基于像素内实现正负权值运算的感存算一体电路结构 | |
US20220179658A1 (en) | Refactoring Mac Operations | |
CN110751279B (zh) | 一种铁电电容耦合神经网络电路结构及神经网络中向量与矩阵的乘法运算方法 | |
CN208507187U (zh) | 闪存芯片 | |
CN112162947A (zh) | 输出可配置存算一体芯片以及电子设备 | |
CN113672860B (zh) | 一种正负数兼容的存内运算方法、乘加运算装置及其应用 | |
CN112148669A (zh) | 脉冲存算一体芯片以及电子设备 | |
CN208569628U (zh) | 模拟向量-矩阵乘法运算电路 | |
CN213365506U (zh) | 输出可配置存算一体芯片以及电子设备 | |
CN116306854A (zh) | 基于光电存算一体器件的transformer神经网络加速装置及方法 | |
JPH0318985A (ja) | 情報処理装置 | |
CN112632460B (zh) | 源极耦合、漏极求和的模拟向量-矩阵乘法运算电路 | |
Wang et al. | Deep neural network mapping and performance analysis on tiled rram architecture | |
JP3199707B2 (ja) | 半導体演算回路及び演算装置 | |
CN217933180U (zh) | 一种存内计算电路 | |
CN110717580B (zh) | 面向二值化神经网络的基于电压调制的计算阵列 | |
CN111243640B (zh) | 用于存储器操作的电路和方法 | |
US20240103875A1 (en) | Neural network processor | |
CN117809721A (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 |