CN111260047A - 使用存储器内运算的卷积加速器 - Google Patents
使用存储器内运算的卷积加速器 Download PDFInfo
- Publication number
- CN111260047A CN111260047A CN201910908245.7A CN201910908245A CN111260047A CN 111260047 A CN111260047 A CN 111260047A CN 201910908245 A CN201910908245 A CN 201910908245A CN 111260047 A CN111260047 A CN 111260047A
- Authority
- CN
- China
- Prior art keywords
- matrix
- input
- output
- elements
- memory cells
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- 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
- G06F17/153—Multidimensional correlation or convolution
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种用于加速核矩阵在输入矩阵上的卷积,以用于使用存储器内运算来计算输出矩阵的方法,上述方法涉及在存储单元阵列中的不同存储单元集合中储存核矩阵或多个核矩阵的元素的相应组合。为了执行卷积,将来自输入矩阵的输入向量的序列施加至阵列。将输入向量中的每一者并行施加至不同存储单元集合以在相同时间间隔期间进行计算。感测因应于每个输入向量而产生的来自不同存储单元集合中的每一者的输出,以产生表示所述输入向量对输出矩阵的多个元素的贡献的数据集合。使用在所述输入矩阵上产生的数据集合来产生输出矩阵。
Description
本申请主张于2018年11月30日提出申请的美国临时专利申请案第62/773,194号的权益,所述美国临时专利申请案并入本案供参考。
技术领域
本发明是有关于存储器内运算装置(in-memory computing device),且更具体而言,是有关于被安排用于执行卷积的存储器内运算装置。
背景技术
一种类型的神经网络被称为卷积神经网络(convolutional neural network,CNN)。在卷积神经网络中,网络的一或多个层使用核矩阵(kernel matrix)在输入矩阵(input matrix)上的卷积来生成输出矩阵(output matrix)。输入矩阵可包括高度为H、宽度为W且深度为C的图像文件案或特征图。此输入矩阵可被表征为在H-W平面中具有坐标的多个C位向量(C-bit vector)。核可包括具有与输入矩阵不同尺寸(高度R、宽度S、深度C)的滤波器的元素。输出矩阵可表示滤波后的影像或输出的特征图。输出矩阵也可具有与输入矩阵不同的尺寸(高度E、宽度F、深度M)。在一些系统中,将单个输入矩阵与不同的核(例如,M个滤波器)进行卷积以产生深度输出矩阵。
卷积是一种需要大量计算机资源及数据移动的密集运算。参见陈(Chen)等人所作的「Eyeriss:一种用于深度卷积神经网络的节能可重新配置加速器(Eyeriss:An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks)」国际固态电路会议(IEEE ISSCC),2016年1月31日至2月4日。
期望提供能够降低计算卷积(包括卷积神经网络中的卷积)所需的成本及计算资源的技术。
发明内容
阐述了一种技术,在所述技术中部署存储器内运算以支持卷积(包括作为卷积神经网络的一部分的卷积)的执行,藉此显著减少所需的数据移动量及计算机资源。
存储器内运算是一种组织在存储器内运算装置中的存储器存储单元可用于计算及储存的方式。举例而言,乘积和函数(sum-of-products function)的权重可储存在存储器内运算装置的存储器存储单元中。阵列的存储器存储单元的电性特性使乘积和函数得以实现。参见例如在2018年12月18日提出申请的共同未决美国专利申请案第16/224,602号(MXIC 2266-1),所述美国专利申请案如同在本文中完全阐述一般并入本文供参考。
本文中所述的技术包括一种支持核矩阵在输入矩阵上的卷积以使用存储器内运算来计算输出矩阵的方法,以及一种可用于所述目的的装置。在典型的卷积中,来自输入矩阵的输入向量与核矩阵的元素的不同组合(例如,不同的核向量)组合,用于计算输出矩阵的元素。在一些实施例中,给定的输入矩阵可与多个核矩阵进行卷积。
本文中所述的方法包括将核矩阵或多个核矩阵的元素的相应组合储存在存储器内运算存储单元阵列中的不同存储单元集合中。对于给定的输入向量,一种方法包括将多个组合中的核矩阵的元素的组合储存在存储单元阵列中的相应存储单元集合中,例如储存在阵列的相应行中。然后,例如通过将输入向量的元素施加至阵列的列而将来自输入矩阵的输入向量的元素施加至储存核矩阵的元素的组合的存储单元集合。所述方法包括感测因应于输入向量的元素自存储单元集合(例如,每一行)的输出,以产生表示输入向量对输出矩阵的多个元素的贡献的数据。
通过将来自包括所述首先提及的输入向量的序列中的输入矩阵的输入向量施加至储存核矩阵的元素的组合的存储单元集合、并且对于序列中的每个输入向量感测自存储单元集合的输出以产生表示对输出矩阵的贡献的输出数据,可将所述方法扩展为遍历全部或部分输入矩阵。可组合每个输入向量的输出数据以产生输出矩阵。
因此,在本文中所述的实施例中,为了执行卷积,将来自输入矩阵的输入向量的序列施加至存储器内运算阵列。将输入向量中的每一者并行(例如,在阵列的相应列上)施加至不同存储单元集合(例如,阵列中的多个行)以在相同时间间隔期间进行计算。感测因应于每个输入向量而生成的输出以产生表示所述输入向量对输出矩阵的多个元素的贡献的数据集合。可将针对输入矩阵上的输入向量的序列而生成的数据集合进行组合以产生输出矩阵。
本文中描述一种装置的实施例,所述装置包括被配置成进行存储器内运算的存储器存储单元阵列。所述阵列中的多个存储器存储单元集合(例如,多个行)储存核矩阵或多个核矩阵的元素的相应组合。所述相应组合可对应于在卷积的多个跨步(stride)中施加至输入向量的核矩阵的不同元素集合。
在一些实施例中,包括第一存取线集合。每一第一存取线可操作地耦合至不同存储器存储单元集合(例如,沿着一列)中的每一者中的对应存储器存储单元,使得可并行地将输入电压施加至不同存储器存储单元集合(例如,不同行)中的存储单元。包括第二存取线集合。每一第二存取线可操作地耦合至不同存储器存储单元集合中的对应存储器存储单元集合(例如,在单个行中)。
驱动器电路电性耦合至第一存取线集合,且被配置成断言表示在对应的第一存取在线的输入向量的元素的信号。此使得能够将输入向量并行地施加至多个不同存储器存储单元集合中的每一者。
感测电路电性耦合至第二存取线集合。在所述集合中的第二存取线中的每一者上,感测电路感测对应存储器存储单元集合的输出的组合,以产生表示每一输入向量对输出矩阵的元素的贡献的数据集合。
在所述实施例中,存储器存储单元阵列包括多行存储单元,例如沿位线排列的存储单元。不同存储单元集合中的每个存储单元集合可由单行中的存储单元构成。感测电路可被设置成感测表示存储单元集合中的存储单元的组合电导的电流。可包括逻辑电路,所述逻辑电路组合在输入矩阵上生成的数据集合以产生输出矩阵。
描述了一种用于在输入矩阵上卷积核矩阵的装置,其中将来自输入矩阵的输入向量与核矩阵的元素的多个组合进行组合,以计算输出矩阵。所述装置包括:存储器存储单元阵列,包括多个列及多个行,将核矩阵的多个元素的组合中的元素的组合储存在所述多个行中的相应行中;驱动器电路,被配置成将来自输入矩阵的输入向量的元素施加至所述多个列中的相应列;以及感测电路,用于感测来自相应行的输出数据,以产生表示所述输入向量对输出矩阵的元素的贡献的输出数据。逻辑可耦合至所述驱动器电路及所述感测电路,以将包括所述输入向量的所述输入矩阵的输入向量的序列施加至所述驱动器电路,并产生表示包括所述输入向量的所述序列中的输入向量对所述输出矩阵的元素的贡献的输出数据。逻辑可耦合至所述感测电路以组合输入向量的序列的输出数据,以产生所述输出矩阵的元素。
在各种实施例中,所使用的存储器存储单元可包括两端存储单元(two-terminalcell),所述两端存储单元包括可编程电阻存储器存储单元。在一些实施例中,所使用的存储器存储单元可包括三端存储单元(three-terminal cell),例如电荷俘获存储器存储单元。
在本文中所述的系统中,存储单元阵列设置在第一集成电路上,所述第一集成电路可使用适于形成存储单元阵列的工艺来制造。逻辑可设置在第一集成电路外部的电路上,例如设置在第二集成电路上,所述第二集成电路可使用适于逻辑电路的工艺来制造,以将给定输入矩阵的输入向量的序列提供至用于存储单元阵列的驱动器电路。此外,位于第一集成电路外部(例如,在第二集成电路上、或者在另一个集成电路上)的逻辑接收由感测电路产生的数据集合,并且组合序列中的每个输入向量的数据集合以产生输出矩阵。
如在本文中所述的用于加速卷积的技术可被实施以便支持卷积神经网络。举例而言,核矩阵在输入矩阵上的卷积可包括卷积神经网络的层。
通过阅读各附图、详细说明、及随附权利要求可看出本发明的其他方式及优点。
附图说明
图1为卷积运算中的特定阶段的图示,并且可出于在本文中使用的术语的目的而被提及。
图2为图1所示卷积运算中的不同阶段的图示。
图3为经配置用于加速如在本文中所述的卷积运算的存储器存储单元阵列的简化附图。
图4为用于加速如在本文中所述的卷积的系统的方块图。
图5示出存储器存储单元阵列,其中所述阵列中的不同存储器存储单元集合储存多个核矩阵的元素的相应组合。
图6为用于加速卷积的系统的简化系统方块图。
图7为用于加速卷积的系统的替代实施例的简化系统方块图。
图8为示出用于加速如在本文中所述的卷积的方法的流程图。
【符号说明】
10:输入矩阵
11:核矩阵/核
12:输出矩阵
14:核
15:窗口
16:窗口
20:输出值
21:输出值
101、102、103、104、109:第二存取线
111、112、113、114、118:第一存取线
120:存储器存储单元
125:输出矩阵
126:下一窗口
411、412、413、421、422、423:存储单元
454:感测电路
455:列译码器/驱动器
456:行译码器
458:数据缓冲器
460:收集电路
461:一组累加器
462:存储器
481、482:第一存取线
491、492、493:第二存取线
501、502、503、504、509:第二存取线
511、512、513、514、519:第二存取线
520:存储器存储单元
521、522、523、524、528:第一存取线
600:第一集成电路
601:存储器内运算单元
602:逻辑/收集及累加逻辑/收集及累加单元
603:本地存储器
610:主机
620:大规模存储器
700:第一集成电路
701:存储器内运算单元
702:收集及累加单元
703:本地存储器
705:主机
706:大规模存储器
710:第二集成电路
720:第三集成电路
801、802、803、804、805、806:步骤
C:深度
E:高度
F:宽度
F1、FC:滤波器向量
F1 -1,-1、F1 -1,0、F1 -1,1、F1 0,-1、F1 1,1:向量
FM -1,-1、FM -1,0、FM -1,1、FM 0,-1、FM 1,1:向量
FILTER 1:三维滤波器
FILTER M:核矩阵/核/第M核
H:高度
M:深度
M11、M12、M13、M14、M21、M22、M23、M24、M31、M32、M33、M34:输出元素
R:高度
S:宽度
STRIDE N:跨步
STRIDE X:跨步
W:宽度/存储器存储单元
W11、W12、W13、W21、W22、W23:权重
X1、……、XC:输入向量
x1、x2:输入/信号输入
y1、y2、y3:电流/数字值/乘积和输出
具体实施方式
参照图1至图8提供对本发明实施例的详细说明。
图1及图2示出了卷积运算的阶段。在图1中,输入矩阵10具有高度H、宽度W及深度C。在二维输入矩阵的情形中,深度C可为1。在此实例中的核矩阵11包括三维滤波器FILTER1。核矩阵11具有高度R、宽度S及深度C。执行卷积以计算输出矩阵12。在此实例中,输出矩阵12具有高度E、宽度F及深度M。在如图1所示的阶段中,对于给定的跨步STRIDE X及给定的三维滤波器FILTER 1而计算输入矩阵10中输入向量的逐元素相乘(element-wisemultiplication)。在如图2所示的阶段中,对于给定的跨步STRIDE N及给定的核矩阵FILTER M而计算输入矩阵中输入向量的逐元素相乘。
在卷积中,通常以扫描模式(scan pattern)将核施加至具有水平跨步及垂直跨步的序列中的输入矩阵。在每个特定跨步中,核的元素与在跨步的位置处的窗口中的输入矩阵的元素集合相组合。每个跨步的计算结果可用于计算输出矩阵12中的单个输出值(例如,20),或者可依据卷积函数而以许多其他方式使用。在图1所示的实例中,对于STRIDE X而言,将核施加至输入矩阵在窗口15中的元素集合。在输入矩阵的左上角处的输入向量X1:XC包括来自输入矩阵的每个层的元素。用于STRIDE X的目的的此输入向量X1:XC与来自核矩阵11的左上角的滤波器向量F1:FC组合。窗口15内的每个输入向量与包括核11的元素的组合的对应滤波器向量组合。来自窗口15内的每个输入向量的结果根据卷积的函数被组合,以在输出矩阵12中产生输出值20。
对于输入核的每个跨步,使用输入向量的不同组合作为通过输入矩阵的核扫描的窗口,以在输出矩阵中产生对应的值。然而,输入向量中的每一者可用于多个跨步中用于计算多个输出值。举例而言,若核矩阵为3×3×C矩阵,则其可由各自具有C个元素的长度的9个核向量来表示。对于为1的水平跨步及为1的垂直跨步,输入向量中的每一者可以由9个不同跨步的9个核向量中的每一个来利用。
在图2中,表示了卷积的一个阶段,在所述阶段中,将核FILTER M应用于跨步STRIDE N中以计算输出矩阵12中的输出值21。在此实例中,应用FILTER M来计算输出矩阵的层M中的元素。在跨步STRIDE N中,将核14施加至输入矩阵的窗口16中,并且结果被组合以计算输出矩阵的输出值21。因此,此示出多个核(在此实例中为M个核)可与输入矩阵10进行卷积以计算具有多个层级(在此实例中为M个层级)的输出矩阵,其中M个核中的每一者被用于为输出矩阵12的M个层级中的一个对应层级以计算输出值。
因此,在卷积中,每个输入向量在卷积的多个跨步中与核组合,其中每个跨步可用于计算输出矩阵的一个元素(通常)。在其中使用给定输入向量的卷积的每个跨步中,存在与其组合的核的元素集合。对于每个跨步而言,施加至输入向量的核的元素集合位于核的不同位置中。
在如本文中所述的卷积加速器中,将与特定输入向量组合的核中的多个元素集合(即,用于其中使用特定输入向量的每一跨步的集合)储存在存储单元阵列的不同存储单元集合(例如,不同行中的存储单元)中。不同存储单元集合的输出表示输入向量对在卷积中使用所述输入向量的多个跨步中的相应一者的输出的贡献。可并行地感测不同存储单元集合的输出,并将所述输出提供至逻辑电路,所述逻辑电路收集并组合所述输出以形成输出矩阵。
图3示出存储器存储单元「W」(例如,120)的阵列。第一存取线111、112、113、114、......、118(例如,字线)的集合与所述阵列一起设置,其中每一第一存取线可操作地耦合至所述阵列的一列中的存储器存储单元,使得其在单个列中耦合至阵列的多个行中的每一者中的对应存储器存储单元。第二存取线101、102、103、104、......、109(例如,位线)的集合与所述阵列一起设置。每一第二存取线在单个行中可操作地耦合至阵列的多个列中的每一者中的对应存储器存储单元集合。
在此种排列方式中,耦合至第一存取线集合的每一行中的存储单元包括储存核矩阵的元素的组合的存储器存储单元集合。对于此实例而言,核矩阵可被表征为滤波器F1的长度为C的向量集合(例如,图1所示的F1至FC),其在R,S平面中具有坐标,如下所示:
F1 -1,-1 F1 -1,0 F1 -1,1
F1 0,-1 F1 0,0 F1 0,1
F1 1,-1 F1 1,0 F1 1,1
因此,核矩阵包括9个向量。在输入矩阵上水平跨步及垂直跨步为1的卷积中,为了计算输出矩阵中的不同值,输入矩阵的每个向量可与9个向量中的每一者进行组合。举例而言,依据正被计算的具体卷积,边缘上的一些输入向量可与不同数量的向量进行组合。
图3中的存储单元阵列在一行中储存核的一个向量的元素。因此,对于此实例中的3×3核而言,使用9个存储单元集合来储存9个向量。可操作地耦合至第二存取线101的行中的存储单元形成在坐标-1,-1处储存第一滤波器F1的向量F1 -1,-1的元素的存储单元集合。可操作地耦合至第二存取线102的行中的存储单元形成在坐标-1,0处储存第一滤波器F1的向量F1 -1,0的元素的存储单元集合。可操作地耦合至第二存取线103的行中的存储单元形成在坐标-1,1处储存第一滤波器F1的向量F1 -1,1的元素的存储单元集合。可操作地耦合至第二存取线104的行中的存储单元形成在坐标0,-1处储存第一滤波器F1的向量F1 0,-1的元素的存储单元集合。在图3中未示出第五行至第八行。阵列的包括可操作地耦合至第二存取线109的存储单元的最后一行形成在坐标1,1处储存第一滤波器F1的向量F1 1,1的元素的存储单元集合。
为了执行存储器内运算,在此实例中,在假定深度C为8的情况下,驱动器电路将输入向量X1:XC施加至第一存取线111至118的集合。感测电路耦合至第二存取线101至109的集合,以针对不同第二存取在线的多个存储单元集合中的每一者来感测存储器存储单元在其对应的存储单元集合中的电导的组合。
举例而言,每个第二存取在线的电流表示由在存储器存储单元中储存在行中的权重实施的滤波器向量与施加至第一存取在线的输入向量的逐元素乘积和(element-wisesum-of-products)。可通过将9个不同的感测电路并行地用于9个滤波器向量中的每一者而同时计算此逐元素乘积和。
出于举例说明的目的,图3示出输出矩阵125的一部分,包括3列及4行元素M11至M34。在一个实例中,输出元素M22可等于9个滤波器向量的组合乘以9个输入向量的窗口的和,其中输入矩阵中坐标2,2处的输入向量为窗口的中心。
因此,对于输入矩阵上以坐标2,2为中心的窗口而言,第二存取线101上的输出是用于计算输出元素M33的部分和(partial sum)。第二存取线102上的输出是用于计算输出元素M32的部分和。第二存取线103上的输出是用于计算输出元素M31的部分和。第二存取线104上的输出是用于计算输出元素M23的部分和,等等。第二存取线109上的输出是用于计算输出元素M11的部分和。因此,9个第二存取线的输出表示输入向量对9个不同跨步的计算的贡献。
对于如在126处所示的以坐标2,3为中心的下一窗口而言,第二存取线101上的输出是用于计算输出元素M34的部分和。第二存取线102上的输出是用于计算输出元素M33的部分和。第二存取线103上的输出是用于计算输出元素M32的部分和。第二存取线104上的输出是用于计算输出元素M24的部分和,等等。第二存取线109上的输出是用于计算输出元素M12的部分和。
为了计算输出矩阵的元素的值,当输入向量的序列被施加至用于存储器内运算的存储单元阵列时,必须收集并累加来自每个输入向量的对所述值有贡献的部分和。可使用数字逻辑及草稿型存储器(scratchpad memory)来执行此收集及累加部分和的函数。
图4示出存储器存储单元阵列的简化实例,所述存储器存储单元阵列包括C个列(对应于列线的数目)及N个行(对应于核向量的数目)。在此例示中,所述阵列包括位于第一行中的存储单元411及421、位于第二行中的存储单元412及422以及位于第三行中的存储单元413及423。当然,阵列的实施例可包括许多列及许多行。
存储器存储单元可为电阻式RAM,其中存储器存储单元的电阻表示如上所述的核的元素(例如,滤波器中的权重)。阵列中的每一存储器存储单元储存对应于滤波器向量的元素的权重因子Wnm,且可分别表示为储存权重W11、W12、W13、W21、W22及W23。
第一存取线(例如,481、482)的集合耦合至第一类型的存储器存储单元的相应列中的存储器存储单元。第二存取线(例如,491、492及493)的集合耦合至第一类型的存储器存储单元的相应行中的存储器存储单元。第一存取线(例如,481、482)的集合耦合至列译码器/驱动器455,且第二存取线的集合耦合至行译码器456。在第一存取线的集合中的第一存取在线的信号可表示至相应列的输入x1、x2。在此实例中,列译码器/驱动器455在第一存取线481上断言信号输入x1,且在第一存取线482上断言信号输入x2,此可表示输入向量的元素。
感测电路454经由行译码器456耦合至第二存取线的集合中的相应第二存取线。在第二存取线的集合中的特定第二存取线(例如,491、492、493)处感测到的电流(例如,y1、y2、y3)可表示输入x1、x2乘以相应的权重因子Wnm的乘积和。
因此,在此实例中,第二存取线491上的存储单元集合因应于输入向量而在第二存取在线产生组合电流,所述输入向量在感测时产生数字值y1=x1*w11+X2*w21。自线492输出的数字值为y2=x1*w12+X2*w22。自线493输出的数字值为y3=x1*w13+x2*w23。乘积和输出y1、y2、y3可储存在数据缓冲器458的输出数据路径中。
输出数据路径耦合至收集电路460,所述收集电路460可包括一组多任务器,所述一组多任务器可被控制来对准多个群组中的给定输入向量的输出,以便在计算多个输出值时与来自其他输入向量的输出进行组合。所述多个群组可被施加至一组累加器461以计算输出矩阵值。然后可将输出矩阵值施加至存储器462。
图5示出类似于图3所示的存储器存储单元阵列,其出于针对存储器存储单元的一个阵列中的多个核(如图1中所示的M个核)进行存储器内运算的目的而扩展,所述存储器存储单元阵列可被配置成同时将输入向量施加至所述多个核。在此实例中,示出了存储器存储单元「W」(例如,520)的阵列。第一存取线521、522、523、524、......、528(例如,字线)的集合与所述阵列一起设置,其中每一第一存取线可操作地耦合至所述阵列的一列中的存储器存储单元,使得其耦合至阵列的所述多个行中的每一者中的对应存储器存储单元。用于三维滤波器(FILTER 1)的第二存取线501、502、503、504、......、509的集合以及用于第M核(FILTER M)的第二存取线511、512、513、514、......、519的集合与所述阵列一起设置。在阵列中包括用于核FILTER 2至FILTER M-1的许多第二存取线,但在图中未示出。在此实例中,每一第二存取线在单个行中可操作地耦合至阵列的多个列中的每一者中的对应存储器存储单元集合。
在此种排列方式中,耦合至所述第一存取线集合的每一行中的存储单元包括储存多个核矩阵的元素的组合的存储器存储单元集合。对于此实例而言,如在图3中所示的FILTER 1的三维滤波器可被表征为滤波器F1的长度为C的向量集合(例如,图1所示的F1至FC),其在R,S平面中具有坐标,如下所示:
F1 -1,-1 F1 -1,0 F1 -1,1
F1 0,-1 F1 0,0 F1 0,1
F1 1,-1 F1 1,0 F1 1,1
FILTER M的核矩阵可被表征为滤波器FM的长度为C的向量集合(例如,图1所示的F1至FC),其在R,S平面中具有坐标,如下所示:
FM -1,-1 FM -1,0 FM -1,1
FM 0,-1 FM 0,0 FM 0,1
FM 1,-1 FM 1,0 FM 1,1
因此,M个核矩阵中的每一者都包括9个向量。在输入矩阵上的水平跨步及垂直跨步为1的卷积中,为了计算输出矩阵中的不同值,输入矩阵的每个向量可与M个核中的每一者中的9个向量中的每一者进行组合(9*M个组合)。依据正被计算的具体卷积,边缘上的一些输入向量例如可与不同数量的向量进行组合。
图5中的存储单元阵列将核的一个向量的元素储存在一行中。因此,对于此实例中的3×3核而言,使用9个存储单元集合来储存每一核的9个向量。第二存取线501至509上的存储单元储存第一滤波器F1的向量,如参照图3的对应存储单元所述。可操作地耦合至第二存取线511的行中的存储单元形成在坐标-1,-1处储存第M滤波器FM的向量FM -1,-1的元素的存储单元集合。可操作地耦合至第二存取线512的行中的存储单元形成在坐标-1,0处储存第M滤波器FM的向量FM -1,0的元素的存储单元集合。可操作地耦合至第二存取线513的行中的存储单元形成在坐标-1,1处储存第M滤波器FM的向量FM -1,1的元素的存储单元集合。可操作地耦合至第二存取线514的行中的存储单元形成在坐标0,-1处储存第M滤波器FM的向量FM 0,-1的元素的存储单元集合。在图3中未示出第五行至第八行。阵列中包括可操作地耦合至第二存取线519的存储单元的最后一行形成在坐标1,1处储存第M滤波器FM的向量FM 1,1的元素的存储单元集合。
为了执行存储器内运算,驱动器电路将输入向量XI:XC施加至第一存取线521至528的集合。在此实例中,在假定深度C为8。感测电路耦合至第二存取线501至509的集合且耦合至第二存取线511至519的集合,以针对不同第二存取在线的多个存储单元集合中的每一者来感测存储器存储单元在其对应的存储单元集合中的电导的组合。
如上所述,可将所感测到的输出提供至数字逻辑以收集并累加输出,从而计算输出矩阵的元素。
在一些实施例中,可扩展存储单元阵列以储存用于多个卷积(例如,用于卷积神经网络的多个层的卷积)的核数据。
图6示出结合如本文中所述的存储器内运算的系统,所述系统适于执行卷积神经网络或利用卷积的其他数据处理运算。所述系统包括第一集成电路600,所述第一集成电路600包括存储器内运算单元601,所述存储器内运算单元601包括被配置用于存储器内运算的存储单元阵列,例如参照图3至图5所述。存储器内运算单元的输出被施加至逻辑602,逻辑602收集并累加或以其他方式操纵存储器内运算的数据输出以产生输出矩阵。输出矩阵储存在第一集成电路600上的本地存储器603中。在此实例中的第一集成电路600被耦合至主机610,主机610可为被配置用于机器学习的数据处理系统或利用复杂的卷积运算的其他系统。举例而言,主机610可为图像处理器。主机610可耦合至大规模存储器620,例如DRAM或其他高速或高容量存储器。主机可包括计算机程序,所述计算机程序实施或支持经由例如寻址及命令序列(addressing and command sequence)耦合至驱动器电路及感测电路的逻辑,所述寻址及命令序列被施加至存储器内运算单元601以将来自DRAM或输入矩阵数据的其他来源的输入矩阵的输入向量的序列施加至驱动器电路,并且与输入向量的序列相协调,并且在存储器内运算单元601上的收集及累加逻辑602产生表示包括所述输入向量的序列中的输入向量对输出矩阵的元素的贡献的输出数据,并组合输入向量的序列的输出数据以产生输出矩阵的元素。
在此实例中,包括存储器存储单元阵列的存储器内运算单元601与用于操纵输出的逻辑电路(收集及累加单元602及本地存储器603)制造于同一集成电路上。主机610及大规模存储器620可在集成电路600之外实施。
在一些实施例中,可在单个集成电路或单个多芯片封装上实施所有该些组件。
图7示出了结合如本文所述的存储器内运算的系统的另一实施例,其适于执行卷积神经网络或利用卷积的其他数据处理运算。此为多种配置形式的代表,其中支持卷积运算的逻辑结合软件设置在指令处理器上,设置在特定用途逻辑中,设置在可编程门阵列上的数据流程图中,等等。
在此实施例中,在第一集成电路700上实施存储器内运算单元701。第一集成电路700具有来自例如施加至第二集成电路710的感测放大器的数字输出。在此实例中,第二集成电路710包括用于操纵输出的逻辑电路,所述逻辑电路包括收集及累加单元702及本地存储器703。同样,主机705及大规模存储器706可在第三集成电路720上实施。可使用被优化用于实施逻辑电路的制造设施来制造集成电路710及720。另一方面,可使用针对所使用的存储器阵列的类型而优化的制造设施来制造集成电路700。
图8为示出一种用于加速核矩阵在输入矩阵上的卷积的方法的流程图,其中将来自输入矩阵的输入向量与核矩阵的元素的各种组合进行组合,以计算输出矩阵。阵列中的不同存储单元集合可用于实施元素的各种组合。在准备计算时,所述方法包括将一或多个核的向量储存在阵列中的不同存储单元集合中,其中核的每个向量包括核矩阵的元素的不同组合(801)。为了执行计算,依序自存储器读取来自输入矩阵的输入向量(802)。将输入向量的序列提供至阵列的输入驱动器(803)。此使得将来自输入矩阵的每个输入向量的元素并行地施加至阵列中的不同存储单元集合(804)。接下来,感测来自不同存储单元集合中的每一者的输出,以针对每个输入向量产生表示对输出矩阵的多个元素的贡献的数据集合(805)。最后,组合序列中每个输入向量的数据集合以产生输出矩阵(806)。
通过使用此工艺,输入矩阵只能被施加至存储器内运算单元一次。此可消除为了计算卷积的不同跨步自输入矩阵重复读取及写入向量的需要。因此,系统可以较低的成本及较低的带宽数据路径运作,以在计算资源之间移动输入矩阵及输出矩阵。
举例而言,在将卷积实施为卷积神经网络的层的实施例中,可使用单个存储器内运算单元来重复此循环,在所述单个存储器内运算单元中,针对卷积神经网络的多个层,将多个核或核集合排列在大规模存储单元阵列中。一旦计算出了输出向量作为卷积神经网络的第一层的结果,所述算法便可循环以向卷积神经网络的另一层提供输入矩阵。作为另一选择,被产生作为存储器内运算单元的结果的输出矩阵可被配置为卷积神经网络的下一层的输入矩阵。
作为利用如在本文中所述配置的存储器内运算的结果,提供了一种用于执行卷积的系统,所述系统可显著减少所需的数据移动量。此可提高指令周期,降低执行运算所需的功率,并降低在卷积期间移动数据的带宽要求。
尽管通过参照以上所详述的优选实施例及实例公开了本发明,然而应理解,这些实例旨在为说明性的而非具有限制意义。应预期,对于本领域技术人员而言将显而易见的是存在将落于本发明的精神及以下权利要求范围内的润饰及组合。
Claims (10)
1.一种用于加速核矩阵在输入矩阵上的卷积的方法,包括:
将所述核矩阵的元素的组合储存在一存储单元阵列中的相应一存储单元集合中;
将来自所述输入矩阵的一输入向量的元素施加至储存所述核矩阵的所述元素的组合的所述存储单元集合;以及
感测因应于所述输入向量的所述元素自所述存储单元集合的输出,以产生表示所述输入向量对所述输出矩阵的多个元素的贡献的数据。
2.如权利要求1所述的方法,包括将来自包括所述首次提及的输入向量的序列中的所述输入矩阵的输入向量施加至储存所述核矩阵的所述元素的组合的所述存储单元集合,以及针对所述序列中的每个输入向量,感测来自所述存储单元集合的输出以产生表示对所述输出矩阵的贡献的输出数据,并且对表示所述序列中的所述输入向量中的每一者对所述输出矩阵的贡献的所述输出数据进行组合以产生所述输出矩阵。
3.如权利要求1所述的方法,其中所述存储单元集合设置在包括多行存储单元的存储单元阵列中,并且其中每一存储单元集合由所述多行中的单个行中的存储单元构成。
4.如权利要求1所述的方法,其中所述存储单元集合包括可编程电阻存储器存储单元。
5.如权利要求1所述的方法,其中所述存储单元集合包括电荷俘获存储器存储单元。
6.如权利要求1所述的方法,其中所述感测包括感测所述存储单元集合中的每一者中的存储单元因应于所述输入向量的组合电导。
7.如权利要求1所述的方法,其中所述输出针对所述存储单元集合中的每一者表示所述输入向量的所述元素与所述核矩阵的对应元素的组合的乘积的相应和。
8.如权利要求2所述的方法,包括将所述输出数据提供至一数字逻辑,以及针对所述序列中的所述输入向量中的每一者组合所述数字逻辑中的所述输出数据以产生所述输出矩阵。
9.一种用于在输入矩阵上卷积核矩阵的装置,包括:
一存储器存储单元阵列,包括多个列及多个行,将所述核矩阵的元素的组合储存在所述多个行中的相应行中;
一驱动器电路,被配置成将来自所述输入矩阵的输入向量的元素施加至所述多个列中的相应列;以及
一感测电路,用于感测来自所述相应行的输出数据,以产生表示所述输入向量对所述输出矩阵的元素的贡献的输出数据;
一耦合至所述驱动器电路及所述感测电路的逻辑,用于将包括所述输入向量的所述输入矩阵的输入向量的序列施加至所述驱动器电路,并产生表示包括所述输入向量的所述序列中的输入向量对所述输出矩阵的元素的贡献的输出数据,以及
一耦合至所述感测电路的逻辑,用于组合所述输入向量的序列的所述输出数据,以产生所述输出矩阵的元素。
10.如权利要求9所述的装置,其中所述相应行的所述输出数据表示所述相应列上的所述输入向量的所述元素与储存在所述相应行中的所述核矩阵的所述元素的组合的乘积的和。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862773194P | 2018-11-30 | 2018-11-30 | |
US62/773,194 | 2018-11-30 | ||
US16/450,334 | 2019-06-24 | ||
US16/450,334 US11562229B2 (en) | 2018-11-30 | 2019-06-24 | Convolution accelerator using in-memory computation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111260047A true CN111260047A (zh) | 2020-06-09 |
Family
ID=70848704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910908245.7A Pending CN111260047A (zh) | 2018-11-30 | 2019-09-24 | 使用存储器内运算的卷积加速器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11562229B2 (zh) |
CN (1) | CN111260047A (zh) |
TW (1) | TW202022711A (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11429386B2 (en) * | 2019-10-30 | 2022-08-30 | Robert Bosch Gmbh | Method and apparatus for an advanced convolution on encrypted data |
CN111738417B (zh) * | 2020-06-19 | 2024-03-08 | 格兰菲智能科技有限公司 | 神经网络计算装置及其快取管理方法 |
WO2022124993A1 (en) * | 2020-12-11 | 2022-06-16 | National University Of Singapore | Planar-staggered array for dcnn accelerators |
US20220222318A1 (en) * | 2021-01-08 | 2022-07-14 | Microsoft Technology Licensing, Llc | Performing tensor operations using a programmable control engine |
US11544213B2 (en) | 2021-03-04 | 2023-01-03 | Samsung Electronics Co., Ltd. | Neural processor |
TWI828206B (zh) * | 2022-06-24 | 2024-01-01 | 旺宏電子股份有限公司 | 記憶體裝置及其用以執行乘加運算之運作方法 |
US20230420043A1 (en) * | 2022-06-24 | 2023-12-28 | Macronix International Co., Ltd. | Memory device and operation method thereof for performing multiply-accumulate operation |
CN117093816B (zh) * | 2023-10-19 | 2024-01-19 | 上海登临科技有限公司 | 矩阵乘运算方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170024632A1 (en) * | 2015-07-23 | 2017-01-26 | Mireplica Technology, Llc | Performance Enhancement For Two-Dimensional Array Processor |
CN106530210A (zh) * | 2016-10-31 | 2017-03-22 | 北京大学 | 基于阻变存储器件阵列实现并行卷积计算的设备和方法 |
CN106847335A (zh) * | 2016-12-27 | 2017-06-13 | 北京大学 | 基于阻变存储阵列的卷积计算存储一体化设备及方法 |
CN106843809A (zh) * | 2017-01-25 | 2017-06-13 | 北京大学 | 一种基于nor flash阵列的卷积运算方法 |
Family Cites Families (153)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2619663C3 (de) | 1976-05-04 | 1982-07-22 | Siemens AG, 1000 Berlin und 8000 München | Feldeffekttransistor, Verfahren zu seinem Betrieb und Verwendung als schneller Schalter sowie in einer integrierten Schaltung |
US4987090A (en) | 1987-07-02 | 1991-01-22 | Integrated Device Technology, Inc. | Static ram cell with trench pull-down transistors and buried-layer ground plate |
US5029130A (en) | 1990-01-22 | 1991-07-02 | Silicon Storage Technology, Inc. | Single transistor non-valatile electrically alterable semiconductor memory device |
JPH0451382A (ja) | 1990-06-20 | 1992-02-19 | Hitachi Ltd | 情報処理装置 |
JP3073645B2 (ja) | 1993-12-27 | 2000-08-07 | 株式会社東芝 | 不揮発性半導体記憶装置およびその動作方法 |
US7089218B1 (en) | 2004-01-06 | 2006-08-08 | Neuric Technologies, Llc | Method for inclusion of psychological temperament in an electronic emulation of the human brain |
US6107882A (en) | 1997-12-11 | 2000-08-22 | Lucent Technologies Inc. | Amplifier having improved common mode voltage range |
US6960499B2 (en) | 1998-02-24 | 2005-11-01 | Texas Instruments Incorporated | Dual-counterdoped channel field effect transistor and method |
US6313486B1 (en) | 2000-06-15 | 2001-11-06 | Board Of Regents, The University Of Texas System | Floating gate transistor having buried strained silicon germanium channel layer |
US6829598B2 (en) | 2000-10-02 | 2004-12-07 | Texas Instruments Incorporated | Method and apparatus for modeling a neural synapse function by utilizing a single conventional MOSFET |
US6703661B2 (en) | 2001-12-27 | 2004-03-09 | Ching-Yuan Wu | Contactless NOR-type memory array and its fabrication methods |
JP4620943B2 (ja) | 2003-10-16 | 2011-01-26 | キヤノン株式会社 | 積和演算回路及びその方法 |
US7057216B2 (en) | 2003-10-31 | 2006-06-06 | International Business Machines Corporation | High mobility heterojunction complementary field effect transistors and methods thereof |
US6906940B1 (en) | 2004-02-12 | 2005-06-14 | Macronix International Co., Ltd. | Plane decoding method and device for three dimensional memories |
US20050287793A1 (en) | 2004-06-29 | 2005-12-29 | Micron Technology, Inc. | Diffusion barrier process for routing polysilicon contacts to a metallization layer |
JP2006127623A (ja) | 2004-10-28 | 2006-05-18 | Sony Corp | 半導体記憶装置とそのアクセス方法 |
US7400533B2 (en) | 2006-05-04 | 2008-07-15 | Micron Technology, Inc. | Mimicking program verify drain resistance in a memory device |
US7372753B1 (en) | 2006-10-19 | 2008-05-13 | Unity Semiconductor Corporation | Two-cycle sensing in a two-terminal memory array having leakage current |
US8058636B2 (en) | 2007-03-29 | 2011-11-15 | Panasonic Corporation | Variable resistance nonvolatile memory apparatus |
JP2009080892A (ja) | 2007-09-26 | 2009-04-16 | Toshiba Corp | 半導体記憶装置 |
KR20090037690A (ko) | 2007-10-12 | 2009-04-16 | 삼성전자주식회사 | 비휘발성 메모리 소자, 그 동작 방법 및 그 제조 방법 |
US8000151B2 (en) | 2008-01-10 | 2011-08-16 | Micron Technology, Inc. | Semiconductor memory column decoder device and method |
US8860124B2 (en) | 2009-01-15 | 2014-10-14 | Macronix International Co., Ltd. | Depletion-mode charge-trapping flash device |
JP5462490B2 (ja) | 2009-01-19 | 2014-04-02 | 株式会社日立製作所 | 半導体記憶装置 |
JP5317742B2 (ja) | 2009-02-06 | 2013-10-16 | 株式会社東芝 | 半導体装置 |
US8203187B2 (en) | 2009-03-03 | 2012-06-19 | Macronix International Co., Ltd. | 3D memory array arranged for FN tunneling program and erase |
TWI433153B (zh) | 2009-08-17 | 2014-04-01 | Ind Tech Res Inst | 記憶體單元之讀取方法 |
US9099181B2 (en) | 2009-08-19 | 2015-08-04 | Grandis, Inc. | Non-volatile static ram cell circuit and timing method |
JP2011065693A (ja) | 2009-09-16 | 2011-03-31 | Toshiba Corp | 不揮発性半導体記憶装置 |
US8275728B2 (en) | 2009-11-05 | 2012-09-25 | The United States Of America As Represented By The Secretary Of The Air Force | Neuromorphic computer |
US8311965B2 (en) | 2009-11-18 | 2012-11-13 | International Business Machines Corporation | Area efficient neuromorphic circuits using field effect transistors (FET) and variable resistance material |
TWI427636B (zh) | 2009-11-27 | 2014-02-21 | Macronix Int Co Ltd | 於一記憶積體電路上進行抹除操作之方法與裝置 |
WO2011097592A1 (en) | 2010-02-07 | 2011-08-11 | Zeno Semiconductor , Inc. | Semiconductor memory device having electrically floating body transistor, and having both volatile and non-volatile functionality and method |
KR101658479B1 (ko) | 2010-02-09 | 2016-09-21 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8331127B2 (en) | 2010-05-24 | 2012-12-11 | Macronix International Co., Ltd. | Nonvolatile memory device having a transistor connected in parallel with a resistance switching device |
US8547720B2 (en) | 2010-06-08 | 2013-10-01 | Sandisk 3D Llc | Non-volatile memory having 3D array of read/write elements with efficient decoding of vertical bit lines and word lines |
US8890233B2 (en) | 2010-07-06 | 2014-11-18 | Macronix International Co., Ltd. | 3D memory array with improved SSL and BL contact layout |
US9342780B2 (en) | 2010-07-30 | 2016-05-17 | Hewlett Packard Enterprise Development Lp | Systems and methods for modeling binary synapses |
US20120044742A1 (en) | 2010-08-20 | 2012-02-23 | Micron Technology, Inc. | Variable resistance memory array architecture |
US8432719B2 (en) | 2011-01-18 | 2013-04-30 | Macronix International Co., Ltd. | Three-dimensional stacked and-type flash memory structure and methods of manufacturing and operating the same hydride |
US8630114B2 (en) | 2011-01-19 | 2014-01-14 | Macronix International Co., Ltd. | Memory architecture of 3D NOR array |
US8759895B2 (en) | 2011-02-25 | 2014-06-24 | Micron Technology, Inc. | Semiconductor charge storage apparatus and methods |
JP2013069356A (ja) | 2011-09-20 | 2013-04-18 | Toshiba Corp | 半導体記憶装置 |
JP5722180B2 (ja) | 2011-09-26 | 2015-05-20 | 株式会社日立製作所 | 不揮発性記憶装置 |
US9698185B2 (en) | 2011-10-13 | 2017-07-04 | Omnivision Technologies, Inc. | Partial buried channel transfer device for image sensors |
US9430735B1 (en) | 2012-02-23 | 2016-08-30 | Micron Technology, Inc. | Neural network in a memory device |
JP5998521B2 (ja) | 2012-02-28 | 2016-09-28 | セイコーエプソン株式会社 | 不揮発性半導体メモリー及び不揮発性半導体メモリーの製造方法 |
US8981445B2 (en) | 2012-02-28 | 2015-03-17 | Texas Instruments Incorporated | Analog floating-gate memory with N-channel and P-channel MOS transistors |
US8730724B2 (en) | 2012-08-07 | 2014-05-20 | Sandisk Technologies Inc. | Common line current for program level determination in flash memory |
JP2014053056A (ja) | 2012-09-06 | 2014-03-20 | Toshiba Corp | 半導体記憶装置 |
US9747230B2 (en) | 2012-10-15 | 2017-08-29 | Rambus Inc. | Memory rank and ODT configuration in a memory system |
US9019771B2 (en) | 2012-10-26 | 2015-04-28 | Macronix International Co., Ltd. | Dielectric charge trapping memory cells with redundancy |
US20140149773A1 (en) | 2012-11-29 | 2014-05-29 | Agency For Science, Technology And Research | Latch circuit and data processing system |
KR20140113024A (ko) | 2013-03-15 | 2014-09-24 | 에스케이하이닉스 주식회사 | 저항 변화 메모리 장치 및 그 구동방법 |
KR102179899B1 (ko) | 2013-08-05 | 2020-11-18 | 삼성전자주식회사 | 뉴로모픽 시스템 및 그 구현 방법 |
CN105612617B (zh) | 2013-10-11 | 2018-08-24 | 夏普株式会社 | 半导体装置 |
KR102139944B1 (ko) | 2013-11-26 | 2020-08-03 | 삼성전자주식회사 | 3차원 반도체 메모리 장치 |
KR20150070819A (ko) | 2013-12-17 | 2015-06-25 | 에스케이하이닉스 주식회사 | 반도체 메모리 소자 및 그 제조방법 |
US9535831B2 (en) | 2014-01-10 | 2017-01-03 | Advanced Micro Devices, Inc. | Page migration in a 3D stacked hybrid memory |
CN103778468B (zh) | 2014-01-16 | 2016-09-07 | 北京大学 | 一种基于rram的新型神经网络电路 |
US9698156B2 (en) | 2015-03-03 | 2017-07-04 | Macronix International Co., Ltd. | Vertical thin-channel memory |
US9147468B1 (en) | 2014-05-21 | 2015-09-29 | Macronix International Co., Ltd. | Multiple-bit-per-cell, independent double gate, vertical channel memory |
US9391084B2 (en) | 2014-06-19 | 2016-07-12 | Macronix International Co., Ltd. | Bandgap-engineered memory with multiple charge trapping layers storing charge |
US9536969B2 (en) | 2014-09-23 | 2017-01-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Self-aligned split gate flash memory |
US9607692B2 (en) | 2014-10-03 | 2017-03-28 | Micron Technology, Inc. | Threshold voltage distribution determination |
WO2016060617A1 (en) | 2014-10-15 | 2016-04-21 | Agency For Science, Technology And Research | Flip-flop circuit, method of controlling a flip-flop circuit and memory device |
US9460792B2 (en) | 2014-10-20 | 2016-10-04 | Micron Technology, Inc. | Apparatuses and methods for segmented SGS lines |
US9431099B2 (en) | 2014-11-11 | 2016-08-30 | Snu R&Db Foundation | Neuromorphic device with excitatory and inhibitory functionalities |
US9356074B1 (en) | 2014-11-17 | 2016-05-31 | Sandisk Technologies Inc. | Memory array having divided apart bit lines and partially divided bit line selector switches |
KR20160073847A (ko) | 2014-12-17 | 2016-06-27 | 에스케이하이닉스 주식회사 | 전자 장치 및 그 제조 방법 |
KR102396422B1 (ko) | 2015-02-11 | 2022-05-11 | 삼성전자주식회사 | 불휘발성 메모리 및 불휘발성 메모리를 포함하는 스토리지 장치 |
US10403363B2 (en) | 2015-02-11 | 2019-09-03 | Samsung Electronics Co., Ltd. | Nonvolatile memory and storage device including nonvolatile memory |
US9524980B2 (en) | 2015-03-03 | 2016-12-20 | Macronix International Co., Ltd. | U-shaped vertical thin-channel memory |
US9379129B1 (en) | 2015-04-13 | 2016-06-28 | Macronix International Co., Ltd. | Assist gate structures for three-dimensional (3D) vertical gate array memory structure |
KR20160122531A (ko) | 2015-04-14 | 2016-10-24 | 에스케이하이닉스 주식회사 | 전자 장치 |
TWI580087B (zh) | 2015-04-28 | 2017-04-21 | 旺宏電子股份有限公司 | 記憶裝置及其製造方法 |
US10074661B2 (en) | 2015-05-08 | 2018-09-11 | Sandisk Technologies Llc | Three-dimensional junction memory device and method reading thereof using hole current detection |
US9934463B2 (en) | 2015-05-15 | 2018-04-03 | Arizona Board Of Regents On Behalf Of Arizona State University | Neuromorphic computational system(s) using resistive synaptic devices |
US10049322B2 (en) * | 2015-05-21 | 2018-08-14 | Google Llc | Prefetching weights for use in a neural network processor |
US9805303B2 (en) * | 2015-05-21 | 2017-10-31 | Google Inc. | Rotating data for neural network computations |
US10438117B1 (en) * | 2015-05-21 | 2019-10-08 | Google Llc | Computing convolutions using a neural network processor |
KR102445662B1 (ko) * | 2015-07-01 | 2022-09-22 | 삼성전자주식회사 | 스토리지 장치 |
CN105718994B (zh) | 2015-07-29 | 2019-02-19 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统 |
KR101701250B1 (ko) | 2015-08-03 | 2017-02-01 | 서울대학교산학협력단 | 딥 빌리프 네트워크를 위한 복수 레이어가 적층된 뉴런 어레이 및 뉴런 어레이 동작 방법 |
KR102311916B1 (ko) | 2015-08-17 | 2021-10-15 | 삼성전자주식회사 | 스토리지 장치 |
US10020317B2 (en) | 2015-08-31 | 2018-07-10 | Cypress Semiconductor Corporation | Memory device with multi-layer channel and charge trapping layer |
US10037167B2 (en) | 2015-09-11 | 2018-07-31 | Sandisk Technologies Llc | Multiple scheduling schemes for handling read requests |
US9589982B1 (en) | 2015-09-15 | 2017-03-07 | Macronix International Co., Ltd. | Structure and method of operation for improved gate capacity for 3D NOR flash memory |
US10157012B2 (en) | 2015-09-29 | 2018-12-18 | Sandisk Technologies Llc | Zero read on trimmed blocks in a non-volatile memory system |
US9892800B2 (en) | 2015-09-30 | 2018-02-13 | Sunrise Memory Corporation | Multi-gate NOR flash thin-film transistor strings arranged in stacked horizontal active strips with vertical control gates |
US9842651B2 (en) | 2015-11-25 | 2017-12-12 | Sunrise Memory Corporation | Three-dimensional vertical NOR flash thin film transistor strings |
US10418369B2 (en) | 2015-10-24 | 2019-09-17 | Monolithic 3D Inc. | Multi-level semiconductor memory device and structure |
US9767028B2 (en) | 2015-10-30 | 2017-09-19 | Advanced Micro Devices, Inc. | In-memory interconnect protocol configuration registers |
TWI571875B (zh) | 2015-10-30 | 2017-02-21 | 華邦電子股份有限公司 | 電阻式記憶體裝置及其寫入方法 |
KR102412781B1 (ko) | 2015-11-03 | 2022-06-24 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 독출 방법 |
CN115019859B (zh) | 2015-11-25 | 2023-10-31 | 日升存储公司 | 存储器结构 |
US9983829B2 (en) | 2016-01-13 | 2018-05-29 | Sandisk Technologies Llc | Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes |
EP3389051B1 (en) | 2016-01-18 | 2020-09-09 | Huawei Technologies Co., Ltd. | Memory device and data-processing method based on multi-layer rram crossbar array |
US10725860B2 (en) | 2016-03-04 | 2020-07-28 | Sandisk Technologies Llc | Storage system and method for handling a burst of errors |
KR102505695B1 (ko) | 2016-03-18 | 2023-03-02 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 반도체 장치 및 이를 사용한 시스템 |
US10942673B2 (en) | 2016-03-31 | 2021-03-09 | Hewlett Packard Enterprise Development Lp | Data processing using resistive memory arrays |
CN105789139B (zh) | 2016-03-31 | 2018-08-28 | 上海新储集成电路有限公司 | 一种神经网络芯片的制备方法 |
JP2017195275A (ja) | 2016-04-20 | 2017-10-26 | 東芝メモリ株式会社 | 半導体記憶装置およびその製造方法 |
KR102508532B1 (ko) | 2016-05-02 | 2023-03-09 | 삼성전자주식회사 | 감지 증폭기 및 이를 포함하는 메모리 장치 |
JP6833873B2 (ja) * | 2016-05-17 | 2021-02-24 | シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. | 不揮発性メモリアレイを使用したディープラーニングニューラルネットワーク分類器 |
US9773553B1 (en) | 2016-08-19 | 2017-09-26 | Micron Technology, Inc. | Segmented memory and operation |
US10649665B2 (en) | 2016-11-08 | 2020-05-12 | Micron Technology, Inc. | Data relocation in hybrid memory |
US10733505B2 (en) * | 2016-11-10 | 2020-08-04 | Google Llc | Performing kernel striding in hardware |
US20180144240A1 (en) | 2016-11-21 | 2018-05-24 | Imec Vzw | Semiconductor cell configured to perform logic operations |
US10725777B2 (en) | 2016-12-06 | 2020-07-28 | Gsi Technology, Inc. | Computational memory cell and processing array device using memory cells |
WO2018106805A1 (en) * | 2016-12-09 | 2018-06-14 | William Marsh Rice University | Signal recovery via deep convolutional networks |
US10296224B2 (en) | 2016-12-21 | 2019-05-21 | Intel Corporation | Apparatus, system and method for increasing the capacity of a storage device available to store user data |
US10565494B2 (en) | 2016-12-31 | 2020-02-18 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with segmentable array width rotator |
US10360499B2 (en) * | 2017-02-28 | 2019-07-23 | Anixa Diagnostics Corporation | Methods for using artificial neural network analysis on flow cytometry data for cancer diagnosis |
US10269824B2 (en) | 2017-04-01 | 2019-04-23 | Intel Corporation | Non-volatile memory structures having multi-layer conductive channels |
WO2018189619A1 (ja) | 2017-04-10 | 2018-10-18 | 株式会社半導体エネルギー研究所 | 半導体装置、電子部品、及び電子機器 |
US20210019609A1 (en) | 2017-04-27 | 2021-01-21 | The Regents Of The University Of California | Mixed signal neuromorphic computing with nonvolatile memory devices |
US10482929B2 (en) | 2017-07-13 | 2019-11-19 | Qualcomm Incorporated | Non-volative (NV) memory (NVM) matrix circuits employing NVM matrix circuits for performing matrix computations |
US10460817B2 (en) | 2017-07-13 | 2019-10-29 | Qualcomm Incorporated | Multiple (multi-) level cell (MLC) non-volatile (NV) memory (NVM) matrix circuits for performing matrix computations with multi-bit input vectors |
JP2019028569A (ja) | 2017-07-26 | 2019-02-21 | 株式会社東芝 | メモリシステム、半導体記憶装置及び信号処理システム |
US10073733B1 (en) | 2017-09-01 | 2018-09-11 | Purdue Research Foundation | System and method for in-memory computing |
US10580492B2 (en) * | 2017-09-15 | 2020-03-03 | Silicon Storage Technology, Inc. | System and method for implementing configurable convoluted neural networks with flash memories |
US11410028B2 (en) | 2017-09-20 | 2022-08-09 | Look Dynamics, Inc. | Photonic neural network system |
US11521046B2 (en) * | 2017-11-08 | 2022-12-06 | Samsung Electronics Co., Ltd. | Time-delayed convolutions for neural network device and method |
US10777566B2 (en) | 2017-11-10 | 2020-09-15 | Macronix International Co., Ltd. | 3D array arranged for memory and in-memory sum-of-products operations |
US11361215B2 (en) | 2017-11-29 | 2022-06-14 | Anaflash Inc. | Neural network circuits having non-volatile synapse arrays |
US10748630B2 (en) * | 2017-11-29 | 2020-08-18 | Silicon Storage Technology, Inc. | High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks |
US10552510B2 (en) | 2018-01-11 | 2020-02-04 | Mentium Technologies Inc. | Vector-by-matrix multiplier modules based on non-volatile 2D and 3D memory arrays |
US10957392B2 (en) | 2018-01-17 | 2021-03-23 | Macronix International Co., Ltd. | 2D and 3D sum-of-products array for neuromorphic computing system |
US10719296B2 (en) | 2018-01-17 | 2020-07-21 | Macronix International Co., Ltd. | Sum-of-products accelerator array |
US20190244662A1 (en) | 2018-02-02 | 2019-08-08 | Macronix International Co., Ltd. | Sum-of-products array for neuromorphic computing system |
US10242737B1 (en) | 2018-02-13 | 2019-03-26 | Macronix International Co., Ltd. | Device structure for neuromorphic computing system |
US10635398B2 (en) | 2018-03-15 | 2020-04-28 | Macronix International Co., Ltd. | Voltage sensing type of matrix multiplication method for neuromorphic computing system |
CN111279351B (zh) | 2018-03-16 | 2023-08-25 | Tdk株式会社 | 积和运算器、神经形态器件以及积和运算器的使用方法 |
US11188814B2 (en) * | 2018-04-05 | 2021-11-30 | Arm Limited | Systolic convolutional neural network |
US20190311749A1 (en) | 2018-04-09 | 2019-10-10 | Anaflash Inc. | Logic Compatible Embedded Flash Memory |
US10741246B2 (en) | 2018-04-23 | 2020-08-11 | Arm Limited | Method, system and device for integration of volatile and non-volatile memory bitcells |
WO2019212466A1 (en) * | 2018-04-30 | 2019-11-07 | Hewlett Packard Enterprise Development Lp | Resistive and digital processing cores |
US20190363131A1 (en) | 2018-05-25 | 2019-11-28 | Gyrfalcon Technology Inc. | Memory architecture having different type of memory devices and logic circuit disposed over a semiconductor substrate |
US11461621B2 (en) | 2018-06-26 | 2022-10-04 | Vishal Sarin | Methods and systems of implementing positive and negative neurons in a neural array-based flash memory |
JP7070190B2 (ja) | 2018-07-18 | 2022-05-18 | 株式会社デンソー | ニューラルネットワーク回路 |
US10528643B1 (en) | 2018-08-01 | 2020-01-07 | Sandisk Technologies Llc | Vector-matrix multiplication using non-volatile memory cells |
US10534840B1 (en) | 2018-08-08 | 2020-01-14 | Sandisk Technologies Llc | Multiplication using non-volatile memory cells |
US10860918B2 (en) | 2018-08-21 | 2020-12-08 | Silicon Storage Technology, Inc. | Analog neural memory system for deep learning neural network comprising multiple vector-by-matrix multiplication arrays and shared components |
US10877752B2 (en) | 2018-09-28 | 2020-12-29 | Intel Corporation | Techniques for current-sensing circuit design for compute-in-memory |
US10642922B2 (en) | 2018-09-28 | 2020-05-05 | Intel Corporation | Binary, ternary and bit serial compute-in-memory circuits |
US10748603B2 (en) * | 2018-09-28 | 2020-08-18 | Intel Corporation | In-memory multiply and accumulate with global charge-sharing |
US10831446B2 (en) | 2018-09-28 | 2020-11-10 | Intel Corporation | Digital bit-serial multi-multiply-and-accumulate compute in memory |
US11574694B2 (en) * | 2018-10-11 | 2023-02-07 | International Business Machines Corporation | Kernel sets normalization with capacitor charge sharing |
US20200117986A1 (en) * | 2018-10-12 | 2020-04-16 | International Business Machines Corporation | Efficient processing of convolutional neural network layers using analog-memory-based hardware |
US10643713B1 (en) | 2019-02-08 | 2020-05-05 | Sandisk Technologies Llc | Toggling power supply for faster bit line settling during sensing |
US10825510B2 (en) | 2019-02-09 | 2020-11-03 | Purdue Research Foundation | Multi-bit dot product engine |
US10783963B1 (en) | 2019-03-08 | 2020-09-22 | Macronix International Co., Ltd. | In-memory computation device with inter-page and intra-page data circuits |
-
2019
- 2019-06-24 US US16/450,334 patent/US11562229B2/en active Active
- 2019-09-23 TW TW108134295A patent/TW202022711A/zh unknown
- 2019-09-24 CN CN201910908245.7A patent/CN111260047A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170024632A1 (en) * | 2015-07-23 | 2017-01-26 | Mireplica Technology, Llc | Performance Enhancement For Two-Dimensional Array Processor |
CN106530210A (zh) * | 2016-10-31 | 2017-03-22 | 北京大学 | 基于阻变存储器件阵列实现并行卷积计算的设备和方法 |
CN106847335A (zh) * | 2016-12-27 | 2017-06-13 | 北京大学 | 基于阻变存储阵列的卷积计算存储一体化设备及方法 |
CN106843809A (zh) * | 2017-01-25 | 2017-06-13 | 北京大学 | 一种基于nor flash阵列的卷积运算方法 |
Non-Patent Citations (1)
Title |
---|
陈煌等: "基于FPGA的卷积神经网络卷积层并行加速结构设计", 《微电子学与计算机》 * |
Also Published As
Publication number | Publication date |
---|---|
TW202022711A (zh) | 2020-06-16 |
US11562229B2 (en) | 2023-01-24 |
US20200175363A1 (en) | 2020-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111260047A (zh) | 使用存储器内运算的卷积加速器 | |
Yepez et al. | Stride 2 1-D, 2-D, and 3-D Winograd for convolutional neural networks | |
Haj-Ali et al. | Efficient algorithms for in-memory fixed point multiplication using magic | |
JP3251421B2 (ja) | 半導体集積回路 | |
CN108304922B (zh) | 用于神经网络计算的计算设备和计算方法 | |
CN106843809B (zh) | 一种基于nor flash阵列的卷积运算方法 | |
JP7007488B2 (ja) | ハードウェアベースのプーリングのシステムおよび方法 | |
JP2019109896A (ja) | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス | |
JP2019109895A (ja) | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス | |
CN105260773B (zh) | 一种图像处理装置以及图像处理方法 | |
KR20170007151A (ko) | 인공 신경 네트워크를 실행하는 방법 및 장치 | |
CN110163338B (zh) | 具有运算阵列的芯片运算方法、装置、终端及芯片 | |
Li et al. | A systematic study of tiny YOLO3 inference: Toward compact brainware processor with less memory and logic gate | |
JP6839641B2 (ja) | 演算処理装置 | |
CN107516131A (zh) | 卷积计算的加速方法和装置、电子设备和存储介质 | |
KR20200140282A (ko) | 효율적인 컨볼루션 엔진 | |
CN111048135A (zh) | 一种基于忆阻器内存计算的cnn处理装置及其工作方法 | |
CN107943756A (zh) | 一种计算方法及相关产品 | |
CN109446478B (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算系统 | |
CN110597487B (zh) | 一种矩阵向量乘法电路及计算方法 | |
CN110533177B (zh) | 一种数据读写装置、方法、设备、介质及卷积加速器 | |
KR20230081697A (ko) | 팽창 컨볼루션 계산 가속화 방법 및 장치 | |
CN111914988A (zh) | 神经网络设备、计算系统和处理特征图的方法 | |
CN114724595B (zh) | 一种卷积运算加速器及卷积运算方法 | |
CN113592075B (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 |