CN114153420A - 存储器内运算方法及装置 - Google Patents

存储器内运算方法及装置 Download PDF

Info

Publication number
CN114153420A
CN114153420A CN202111010149.4A CN202111010149A CN114153420A CN 114153420 A CN114153420 A CN 114153420A CN 202111010149 A CN202111010149 A CN 202111010149A CN 114153420 A CN114153420 A CN 114153420A
Authority
CN
China
Prior art keywords
operation result
data
memory
weight
input data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111010149.4A
Other languages
English (en)
Inventor
林柏榕
李永骏
胡瀚文
王淮慕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Macronix International Co Ltd
Original Assignee
Macronix International 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 Macronix International Co Ltd filed Critical Macronix International Co Ltd
Publication of CN114153420A publication Critical patent/CN114153420A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • 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/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Power Engineering (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)

Abstract

本发明提供一种存储器内运算方法及装置,适于由处理器对存储器执行乘加运算。所述方法包括下列步骤:对待写入存储器的输入线及存储单元的输入数据及权重数据分别进行预处理,以区分为主要部分及次要部分;将被区分为主要部分及次要部分的输入数据及权重数据,分批写入输入线及存储单元以进行乘加运算,获得多笔运算结果;根据各运算结果的数值大小滤除运算结果;以及依据运算结果所对应的部分,对被滤除后的运算结果进行后处理,以获得输出数据。

Description

存储器内运算方法及装置
技术领域
本公开是有关于一种运算方法及装置,且特别是有关于一种存储器内运算方法及装置。
背景技术
传统的运算系统在执行数据密集应用(data-intensive application)时,需要进行大量运算,且需要在处理器与存储器之间频繁地移动数据。其中,执行大量运算将导致系统效能降低,而大量的数据移动则会造成高功率消耗。
为了解决上述效能限制及功率消耗的问题,近年来有人提出了新的算法及/或存储器架构,其中包括最邻近搜索(Nearest Neighbor Search)、决策树学习(Decision treelearning)、分散式系统、存储器内计算(In-memory computing)等。然而,决策树学习仍需要大量的数据搬移、分散式系统存在成本过高及装置间沟通的问题,存储器内计算则无法支持复杂运算。
公开内容
鉴于上述内容,本公开提供一种能够增进运算系统效能的存储器内运算方法及存储器内运算装置。
本公开提供一种存储器内运算方法,适于处理器对存储器进行乘加(MAC)运算。所述存储器包括彼此交叉的多个输入线及多个输出线,分别配置于输入线及输出线的相交点处的多个存储单元,以及分别连接至输出线的多个感测放大器。所述方法包括下列步骤:对待写入输入线及存储单元的输入数据及权重数据分别进行预处理,以区分为主要部分及次要部分;将被区分为主要部分及次要部分的输入数据及权重数据,分批写入输入线及存储单元以进行乘加运算,获得多笔运算结果;根据各运算结果的数值大小滤除运算结果;以及依据运算结果所对应的部分,对被滤除后的运算结果进行后处理,以获得输出数据。
在本公开的一实施例中,所述根据各运算结果的数值大小滤除运算结果的步骤包括滤除数值大小不大于预设门限值的运算结果,以及排序被滤除后的运算结果,并选择排序在前的至少一个运算结果以进行后处理。
在本公开的一实施例中,所述方法还包括在对输入数据及权重数据进行预处理时,对输入数据及权重数据进行编码,以及在对被滤除后的运算结果进行后处理时,对运算结果执行对应于编码的加权运算。
在本公开的一实施例中,所述对运算结果执行对应于编码的加权运算的步骤包括响应于运算结果对应于输入数据的主要部分及权重数据的主要部分,对运算结果乘上第一权重以获得第一乘积,响应于运算结果对应于输入数据的主要部分及权重数据的次要部分,对运算结果乘上第二权重以获得第二乘积,响应于运算结果对应于输入数据的次要部分及权重数据的主要部分,对运算结果乘上第三权重以获得第三乘积,响应于运算结果对应于输入数据的次要部分及权重数据的次要部分,对运算结果乘上第四权重以获得第四乘积,以及累加对运算结果进行加权运算所得的第一乘积、第二乘积、第三乘积及第四乘积,并将累加结果作为输出数据输出。
本公开提供一种存储器内运算装置,其包括存储器及处理器。所述存储器包括彼此交叉的多个输入线及多个输出线、分别配置于输入线及输出线的相交点处的多个单元,以及分别连接至输出线的多个感测放大器。所述处理器耦接至存储器且被配置为对待写入输入线及存储单元的输入数据及权重数据分别进行预处理,以区分为主要部分及次要部分,将被区分为主要部分及次要部分的输入数据及权重数据,分批写入输入线及存储单元以进行乘加运算,并累加所述感测放大器的感测值以获得多笔运算结果,根据各运算结果的数值大小滤除运算结果,以及依据运算结果所对应的部分,对被滤除后的运算结果进行后处理,以获得输出数据。
在本公开的一实施例中,所述主要部分为所处理数据的多位的最高有效位(Mostsignificant bit,MSB),且所述次要部分为所处理数据的多位的最低有效位(Leastsignificant bit,LSB)。
在本公开的一实施例中,所述存储器内运算装置还包括过滤器,用以滤除数值大小不大于预设门限值的运算结果,其中处理器包括排序被滤除后的运算结果,并选择排序在前的至少一个运算结果以进行后处理。
在本公开的一实施例中,所述处理器包括在对输入数据及权重数据进行预处理时,对输入数据及权重数据进行编码,以及在对被滤除后的运算结果进行后处理时,对运算结果执行对应于编码的加权运算。
在本公开的一实施例中,所述处理器包括响应于运算结果对应于输入数据的主要部分及权重数据的主要部分,对运算结果乘上第一权重以获得第一乘积,响应于运算结果对应于输入数据的主要部分及权重数据的次要部分,对运算结果乘上第二权重以获得第二乘积,响应于运算结果对应于输入数据的次要部分及权重数据的主要部分,对运算结果乘上第三权重以获得第三乘积,响应于运算结果对应于输入数据的次要部分及权重数据的次要部分,对运算结果乘上第四权重以获得第四乘积,以及累加对运算结果进行加权运算所得的第一乘积、第二乘积、第三乘积及第四乘积,并将累加结果作为输出数据输出。
为使本公开的前述特征及优势更可理解,下文详细描述附图的实施例。
附图说明
图1为根据本公开的实施例的存储器内运算装置的示意图。
图2为根据本公开的实施例的存储器内运算方法的流程图。
图3是根据本公开的实施例的数据编码的示意图。
图4是根据本公开的实施例的数据后处理的示意图。
附图标记说明
10:运算装置
12:存储器
14:处理器
B7~B0、B70~B77、B60~B63:位
ILi:输入线
OLj:输出线
Rij:电阻
S202~S208:步骤
SA:感测放大器
具体实施方式
图1为根据本公开的实施例的存储器内运算装置的示意图。请参考图1,本实施例的存储器内运算装置10为例如忆阻器,所述忆阻器被配置为实现存储器内处理(process-in-memory;PIM),适用于人脸搜寻等数据密集应用。运算装置10包括存储器12及处理器14,其功能分述如下:
存储器12为例如与非门(NAND)快闪存储器、或非门(NOR)快闪存储器、相变存储器(phase change memory;PCM)、自旋转移矩随机存取存储器(spin-transfer torquerandom-access memory;STT-RAM),或2D或3D结构的电阻式随机存取存储器(ReRAM),此在本文中不受限制。在一些实施例中,可整合各种易失性存储器,诸如静态随机存取存储器(static random access memory;SRAM)、动态随机存取存储器(dynamic random accessmemory;DRAM),以及各种非易失性存储器,诸如ReRAM、PCM、快闪、磁阻性RAM、铁电RAM,以进行存储器内运算,此在本文中不受限制。
存储器12包括彼此交叉的多个输入线ILi及多个输出线OLj、分别配置于输入线ILi与输出线OLj的相交点处的多个存储单元(由电阻Rij表示),以及分别连接至输出线OLj以用于感测自输出线OLj输出的电流Ij的多个感测放大器SA。在一些实施例中,输入线ILi为字线而输出线OLj为位线,且在一些实施例中,输入线ILi为位线而输出线OLj为字线,此在本文中不受限制。
处理器14为例如中央处理单元(central processing unit;CPU)或其他可编程的通用或专用微处理器、微控制器(microcontroller;MCU)、可编程控制器、专用集成电路(application specific integrated circuit;ASIC)、可编程逻辑装置(programmablelogic device;PLD)或其他类似装置或此等装置的组合,本实施例不对其限制。在本实施例中,处理器14被配置为执行用于进行存储器内运算的指令。所述的存储器内运算可实施至各种人工智能(artificial intelligent;AI)应用,诸如全连接层、卷积层(convolutionlayer)、多层感知、支持向量机或使用忆阻器实施的其他应用,此在本文中不受限制。
图2为根据本公开的实施例的存储器内运算方法的流程图。请参照图1及图2,本实施例的方法适合于上述存储器内运算装置10,且将在下文参考存储器内运算装置10的各种装置及组件描述本实施例的存储器内运算方法的详细步骤。
首先,在步骤S202中,处理器14对待写入输入线及存储单元的输入数据及权重数据分别进行预处理,以区分为主要部分及次要部分。在一实施例中,处理器14是将输入数据区分为多位的最高有效位(Most significant bit,MSB)及多位的最低有效位(Leastsignificant bit,LSB),且将权重数据区分为多位的MSB及多位的LSB。在输入数据为8位的情况下,处理器14例如是将输入数据区分为4位的MSB及4位的LSB,且将权重数据区分为4位的MSB及4位的LSB。在其他情况下,处理器14可根据实施需求,将输入数据及权重数据区分为相同数目或不同数目的一或多位的MSB以及一或多位的LSB,本实施例在此不设限。在其他实施例中,处理器14也可以将输入数据中不重要的一或多个位(即,次要部分)遮蔽或滤除,而仅保留其中的较重要的位(即,主要部分)进行后续运算,本实施例也不设限。
在其他实施例中,处理器14可对输入数据及权重数据进行进一步的编码,例如将输入数据或权重数据的多位的MSB及多位的LSB从二进制格式(binary format)转换为一元编码(unary code)的数值格式(value format)。处理器14可再将转换后的一元编码进行复制以展开(unfold)为数量积(dot product)格式。
举例来说,图3是根据本公开的实施例的数据编码的示意图。请参照图3,本实施例假设有N维待写入的输入数据和权重数据,其中N为正整数,每笔数据具有以二进制表示的8个位B0~B7。以N维输入数据<1>~<N>为例,本实施例将每笔输入数据<1>~<N>区分为MSB矢量和LSB矢量,其中MSB矢量包括4位MSB B7~B4,LSB矢量包括4位LSB B3~B0。接着,将MSB矢量和LSB矢量的每个位依数值转换为一元编码,例如将位B7转换为位B70~B77、将位B6转换为B60~B63、将位B5转换为B50~B51,且将位B4维持不变。然后,将转换后的一元编码进行复制以展开为数量积格式,例如将每笔输入数据的MSB矢量的转换后的(24-1)个一元编码复制(24-1)次以展开为225个位,而生成图3所示的展开数量积格式(unfolding dotproduct,unFDP)的数据。类似地,权重数据也可以上述输入数据的编码方式进行预处理,在此不再赘述。
回到图2的流程,在步骤S204中,处理器14将被区分为主要部分及次要部分的输入数据及权重数据,分批写入输入线及存储单元以进行乘加运算,获得多笔运算结果。详细而言,处理器14例如是将被区分为主要部分的权重数据写入存储器12中对应的存储单元,并且将被区分为主要部分的输入数据输入存储器12中对应的输入线ILi,以由连接各个输出线OLj的感测放大器SA感测自输出线OLj输出的电流Ij,从而经由计数器(counter)或累加器(accumulator)累加感测放大器SA的感测值而获得所述输入数据与权重数据的乘加运算的运算结果。类似地,处理器14例如是将被区分为主要部分的权重数据写入存储器12中对应的存储单元,并且将被区分为次要部分的输入数据输入存储器12中对应的输入线ILi,以获得乘加运算的运算结果;将被区分为次要部分的权重数据写入存储器12中对应的存储单元,并且将被区分为主要部分的输入数据输入存储器12中对应的输入线ILi,以获得乘加运算的运算结果;以及将被区分为次要部分的权重数据写入存储器12中对应的存储单元,并且将被区分为次要部分的输入数据输入存储器12中对应的输入线ILi,以获得乘加运算的运算结果。
在一些实施例中,存储器12还可支持反相(Inverse)、逻辑与(AND)、逻辑或(OR)、互斥或(XOR)、互斥或非(XNOR)等运算,而不限于乘加运算。此外,存储器12也不限于使用数字电路实现,而可以使用模拟电路实现,本实施例不限制其实现方式。
举例来说,在数字电路中,处理器14可将输入数据区分为多位的MSB和多位的LSB(不限定位数),并经过不同的编码(即,预处理)方法进行处理后,再送入存储器12以进行反相、逻辑与、逻辑或、互斥或、互斥或非乘加运算或上述运算的组合,最后经过相对应的后处理进行过滤后,即可获得最终的运算结果。在模拟电路中,处理器14可将输入数据中的部分位进行遮蔽或滤除(即,预处理)后,再送入存储器12以进行反相、逻辑与、逻辑或、互斥或、互斥或非乘加运算或上述运算的组合,最后经过相对应的后处理进行过滤后,即可获得最终的运算结果。以上仅为举例说明,处理器14可对输入数据实施任意种类的预处理及后处理,以获得专属的运算结果。
在步骤S206中,处理器14根据各运算结果的数值大小滤除运算结果。在一实施例中,存储器内运算装置10例如包括过滤器(未绘示),而用以滤除数值大小不大于预设门限值的运算结果。处理器14则会对被滤除后的运算结果进行排序,并选择排序在前的N笔运算结果进行后处理,所述N例如是3、5、10、20或任意的正整数,在此不设限。
在步骤S208中,处理器14依据运算结果所对应的部分,对被滤除后的运算结果进行后处理,以获得输出数据。在一实施例中,处理器14在对输入数据及权重数据进行预处理时,例如是对输入数据及权重数据进行编码,而在对被滤除后的运算结果进行后处理时,则是对运算结果执行对应于该编码的加权运算。
详细而言,响应于运算结果是对应于输入数据的主要部分及权重数据的主要部分,处理器14会对运算结果乘上第一权重以获得第一乘积;响应于运算结果对应于输入数据的主要部分及权重数据的次要部分,处理器14会对运算结果乘上第二权重以获得第二乘积;响应于运算结果对应于输入数据的次要部分及权重数据的主要部分,处理器14会对运算结果乘上第三权重以获得第三乘积;响应于运算结果对应于输入数据的次要部分及权重数据的次要部分,处理器14会对运算结果乘上第四权重以获得第四乘积。最终,处理器14会将上述对上运算结果进行加权运算所得的第一乘积、第二乘积、第三乘积及第四乘积进行累加,从而将累加结果作为输出数据输出。
举例来说,图4是根据本公开的实施例的数据后处理的示意图。请参照图4,本实施例说明对应于图3的编码方式的后处理。其中,响应于运算结果对应于输入数据的主要部分(即,MSB)及权重数据的主要部分,其对应的权重值为16×16;响应于运算结果对应于输入数据的主要部分及权重数据的次要部分(即,LSB),其对应的权重值为16×1;响应于运算结果对应于输入数据的主要部分及权重数据的主要部分,其对应的权重值为1×16;响应于运算结果对应于输入数据的主要部分及权重数据的主要部分,其对应的权重值为1×1。通过将分批写入存储器12的输入数据及权重数据所得的运算结果乘上对应的权重值,则可还原出原始输入数据及权重数据的乘加运算的运算结果。
待完成每一笔输入数据与权重数据的乘加运算并获得运算结果后,处理器14将回到步骤S204,继续将下一笔输入数据及权重数据写入存储器12以进行乘加运算,直到完成所有输入数据及权重数据的运算结果,而完成存储器内运算。
综上所述,本公开实施例的存储器内运算方法及装置系结合存储器内运算及阶层式过滤架构(scheme),通过对待写入存储器的输入数据及权重数据进行预处理,以选择性地删减对数据数值所占比重较低的位(即,LSB)的运算,而优先针对所占比重较高的位(即,MSB)进行运算,且通过对运算结果进行过滤,而选择数值较高的运算结果进行相应的数据后处理,最终获得输出数据。因此,可在不过度影响运算结果数值的前提下增进运算系统的效能。
尽管已通过上述实施例公开本公开,但实施例并不意欲限制本公开。对于所属技术领域的技术人员将显而易见的是,在不脱离本公开的范围或精神的情况下,可对本公开的结构进行各种修改及改变。因此,本公开的保护范围落入随附权利要求书范围中。

Claims (10)

1.一种存储器内运算方法,适于由处理器利用存储器进行乘加运算,其中所述存储器包括彼此交叉的多个输入线及多个输出线,分别配置于所述输入线及所述输出线的相交点处的多个存储单元,以及分别连接至所述输出线的多个感测放大器,所述方法包括:
对待写入所述输入线及所述存储单元的输入数据及权重数据分别进行预处理,以区分为主要部分及次要部分;
将被区分为所述主要部分及所述次要部分的所述输入数据及所述权重数据,分批写入所述输入线及所述存储单元以进行所述乘加运算,获得多笔运算结果;
根据各所述运算结果的数值大小滤除所述运算结果;以及
依据所述运算结果所对应的部分,对被滤除后的所述运算结果进行后处理,以获得输出数据。
2.根据权利要求1所述的存储器内运算方法,其中所述主要部分为所处理数据的多位的最高有效位,且所述次要部分为所处理数据的多位的最低有效位。
3.根据权利要求1所述的存储器内运算方法,其中根据各所述运算结果的数值大小滤除所述运算结果的步骤包括:
滤除所述数值大小不大于预设门限值的所述运算结果;以及
排序被滤除后的所述运算结果,并选择排序在前的至少一运算结果进行所述后处理。
4.根据权利要求1所述的存储器内运算方法,还包括:
在对所述输入数据及所述权重数据进行所述预处理时,对所述输入数据及所述权重数据进行编码;以及
在对被滤除后的所述运算结果进行所述后处理时,对所述运算结果执行对应于所述编码的加权运算。
5.根据权利要求4所述的存储器内运算方法,其中对所述运算结果执行对应于所述编码的所述加权运算的步骤包括:
响应于所述运算结果对应于所述输入数据的所述主要部分及所述权重数据的所述主要部分,对所述运算结果乘上第一权重以获得第一乘积;
响应于所述运算结果对应于所述输入数据的所述主要部分及所述权重数据的所述次要部分,对所述运算结果乘上第二权重以获得第二乘积;
响应于所述运算结果对应于所述输入数据的所述次要部分及所述权重数据的所述主要部分,对所述运算结果乘上第三权重以获得第三乘积;
响应于所述运算结果对应于所述输入数据的所述次要部分及所述权重数据的所述次要部分,对所述运算结果乘上第四权重以获得第四乘积;以及
累加对所述运算结果进行所述加权运算所得的所述第一乘积、所述第二乘积、所述第三乘积及所述第四乘积,并将累加结果作为所述输出数据输出。
6.一种存储器内运算装置,包括:
存储器,包括:
彼此交叉的多个输入线及多个输出线;
多个单元,分别配置于所述输入线及所述输出线的相交点处;以及
多个感测放大器,分别连接至所述输出线;
处理器,耦接至所述存储器且被配置为:
对待写入所述输入线及所述存储单元的输入数据及权重数据分别进行预处理,以区分为主要部分及次要部分;
将被区分为所述主要部分及所述次要部分的所述输入数据及所述权重数据,分批写入所述输入线及所述存储单元以进行所述乘加运算,并累加所述感测放大器的感测值以获得多笔运算结果;
根据各所述运算结果的数值大小滤除所述运算结果;以及
依据所述运算结果所对应的部分,对被滤除后的所述运算结果进行后处理,以获得输出数据。
7.根据权利要求6所述的存储器内运算装置,其中所述主要部分为所处理数据的多位的最高有效位,且所述次要部分为所处理数据的多位的最低有效位。
8.根据权利要求6所述的存储器内运算装置,还包括:
过滤器,滤除所述数值大小不大于预设门限值的所述运算结果,其中所述处理器包括排序被滤除后的所述运算结果,并选择排序在前的至少一运算结果进行所述后处理。
9.根据权利要求6所述的存储器内运算装置,其中所述处理器包括在对所述输入数据及所述权重数据进行所述预处理时,对所述输入数据及所述权重数据进行编码,以及在对被滤除后的所述运算结果进行所述后处理时,对所述运算结果执行对应于所述编码的加权运算。
10.根据权利要求9所述的存储器内运算装置,其中所述处理器包括:
响应于所述运算结果对应于所述输入数据的所述主要部分及所述权重数据的所述主要部分,对所述运算结果乘上第一权重以获得第一乘积;
响应于所述运算结果对应于所述输入数据的所述主要部分及所述权重数据的所述次要部分,对所述运算结果乘上第二权重以获得第二乘积;
响应于所述运算结果对应于所述输入数据的所述次要部分及所述权重数据的所述主要部分,对所述运算结果乘上第三权重以获得第三乘积;
响应于所述运算结果对应于所述输入数据的所述次要部分及所述权重数据的所述次要部分,对所述运算结果乘上第四权重以获得第四乘积;以及
累加对所述运算结果进行所述加权运算所得的所述第一乘积、所述第二乘积、所述第三乘积及所述第四乘积,并将累加结果作为所述输出数据输出。
CN202111010149.4A 2020-09-08 2021-08-31 存储器内运算方法及装置 Pending CN114153420A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063075309P 2020-09-08 2020-09-08
US63/075,309 2020-09-08
US17/411,938 US20220075601A1 (en) 2020-09-08 2021-08-25 In-memory computing method and in-memory computing apparatus
US17/411,938 2021-08-25

Publications (1)

Publication Number Publication Date
CN114153420A true CN114153420A (zh) 2022-03-08

Family

ID=80461421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111010149.4A Pending CN114153420A (zh) 2020-09-08 2021-08-31 存储器内运算方法及装置

Country Status (2)

Country Link
US (1) US20220075601A1 (zh)
CN (1) CN114153420A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230070753A (ko) * 2021-11-15 2023-05-23 삼성전자주식회사 디지털 펄스 기반 크로스바 연산을 수행하는 연산 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US20220075601A1 (en) 2022-03-10

Similar Documents

Publication Publication Date Title
Sun et al. Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons
US20180321942A1 (en) Memory device, and data processing method based on multi-layer rram crossbar array
CN112711394A (zh) 基于数字域存内计算的电路
TWI792247B (zh) 記憶體內運算方法及裝置
CN114153420A (zh) 存储器内运算方法及装置
CN113741858A (zh) 存内乘加计算方法、装置、芯片和计算设备
Zhang et al. A practical highly paralleled ReRAM-based DNN accelerator by reusing weight pattern repetitions
JP7255068B2 (ja) メモリデバイス及びその動作方法
TWI798798B (zh) 記憶體內運算方法及裝置
CN110889080A (zh) 乘积累加运算装置、乘积累加运算方法和系统
CN117561519A (zh) 用于逐深度卷积的存储器内计算架构
CN113988279A (zh) 一种支持负值激励的存算阵列输出电流读出方法及系统
JP7206531B2 (ja) メモリデバイスおよびその動作方法
Li et al. A neuromorphic computing system for bitwise neural networks based on ReRAM synaptic array
JPH07210533A (ja) ニューラルネットワーク回路及びこれを用いた演算方法
TWI777645B (zh) 記憶體裝置及其操作方法
TWI783573B (zh) 記憶體裝置及其操作方法
Song et al. ESNreram: An Energy-Efficient Sparse Neural Network Based on Resistive Random-Access Memory
CN116306855B (zh) 一种基于存算一体系统的数据处理方法及装置
US20230237307A1 (en) Systems and methods for a hardware neural network engine
TWI844108B (zh) 積體電路及操作方法
CN117636945B (zh) 5bit带符号位的同或与同或累加运算电路、CIM电路
CN114153419A (zh) 存储器装置及其操作方法
TWI806641B (zh) 記憶體裝置及其操作方法
CN117973464A (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