CN112684977A - 存储器装置及其存储器内计算方法 - Google Patents
存储器装置及其存储器内计算方法 Download PDFInfo
- Publication number
- CN112684977A CN112684977A CN202011012617.7A CN202011012617A CN112684977A CN 112684977 A CN112684977 A CN 112684977A CN 202011012617 A CN202011012617 A CN 202011012617A CN 112684977 A CN112684977 A CN 112684977A
- Authority
- CN
- China
- Prior art keywords
- sub
- weight
- written
- bit line
- memory
- 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
Landscapes
- Read Only Memory (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明公开了一种存储器装置及其存储器内计算方法,其中,存储器内计算方法执行于一存储器装置。该存储器内计算方法包括:依据一移动参数,将一核心展开成多个子核心与多个互补子核心;根据这些子核心与这些互补子核心,将多个权重值写入至该存储器装置的一存储器阵列的多个目标存储器单元;将一输入数据输入至该存储器阵列的一被选字线;在该存储器阵列执行一移动运算;暂存多个部分总和;以及当已完成所有运算周期时,将所暂存的这些部分总和加总,以得到一移动运算结果。
Description
技术领域
本发明是有关于一种存储器装置及其存储器内计算方法。
背景技术
在执行深度学习(deep learning)训练时,数据搬移是主要的能量成本(energycost)。理想上,应用存储器内计算(computing in memory)可减少25%的能量消耗,因为减少权重值的搬移量。
图1显示以存储器内计算来执行乘积和(MAC,multiplication andaccumulation)的示意图。存储器单元C1~C3分别被写入权重值W1~W3。输入值I1~I3可以写入至字线或位线(在图1中以写入至字线WL1~WL3为例做说明)。则存储器单元C1~C3的单元电流分别为I1×W1、I2×W2与I3×W3。经由感应放大器(SA)110对单元电流感应后可以输出I1×W1+I2×W2+I3×W3。
在存储器内计算时,以卷积神经网络(Covolutional Neural Network,CNN)为例,如果遇到执行「移动(stride)」操作时,则通常需要耗费多个周期来完成。底下以3×3阵列(其为一权重阵列)的移动操作(stride=1)为例做说明。图2显示9笔权重W1~W9写入至9个存储器单元的示意图。
图3显示3×3阵列的移动操作(stride=1)。
图4显示3×3阵列的移动操作(stride=1)所需的9个周期的示意图。
于第一周期时,输入数据I1~I3、I6~I8与I11~I13分别输入至字线WL1~WL9。所进行的操作如下所示:
于第二周期时,更新3个位并进行移动,输入数据I6~I8、I11~I13与I16~I18分别输入至字线WL1~WL9。所进行的操作如下所示。
于第三周期时,更新3个位并进行移动,输入数据I11~I13、I16~I18与I21~I23分别输入至字线WL1~WL9。所进行的操作如下所示。
于第四周期时,更新3个位并进行移动,输入数据I2~I4、I7~I9与I12~I14分别输入至字线WL1~WL9。所进行的操作如下所示。
于第五周期时,更新3个位并进行移动,输入数据I7~I9、I12~I14与I17~I19分别输入至字线WL1~WL9。所进行的操作如下所示。
于第六周期时,更新3个位并进行移动,输入数据I12~I14、I17~I19与I22~I24分别输入至字线WL1~WL9。所进行的操作如下所示。
于第七周期时,更新3个位并进行移动,输入数据I3~I5、I8~I10与I13~I15分别输入至字线WL1~WL9。所进行的操作如下所示。
于第八周期时,更新3个位并进行移动,输入数据I8~I10、I13~I15与I18~I20分别输入至字线WL1~WL9。所进行的操作如下所示。
于第九周期时,更新3个位并进行移动,输入数据I13~I15、I18~I20与I23~I25分别输入至字线WL1~WL9。所进行的操作如下所示。
对于传统CIM操作,存在着输入特征图(input feature map)的重复馈入(duplicate feeding)。这是因为移动将产生大量输入数据,而这些输入数据的内容彼此重叠。传统CIM在一条位线存储一个核心(kernel),因此会造成输入重复馈入。
当输入数据量变大且移动步阶变小时,输入重复馈入变得更加严重。因此,如何减少输入重复馈入是非常重要的。如所知般,更多的输入重复馈入导致更多的数据搬移,更多的能量消耗与降低操作速度。
故而,如何能减少数据搬移,以进一步减少能量消耗且增快指令周期,乃是重要的。
发明内容
根据本发明一实例,提出一种存储器内计算方法,执行于一存储器装置。该存储器内计算方法包括:依据一移动参数,将一核心展开成多个子核心与多个互补子核心;根据这些子核心与这些互补子核心,将多个权重值写入至该存储器装置的一存储器阵列的多个目标存储器单元;将一输入数据输入至该存储器阵列的一被选字线;在该存储器阵列执行一移动运算;暂存多个部分总和;以及当已完成所有运算周期时,将所暂存的这些部分总和加总,以得到一移动运算结果。
根据本发明另一实例,提出一种存储器装置,包括:一存储器阵列;以及一控制器,耦接至该存储器阵列。该控制器架构成:依据一移动参数,将一核心展开成多个子核心与多个互补子核心;根据这些子核心与这些互补子核心,将多个权重值写入至该存储器阵列的多个目标存储器单元;将一输入数据输入至该存储器阵列的一被选字线;在该存储器阵列执行一移动运算;暂存多个部分总和;以及当已完成所有运算周期时,将所暂存的这些部分总和加总,以得到一移动运算结果。
为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合所附附图详细说明如下:
附图说明
图1显示以存储器内计算来执行乘积和的示意图。
图2显示9笔权重W1~W9写入至9个存储器单元的示意图。
图3显示3×3阵列的移动操作(stride=1)。
图4显示3×3阵列的移动操作(stride=1)所需的9个周期的示意图。
图5显示根据本发明一实施例的存储器内计算的流程图。
图6A与图6B显示根据本发明一实施例的将核心展开成多个子核心与多个互补子核心的示意图。
图7A至图7D显示根据本发明一实施例的乘积和操作的一示范图
图8A与图8B显示根据本发明一实施例的多个权重值写入至存储器阵列的多个存储器单元内的示意图。
图9A至图9H分别根据本发明实施例中,为完成乘积加运算所需的4个周期的示意图。
图10显示根据本发明一实施例的存储器装置的功能方块图。
图11A与图11B显示根据本发明一实施例的多个权重值写入至存储器阵列1100的多个存储器单元内的示意图。
【符号说明】
C1~C3:存储器单元
W1~W9:权重值
I1~I25:输入值
110:感应放大器(SA)
WL1~WL9:字线
BL1:位线
510~570:步骤
k:核心
SK1~SK16:子核心
CSK1~CSK16:互补子核心
800:存储器阵列
BL1~BL16:位线
WL1~WL36:字线
L1~L16:闩锁单元
1000:存储器装置
1010:控制器
1020:存储器阵列
1100:存储器阵列
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本说明书的技术用语系参照本技术领域的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释系以本说明书的说明或定义为准。本发明的各个实施例分别具有一或多个技术特征。在可能实施的前提下,本领域技术人员可选择性地实施任一实施例中部分或全部的技术特征,或者选择性地将这些实施例中部分或全部的技术特征加以组合。
图5显示根据本发明一实施例的存储器内计算方法的流程图。如图5所示,于步骤510中,以列(row)与行(column)的顺序,依据移动参数,将核心(kernel)展开(unfold)成多个子核心(sub-kernel)与多个互补子核心(complement sub-kernel),在此,核心例如是指权重矩阵。
图6A与图6B显示根据本发明一实施例的将核心展开成多个子核心与多个互补子核心的示意图。在此以移动参数等于1且核心为3×3权重矩阵为例做说明,当知本发明并不受限于此。
如图6A所示,将核心K依行方向(亦即向右移动)移动0、1、2与3,可以得到子核心SK1、SK2、SK3与SK4;将子核心SK1、SK2、SK3与SK4依列方向(亦即向下移动)移动0、1、2与3,可以得到子核心SK5、SK6、SK7与SK8;将子核心SK5、SK6、SK7与SK8依列方向(亦即向下移动)移动0、1、2与3,可以得到子核心SK9、SK10、SK11与SK12;以及,将子核心SK9、SK10、SK11与SK12依列方向(亦即向下移动)移动0、1、2与3,可以得到子核心SK13、SK14、SK15与SK16。其中,各子核心亦为3×3权重矩阵。这些子核心可为0矩阵(元素全为0),或者,这些子核心包括核心的至少一个权重。
如图6B所示,将各这些子核心SK1~SK16互补成多个互补子核心CSK1~CSK16。以子核心SK1为例,由于子核心SK1包括9个权重值W1~W9,故而,经互补后,互补子核心CSK1包括0个权重值(亦即包括9个0)。以子核心SK2为例,由于子核心SK2包括6个权重值W1~W6与3个0,故而,经互补后,互补子核心CSK2包括3个权重值W7~W9与6个0。亦即,子核心的权重个数与互补子核心的权重个数的总和为核心的权重个数。
一般而言,核心包括一原始权重矩阵。当原始权重矩阵是k×1矩阵(k与1皆为自然数)且输入数据为N×M矩阵(N与M皆为自然数),如果移动参数为1,则这些子核心的总数量为(N-k+1)×(M-l+1),且这些互补子核心的总数量为(N-k+1)×(M-l+1)。
于步骤520中,根据所展开的这些子核心与这些互补子核心,将权重值写入至多个目标存储器单元。
以图6A的子核心SK1为例,由于子核心SK1包括9个权重值W1~W9,故而,如果以位线BL1来看,权重W1写入至位线BL1与字线WL1交叉的存储器单元;权重W2写入至位线BL1与字线WL2交叉的存储器单元;权重W3写入至位线BL1与字线WL3交叉的存储器单元;权重W4写入至位线BL1与字线WL4交叉的存储器单元;权重W5写入至位线BL1与字线WL5交叉的存储器单元;权重W6写入至位线BL1与字线WL6交叉的存储器单元;权重W7写入至位线BL1与字线WL7交叉的存储器单元;权重W8写入至位线BL1与字线WL8交叉的存储器单元;以及权重W9写入至位线BL1与字线WL9交叉的存储器单元。
以图6A的子核心SK2为例,由于子核心SK2包括6个权重值W1~W6与3个0,故而,如果以位线BL2来看,权重W1写入至位线BL2与字线WL4交叉的存储器单元;权重W2写入至位线BL2与字线WL5交叉的存储器单元;权重W3写入至位线BL2与字线WL6交叉的存储器单元;权重W4写入至位线BL2与字线WL7交叉的存储器单元;权重W5写入至位线BL2与字线WL8交叉的存储器单元;权重W6写入至位线BL2与字线WL9交叉的存储器单元。其余可依此类推。
于步骤530中,将输入数据输入至被选择的字线。
于步骤540中,在存储器阵列执行乘积和运算。
于步骤550中,将个别部分总和(partial sum)存在于各闩锁单元内。
于步骤560中,判断相关的互补子核心是否已被计算(或者是,判断是否已完成所有运算周期)。如果步骤560为是,则流程接续至步骤570,将这些闩锁单元内的这些部分总和加总,以得到乘积加结果。如果步骤560为否,则流程接续至步骤530。
图7A至图7D显示根据本发明一实施例的乘积和(MAC,multiplication andaccumulation)操作的一示范图,其中,移动(stride)参数为1。当知本发明并不受限于此。如图7A至图7D所示,在进行移动操作时,如果权重核心(kernel)为3×3矩阵且移动(stride)参数为1,则将会有16种运算。以图7A中的运算(a)为例,输入数据IN1-1~IN1-9分别乘上权重W1~W9。以图7A中的运算(b)为例,输入数据IN1-4~IN1-9与IN2-1~IN2-3分别乘上权重W1~W9。其余可依此类推。
在本发明实施例中,为减少数据搬移,可以根据图7A至图7D中的16种运算来将权重值W1~W9分别写入至目标存储器单元内。
图8A与图8B显示根据本发明一实施例的多个权重值写入至存储器阵列800的多个存储器单元内的示意图。图8A与图8B皆是显示存储器阵列800的一部分。在此假设,于实际运算时,输入数据IN1-1~IN1-9系输入至字线WL1~WL9;输入数据IN2-1~IN2-9系输入至字线WL10~WL18;输入数据IN3-1~IN3-9系输入至字线WL19~WL27,以及,输入数据IN4-1~IN4-9系输入至字线WL28~WL36。
图7A中的运算(a)为例,输入数据IN1-1~IN1-9分别乘上权重W1~W9,故可以得到:
IN1-1×W1+IN1-2×W2+IN1-3×W3+IN1-4×W4+IN1-5×W5+IN1-6×W6+IN1-7×W7+IN1-8×W8+IN1-9×W9。
故而,为将权重W1~W9写入至位线BL1,权重W1写入至位线BL1与字线WL1交叉的存储器单元;权重W2写入至位线BL1与字线WL2交叉的存储器单元;权重W3写入至位线BL1与字线WL3交叉的存储器单元;权重W4写入至位线BL1与字线WL4交叉的存储器单元;权重W5写入至位线BL1与字线WL5交叉的存储器单元;权重W6写入至位线BL1与字线WL6交叉的存储器单元;权重W7写入至位线BL1与字线WL7交叉的存储器单元;权重W8写入至位线BL1与字线WL8交叉的存储器单元;以及权重W9写入至位线BL1与字线WL9交叉的存储器单元。如此一来,当输入数据IN1-1~IN1-9分别输入至字线WL1~WL9(当字线WL1~WL9被选择时),相关于位线BL1的闩锁单元L1可以存储IN1-1×W1+IN1-2×W2+IN1-3×W3+IN1-4×W4+IN1-5×W5+IN1-6×W6+IN1-7×W7+IN1-8×W8+IN1-9×W9的值。
图7A中的运算(b)为例,输入数据IN1-4~IN1-9与IN2-1~IN2-3分别乘上权重W1~W9,故可以得到:
IN1-4×W1+IN1-5×W2+IN1-6×W3+IN1-7×W4+IN1-8×W5+IN1-9×W6+IN2-1×W7+IN2-2×W8+IN2-3×W9。
故而,为将权重W1~W9写入至位线BL2,权重W1写入至位线BL2与字线WL4交叉的存储器单元;权重W2写入至位线BL2与字线WL5交叉的存储器单元;权重W3写入至位线BL2与字线WL6交叉的存储器单元;权重W4写入至位线BL2与字线WL7交叉的存储器单元;权重W5写入至位线BL2与字线WL8交叉的存储器单元;权重W6写入至位线BL2与字线WL9交叉的存储器单元;权重W7写入至位线BL2与字线WL10交叉的存储器单元;权重W8写入至位线BL2与字线WL11交叉的存储器单元;以及权重W9写入至位线BL2与字线WL12交叉的存储器单元。如此一来,当输入数据IN1-4~IN1-9与IN2-1~IN2-3分别输入至字线WL4~WL12,相关于位线BL2的闩锁单元L2可以存储IN1-4×W1+IN1-5×W2+IN1-6×W3+IN1-7×W4+IN1-8×W5+IN1-9×W6+IN2-1×W7+IN2-2×W8+IN2-3×W9的值。
图7A中的运算(c)为例,输入数据IN1-7~IN1-9与IN2-1~IN2-6分别乘上权重W1~W9,故可以得到:
IN1-7×W1+IN1-8×W2+IN1-9×W3+IN2-1×W4+IN2-2×W5+IN2-3×W6+IN2-4×W7+IN2-5×W8+IN2-6×W9。
故而,为将权重W1~W9写入至位线BL3,权重W1写入至位线BL3与字线WL7交叉的存储器单元;权重W2写入至位线BL3与字线WL8交叉的存储器单元;权重W3写入至位线BL3与字线WL9交叉的存储器单元;权重W4写入至位线BL3与字线WL10交叉的存储器单元;权重W5写入至位线BL3与字线WL11交叉的存储器单元;权重W6写入至位线BL3与字线WL12交叉的存储器单元;权重W7写入至位线BL3与字线WL13交叉的存储器单元;权重W8写入至位线BL3与字线WL14交叉的存储器单元;以及权重W9写入至位线BL3与字线WL15交叉的存储器单元。如此一来,当输入数据IN1-7~IN1-9与IN2-1~IN2-6分别输入至字线WL7~WL15,相关于位线BL3的闩锁单元L3可以存储IN1-7×W1+IN1-8×W2+IN1-9×W3+IN2-1×W4+IN2-2×W5+IN2-3×W6+IN2-4×W7+IN2-5×W8+IN2-6×W9的值。
图7A中的运算(d)为例,输入数据IN2-1~IN2-9分别乘上权重W1~W9,故可以得到:
IN2-1×W1+IN2-2×W2+IN2-3×W3+IN2-4×W4+IN2-5×W5+IN2-6×W6+IN2-7×W7+IN2-8×W8+IN2-9×W9。
故而,为将权重W1~W9写入至位线BL4,权重W1写入至位线BL4与字线WL10交叉的存储器单元;权重W2写入至位线BL4与字线WL11交叉的存储器单元;权重W3写入至位线BL4与字线WL12交叉的存储器单元;权重W4写入至位线BL4与字线WL13交叉的存储器单元;权重W5写入至位线BL4与字线WL14交叉的存储器单元;权重W6写入至位线BL4与字线WL15交叉的存储器单元;权重W7写入至位线BL4与字线WL16交叉的存储器单元;权重W8写入至位线BL4与字线WL17交叉的存储器单元;以及权重W9写入至位线BL4与字线WL18交叉的存储器单元。如此一来,当输入数据IN2-1~IN2-9分别输入至字线WL10~WL18,相关于位线BL4的闩锁单元L4可以存储IN2-1×W1+IN2-2×W2+IN2-3×W3+IN2-4×W4+IN2-5×W5+IN2-6×W6+IN2-7×W7+IN2-8×W8+IN2-9×W9的值。
图7B中的运算(e)为例,输入数据IN1-2、IN1-3、IN3-1、IN1-5、IN1-6、IN3-4、IN1-8、IN1-9与IN3-7分别乘上权重W1~W9,故可以得到:
IN1-2×W1+IN1-3×W2+IN3-1×W3+IN1-5×W4+IN1-6×W5+IN3-4×W6+IN1-8×W7+IN1-9×W8+IN3-7×W9。
故而,为将权重W1~W9写入至位线BL5,权重W1写入至位线BL5与字线WL2交叉的存储器单元;权重W2写入至位线BL5与字线WL3交叉的存储器单元;权重W3写入至位线BL5与字线WL19交叉的存储器单元;权重W4写入至位线BL5与字线WL5交叉的存储器单元;权重W5写入至位线BL5与字线WL6交叉的存储器单元;权重W6写入至位线BL5与字线WL22交叉的存储器单元;权重W7写入至位线BL5与字线WL8交叉的存储器单元;权重W8写入至位线BL5与字线WL9交叉的存储器单元;以及权重W9写入至位线BL5与字线WL25交叉的存储器单元。如此一来,当输入数据IN1-2、IN1-3、IN3-1、IN1-5、IN1-6、IN3-4、IN1-8、IN1-9与IN3-7分别输入时,相关于位线BL5的闩锁单元L5可以存储IN1-2×W1+IN1-3×W2+IN3-1×W3+IN1-5×W4+IN1-6×W5+IN3-4×W6+IN1-8×W7+IN1-9×W8+IN3-7×W9的值。
图7B中的运算(f)为例,输入数据IN1-5、IN1-6、IN3-4、IN1-8、IN1-9、IN3-7、IN2-2、IN2-3与IN4-1分别乘上权重W1~W9,故可以得到IN1-5×W1+IN1-6×W2+IN3-4×W3+IN1-8×W4+IN1-9×W5+IN3-7×W6+IN2-2×W7+IN2-3×W8+IN4-1×W9。故而,为将权重W1~W9写入至位线BL6,权重W1写入至位线BL6与字线WL5交叉的存储器单元;权重W2写入至位线BL6与字线WL6交叉的存储器单元;权重W3写入至位线BL6与字线WL22交叉的存储器单元;权重W4写入至位线BL6与字线WL8交叉的存储器单元;权重W5写入至位线BL6与字线WL9交叉的存储器单元;权重W6写入至位线BL6与字线WL25交叉的存储器单元;权重W7写入至位线BL6与字线WL11交叉的存储器单元;权重W8写入至位线BL6与字线WL12交叉的存储器单元;以及权重W9写入至位线BL6与字线WL28交叉的存储器单元。如此一来,当输入数据IN1-5、IN1-6、IN3-4、IN1-8、IN1-9、IN3-7、IN2-2、IN2-3与IN4-1分别输入时,相关于位线BL6的闩锁单元L6可以存储IN1-5×WI+IN1-6×W2+IN3-4×W3+IN1-8×W4+IN1-9×W5+IN3-7×W6+IN2-2×W7+IN2-3×W8+IN4-1×W9的值。
图7B中的运算(g)为例,输入数据IN1-8、IN1-9、IN3-7、IN2-2、IN2-3、IN4-1、IN2-5、IN2-6与IN4-4分别乘上权重W1~W9,故可以得到IN1-8×W1+IN1-9×W2+IN3-7×W3+IN2-2×W4+IN2-3×W5+IN4-1×W6+IN2-5×W7+IN2-6×W8+IN4-4×W9。故而,为将权重W1~W9写入至位线BL7,权重W1写入至位线BL7与字线WL8交叉的存储器单元;权重W2写入至位线BL7与字线WL9交叉的存储器单元;权重W3写入至位线BL7与字线WL25交叉的存储器单元;权重W4写入至位线BL7与字线WL11交叉的存储器单元;权重W5写入至位线BL7与字线WL12交叉的存储器单元;权重W6写入至位线BL7与字线WL28交叉的存储器单元;权重W7写入至位线BL7与字线WL14交叉的存储器单元;权重W8写入至位线BL7与字线WL15交叉的存储器单元;以及权重W9写入至位线BL7与字线WL31交叉的存储器单元。如此一来,当输入数据IN1-8、IN1-9、IN3-7、IN2-2、IN2-3、IN4-1、IN2-5、IN2-6与IN4-4分别输入时,相关于位线BL7的闩锁单元L7可以存储IN1-8×W1+IN1-9×W2+IN3-7×W3+IN2-2×W4+IN2-3×W5+IN4-1×W6+IN2-5×W7+IN2-6×W8+IN4-4×W9的值。
图7B中的运算(h)为例,输入数据IN2-2、IN2-3、IN4-1、IN2-5、IN2-6、IN4-4、IN2-8、IN2-9与IN4-1分别乘上权重W1~W9,故可以得到:
IN2-2×W1+IN2-3×W2+IN4-1×W3+IN2-5×W4+IN2-6×W5+IN4-4×W6+IN2-8×W7+IN2-9×W8+IN4-7×W9。
故而,为将权重W1~W9写入至位线BL8,权重W1写入至位线BL8与字线WL11交叉的存储器单元;权重W2写入至位线BL8与字线WL12交叉的存储器单元;权重W3写入至位线BL8与字线WL28交叉的存储器单元;权重W4写入至位线BL8与字线WL14交叉的存储器单元;权重W5写入至位线BL8与字线WL15交叉的存储器单元;权重W6写入至位线BL8与字线WL31交叉的存储器单元;权重W7写入至位线BL8与字线WL17交叉的存储器单元;权重W8写入至位线BL8与字线WL18交叉的存储器单元;以及权重W9写入至位线BL8与字线WL34交叉的存储器单元。如此一来,当输入数据IN2-2、IN2-3、1N4-1、IN2-5、IN2-6、IN4-4、IN2-8、IN2-9与IN4-1分别输入时,相关于位线BL8的闩锁单元L8可以存储IN2-2×W1+IN2-3×W2+IN4-1×W3+IN2-5×W4+IN2-6×W5+IN4-4×W6+IN2-8×W7+IN2-9×W8+IN4-7×W9的值。
图7C中的运算(i)为例,输入数据IN1-3、IN3-1、IN3-2、IN1-6、IN3-4、IN3-5、IN1-9、IN3-7与IN3-8分别乘上权重W1~W9,故可以得到:
IN1-3×W1+IN3-1×W2+IN3-2×W3+IN1-6×W4+IN3-4×W5+IN3-5×W6+IN1-9×W7+IN3-7×W8+IN3-8×W9。
故而,为将权重W1~W9写入至位线BL9,权重W1写入至位线BL9与字线WL3交叉的存储器单元;权重W2写入至位线BL9与字线WL19交叉的存储器单元;权重W3写入至位线BL9与字线WL20交叉的存储器单元;权重W4写入至位线BL9与字线WL6交叉的存储器单元;权重W5写入至位线BL9与字线WL22交叉的存储器单元;权重W6写入至位线BL9与字线WL23交叉的存储器单元;权重W7写入至位线BL9与字线WL9交叉的存储器单元;权重W8写入至位线BL9与字线WL25交叉的存储器单元;以及权重W9写入至位线BL9与字线WL26交叉的存储器单元。如此一来,当输入数据IN1-3、IN3-1、IN3-2、IN1-6、IN3-4、IN3-5、IN1-9、IN3-7与IN3-8分别输入时,相关于位线BL9的闩锁单元L9可以存储IN1-3×W1+IN3-1×W2+IN3-2×W3+IN1-6×W4+IN3-4×W5+IN3-5×W6+IN1-9×W7+IN3-7×W8+IN3-8×W9的值。
图7C中的运算(j)为例,输入数据IN1-6、IN3-4、IN3-5、IN1-9、IN3-7、IN3-8、IN2-3、IN4-1与IN4-2分别乘上权重W1~W9,故可以得到:
IN1-6×W1+IN3-4×W2+IN3-5×W3+IN1-9×W4+IN3-7×W5+IN3-8×W6+IN2-3×W7+IN4-1×W8+IN4-2×W9。
故而,为将权重W1~W9写入至位线BL10,权重W1写入至位线BL10与字线WL6交叉的存储器单元;权重W2写入至位线BL10与字线WL22交叉的存储器单元;权重W3写入至位线BL10与字线WL23交叉的存储器单元;权重W4写入至位线BL10与字线WL9交叉的存储器单元;权重W5写入至位线BL10与字线WL25交叉的存储器单元;权重W6写入至位线BL10与字线WL26交叉的存储器单元;权重W7写入至位线BL10与字线WL12交叉的存储器单元;权重W8写入至位线BL10与字线WL28交叉的存储器单元;以及权重W9写入至位线BL10与字线WL29交叉的存储器单元。如此一来,当输入数据IN1-6、IN3-4、IN3-5、IN1-9、IN3-7、IN3-8、IN2-3、IN4-1与IN4-2分别输入时,相关于位线BL10的闩锁单元L10可以存储IN1-6×W1+IN3-4×W2+IN3-5×W3+IN1-9×W4+IN3-7×W5+IN3-8×W6+IN2-3×W7+IN4-1×W8+IN4-2×W9的值。
图7C中的运算(k)为例,输入数据IN1-9、IN3-7、IN3-8、IN2-3、IN4-1、IN4-2、IN2-6、IN4-4与IN4-5分别乘上权重W1~W9,故可以得到:
IN1-9×W1+IN3-7×W2+IN3-8×W3+IN2-3×W4+IN4-1×W5+IN4-2×W6+IN2-3×W7+IN4-4×W8+IN4-5×W9。
故而,为将权重W1~W9写入至位线BL11,权重W1写入至位线BL11与字线WL9交叉的存储器单元;权重W2写入至位线BL11与字线WL25交叉的存储器单元;权重W3写入至位线BL11与字线WL26交叉的存储器单元;权重W4写入至位线BL11与字线WL12交叉的存储器单元;权重W5写入至位线BL11与字线WL28交叉的存储器单元;权重W6写入至位线BL11与字线WL29交叉的存储器单元;权重W7写入至位线BL11与字线WL15交叉的存储器单元;权重W8写入至位线BL11与字线WL31交叉的存储器单元;以及权重W9写入至位线BL11与字线WL32交叉的存储器单元。如此一来,当输入数据IN1-9、IN3-7、IN3-8、IN2-3、IN4-1、IN4-2、IN2-6、IN4-4与IN4-5分别输入时,相关于位线BL11的闩锁单元L11可以存储IN1-9×W1+IN3-7×W2+IN3-8×W3+IN2-3×W4+IN4-1×W5+IN4-2×W6+IN2-3×W7+IN4-4×W8+IN4-5×W9的值。
图7C中的运算(1)为例,输入数据IN2-3、IN4-1、IN4-2、IN2-6、IN4-4、IN4-5、IN2-9、IN4-7与IN4-8分别乘上权重W1~W9,故可以得到:
IN2-3×W1+IN4-1×W2+IN4-2×W3+IN2-6×W4+IN4-4×W5+IN4-5×W6+IN2-9×W7+IN4-7×W8+IN4-8×W9。
故而,为将权重W1~W9写入至位线BL12,权重W1写入至位线BL12与字线WL12交叉的存储器单元;权重W2写入至位线BL12与字线WL28交叉的存储器单元;权重W3写入至位线BL12与字线WL29交叉的存储器单元;权重W4写入至位线BL12与字线WL15交叉的存储器单元;权重W5写入至位线BL12与字线WL31交叉的存储器单元;权重W6写入至位线BL12与字线WL32交叉的存储器单元;权重W7写入至位线BL12与字线WL18交叉的存储器单元;权重W8写入至位线BL12与字线WL34交叉的存储器单元;以及权重W9写入至位线BL12与字线WL35交叉的存储器单元。如此一来,当输入数据IN2-3、IN4-1、IN4-2、IN2-6、IN4-4、IN4-5、IN2-9、IN4-7与IN4-8分别输入时,相关于位线BL12的闩锁单元L12可以存储IN2-3×W1+IN4-1×W2+IN4-2×W3+IN2-6×W4+IN4-4×W5+IN4-5×W6+IN2-9×W7+IN4-7×W8+IN4-8×W9的值。
图7D中的运算(m)为例,输入数据IN3-1~IN3-9分别乘上权重W1~W9,故可以得到:
IN3-1×W1+IN3-2×W2+IN3-3×W3+IN3-4×W4+IN3-5×W5+IN3-6×W6+IN3-7×W7+IN3-8×W8+IN3-9×W9。
故而,为将权重W1~W9写入至位线BL13,权重W1写入至位线BL13与字线WL19交叉的存储器单元;权重W2写入至位线BL13与字线WL20交叉的存储器单元;权重W3写入至位线BL13与字线WL21交叉的存储器单元;权重W4写入至位线BL13与字线WL22交叉的存储器单元;权重W5写入至位线BL13与字线WL23交叉的存储器单元;权重W6写入至位线BL13与字线WL24交叉的存储器单元;权重W7写入至位线BL13与字线WL25交叉的存储器单元;权重W8写入至位线BL13与字线WL26交叉的存储器单元;以及权重W9写入至位线BL13与字线WL27交叉的存储器单元。如此一来,当输入数据IN3-1~IN3-9分别输入时,相关于位线BL13的闩锁单元L13可以存储IN3-1×W1+IN3-2×W2+IN3-3×W3+IN3-4×W4+IN3-5×W5+IN3-6×W6+IN3-7×W7+IN3-8×W8+IN3-9×W9的值。
图7D中的运算(n)为例,输入数据IN3-4~IN3-9与IN4-1~IN4-3分别乘上权重W1~W9,故可以得到:
IN3-4×W1+IN3-5×W2+IN3-6×W3+IN3-7×W4+IN3-8×W5+IN3-9×W6+IN4-1×W7+IN4-2×W8+IN4-3×W9。
故而,为将权重W1~W9写入至位线BL14,权重W1写入至位线BL14与字线WL22交叉的存储器单元;权重W2写入至位线BL14与字线WL23交叉的存储器单元;权重W3写入至位线BL14与字线WL24交叉的存储器单元;权重W4写入至位线BL14与字线WL25交叉的存储器单元;权重W5写入至位线BL14与字线WL26交叉的存储器单元;权重W6写入至位线BL14与字线WL27交叉的存储器单元;权重W7写入至位线BL14与字线WL28交叉的存储器单元;权重W8写入至位线BL14与字线WL29交叉的存储器单元;以及权重W9写入至位线BL14与字线WL30交叉的存储器单元。如此一来,当输入数据IN3-4~IN3-9与IN4-1~IN4-3分别输入时,相关于位线BL14的闩锁单元L14可以存储IN3-4×W1+IN3-5×W2+IN3-6×W3+IN3-7×W4+IN3-8×W5+IN3-9×W6+IN4-1×W7+IN4-2×W8+IN4-3×W9的值。
图7D中的运算(o)为例,输入数据IN3-7~IN3-9与IN4-1~IN4-6分别乘上权重W1~W9,故可以得到:
IN3-7×W1+IN3-8×W2+IN3-9×W3+IN4-1×W4+IN4-2×W5+IN4-3×W6+IN4-4×W7+IN4-5×W8+IN4-6×W9。
故而,为将权重W1~W9写入至位线BL15,权重W1写入至位线BL15与字线WL28交叉的存储器单元;权重W2写入至位线BL15与字线WL26交叉的存储器单元;权重W3写入至位线BL15与字线WL27交叉的存储器单元;权重W4写入至位线BL15与字线WL28交叉的存储器单元;权重W5写入至位线BL15与字线WL29交叉的存储器单元;权重W6写入至位线BL15与字线WL30交叉的存储器单元;权重W7写入至位线BL15与字线WL31交叉的存储器单元;权重W8写入至位线BL15与字线WL32交叉的存储器单元;以及权重W9写入至位线BL15与字线WL33交叉的存储器单元。如此一来,当输入数据IN3-4~IN3-9与IN4-1~IN4-3分别输入时,相关于位线BL15的闩锁单元L15可以存储IN3-4×W1+IN3-5×W2+IN3-6×W3+IN3-7×W4+IN3-8×W5+IN3-9×W6+IN4-1×W7+IN4-2×W8+IN4-3×W9的值。
图7D中的运算(p)为例,输入数据IN4-1~IN4-9分别乘上权重W1~W9,故可以得到:
IN4-1×W1+IN4-2×W2+IN4-3×W3+IN4-4×W4+IN4-5×W5+IN4-6×W6+IN4-7×W7+IN4-8×W8+IN4-9×W9。
故而,为将权重W1~W9写入至位线BL16,权重W1写入至位线BL16与字线WL28交叉的存储器单元;权重W2写入至位线BL16与字线WL29交叉的存储器单元;权重W3写入至位线BL16与字线WL30交叉的存储器单元;权重W4写入至位线BL16与字线WL31交叉的存储器单元;权重W5写入至位线BL16与字线WL32交叉的存储器单元;权重W6写入至位线BL16与字线WL33交叉的存储器单元;权重W7写入至位线BL16与字线WL34交叉的存储器单元;权重W8写入至位线BL16与字线WL35交叉的存储器单元;以及权重W9写入至位线BL16与字线WL36交叉的存储器单元。如此一来,当输入数据IN4-1~IN4-9分别输入时,相关于位线BL16的闩锁单元L16可以存储IN4-1×W1+IN4-2×W2+IN4-3×W3+IN4-4×W4+IN4-5×W5+IN4-6×W6+IN4-7×W7+IN4-8×W8+IN4-9×W9的值。
图9A至图9H分别根据本发明实施例中,为完成乘积加运算所需的4个周期的示意图。
如图9A与图9B所示,于第一周期中,选择字线WL1~WL9以使得输入数据IN1-1~IN1-9可输入至存储器阵列中。故而,于第一周期中,闩锁单元L1~L16所存的部分总和(partial sum)可表示如下:
如图9C与图9D所示,于第二周期中,选择字线WL10~WL18以使得输入数据IN2-1~IN2-9可输入至存储器阵列中。故而,于第二周期中,闩锁单元L1~L16所存的部分总和可表示如下(为方便了解,将不同周期的部分总和分开列出):
如图9E与图9F所示,于第三周期中,选择字线WL19~WL27以使得输入数据IN3-1~IN3-9可输入至存储器阵列中。故而,于第三周期中,闩锁单元L1~L16所存的部分总和可表示如下(为方便了解,将不同周期的部分总和分开列出):
如图9G与图9H所示,于第四周期中,选择字线WL28~WL36以使得输入数据IN4-1~IN4-9可输入至存储器阵列中。故而,于第四周期中,闩锁单元L1~L16所存的部分总和可表示如下(为方便了解,将不同周期的部分总和分开列出):
为方便了解,将此四个周期的部分总和加总如下(即为闩锁单元L1~L16在此四个周期后的输出:
图10显示根据本发明一实施例的存储器装置的功能方块图。根据本发明一实施例的存储器装置1000包括:控制器1010与存储器阵列1020。控制器1010耦接至存储器阵列1020。控制器1010可控制存储器阵列1020来执行上述实施例的乘积和运算。存储器阵列1020的多个存储器单元存有上述实施例的权重。
图11A与图11B显示根据本发明另一实施例的多个权重值写入至存储器阵列1100的多个存储器单元内的示意图。相较于图8A与图8B,图11A与图11B的存储器阵列1100的存储器单元使用率较佳。
综上所述,本发明实施例之优点在于减少数据搬移量,以达到更好的运行时间(execution time)。
综上所述,本发明实施例中,根据移动操作,将深度学习模型的核心(权重矩阵)展开成多个子核心与多个互补子核心,且根据所展开的这些子核心与这些互补子核心,将权重值写入至相关位置。如此一来,输入数据可以在存储器阵列内有效重复使用,以减少运算时间与数据搬移。
本发明实施例不只可应用至人工智能(AI)领域,也可以应用至需要大量乘积和运算的任何计算领域,例如,存储器数据搜寻(memory data search),图像处理,声音侦测等。
本发明实施例可实施于不同AI模型设计(model design),例如,完全连接层(fully connection layer),卷积层(convolution layer),多层感知(Multilayerperceptron),支持向量机器(support vector machine)等。
本发明实施例可应用于任何易失性存储器(如SRAM,DRAM等)或任何的非易失性存储器(如电阻式存储器(Resistive-RAM),相变型存储器(Phase Change Memory),闪存,磁阻式存储器(Magnetoresistive RAM),铁电存储器(Ferroelectric RAM)等)。
此外,在本发明其他实施例中,字线与位线的角色可以互换,亦即,输入数据可由位线输入,此亦在本发明保护范围内。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种存储器内计算方法,执行于一存储器装置,其中,该存储器内计算方法包括:
依据一移动参数,将一核心展开成多个子核心与多个互补子核心;
根据这些子核心与这些互补子核心,将多个权重值写入至该存储器装置的一存储器阵列的多个目标存储器单元;
将一输入数据输入至该存储器阵列的一被选字线;
在该存储器阵列执行一移动运算;
暂存多个部分总和;以及
当已完成所有运算周期时,将所暂存的这些部分总和加总,以得到一移动运算结果。
2.根据权利要求1所述的存储器内计算方法,其中,该核心包括一原始权重矩阵。
3.根据权利要求2所述的存储器内计算方法,其中,于展开该核心时,依据该移动参数,将该核心依行方向移动与依列方向移动以得到这些子核心,其中,各这些子核心为一权重矩阵,且这些子核心为一0矩阵,或者,这些子核心包括该核心的至少一个权重。
4.根据权利要求2所述的存储器内计算方法,其中,将这些子核心互补成这些互补子核心,当该原始权重矩阵是k×l矩阵(k与l皆为自然数)且该输入数据为N×M矩阵(N与M皆为自然数),如果该移动参数为1,则这些子核心的总数量为(N-k+1)×(M-l+1),且这些互补子核心的总数量为(N-k+1)×(M-l+1)。
5.根据权利要求1所述的存储器内计算方法,其中,暂存这些部分总和于该存储器阵列的至少一闩锁单元内。
6.一种存储器装置,其中,包括:
一存储器阵列;以及
一控制器,耦接至该存储器阵列,
其中,该控制器架构成:
依据一移动参数,将一核心展开成多个子核心与多个互补子核心;
根据这些子核心与这些互补子核心,将多个权重值写入至该存储器阵列的多个目标存储器单元;
将一输入数据输入至该存储器阵列的一被选字线;
在该存储器阵列执行一移动运算;
暂存多个部分总和;以及
当已完成所有运算周期时,将所暂存的这些部分总和加总,以得到一移动运算结果。
7.根据权利要求6所述的存储器装置,其中,该核心包括一原始权重矩阵。
8.根据权利要求7所述的存储器装置,其中,于展开该核心时,依据该移动参数,将该核心依行方向移动与依列方向移动以得到这些子核心,其中,各这些子核心为一权重矩阵,且这些子核心为一0矩阵,或者,这些子核心包括该核心的至少一个权重。
9.根据权利要求7所述的存储器装置,其中,将这些子核心互补成这些互补子核心,当该原始权重矩阵是k×l矩阵(k与l皆为自然数)且该输入数据为N×M矩阵(N与M皆为自然数),如果该移动参数为1,则这些子核心的总数量为(N-k+1)×(M-l+1),且这些互补子核心的总数量为(N-k+1)×(M-l+1)。
10.根据权利要求6所述的存储器装置,其中,暂存这些部分总和于该存储器阵列的至少一闩锁单元内。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201962916797P | 2019-10-18 | 2019-10-18 | |
| US62/916,797 | 2019-10-18 | ||
| US17/026,347 | 2020-09-21 | ||
| US17/026,347 US11354123B2 (en) | 2019-10-18 | 2020-09-21 | Memory device and computing in memory method thereof |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN112684977A true CN112684977A (zh) | 2021-04-20 |
| CN112684977B CN112684977B (zh) | 2024-05-28 |
Family
ID=75445422
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202011012617.7A Active CN112684977B (zh) | 2019-10-18 | 2020-09-24 | 存储器装置及其存储器内计算方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN112684977B (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115809692A (zh) * | 2022-12-13 | 2023-03-17 | 至讯创新科技(无锡)有限公司 | Nand闪存实现神经网络运算的控制方法 |
Citations (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1173765A (ja) * | 1997-08-29 | 1999-03-16 | Sanyo Electric Co Ltd | 半導体記憶装置 |
| CN102971754A (zh) * | 2010-07-07 | 2013-03-13 | 高通股份有限公司 | 用于神经处理器中的可替代突触权重存储的方法和系统 |
| US20170024632A1 (en) * | 2015-07-23 | 2017-01-26 | Mireplica Technology, Llc | Performance Enhancement For Two-Dimensional Array Processor |
| US20170278559A1 (en) * | 2016-03-28 | 2017-09-28 | Micron Technology, Inc. | Apparatuses and methods for data movement |
| CN108010551A (zh) * | 2016-10-27 | 2018-05-08 | 三星电子株式会社 | 用于dpu运算的软件栈和编程 |
| KR20180052063A (ko) * | 2016-11-07 | 2018-05-17 | 한국전자통신연구원 | 컨볼루션 신경망 시스템 및 그것의 동작 방법 |
| US20180315473A1 (en) * | 2017-04-28 | 2018-11-01 | Arizona Board Of Regents On Behalf Of Arizona State University | Static random access memory (sram) cell and related sram array for deep neural network and machine learning applications |
| CN109074845A (zh) * | 2016-03-23 | 2018-12-21 | Gsi 科技公司 | 存储器内矩阵乘法及其在神经网络中的使用 |
| US20190065151A1 (en) * | 2018-09-28 | 2019-02-28 | Intel Corporation | Digital bit-serial multi-multiply-and-accumulate compute in memory |
| US20190187898A1 (en) * | 2017-12-15 | 2019-06-20 | Samsung Electronics Co., Ltd. | Hbm based memory lookup engine for deep learning accelerator |
| US10340003B1 (en) * | 2018-07-06 | 2019-07-02 | National Tsing Hua University | Input-pattern aware reference generation system and computing-in-memory system including the same |
| US20190221257A1 (en) * | 2018-01-12 | 2019-07-18 | Chung Yuan Christian University | Method of performing feedforward and recurrent operations in an artificial neural network using nonvolatile memory cells |
| CN110289029A (zh) * | 2018-03-19 | 2019-09-27 | 旺宏电子股份有限公司 | 存储器装置及其操作方法 |
-
2020
- 2020-09-24 CN CN202011012617.7A patent/CN112684977B/zh active Active
Patent Citations (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1173765A (ja) * | 1997-08-29 | 1999-03-16 | Sanyo Electric Co Ltd | 半導体記憶装置 |
| CN102971754A (zh) * | 2010-07-07 | 2013-03-13 | 高通股份有限公司 | 用于神经处理器中的可替代突触权重存储的方法和系统 |
| US20170024632A1 (en) * | 2015-07-23 | 2017-01-26 | Mireplica Technology, Llc | Performance Enhancement For Two-Dimensional Array Processor |
| CN109074845A (zh) * | 2016-03-23 | 2018-12-21 | Gsi 科技公司 | 存储器内矩阵乘法及其在神经网络中的使用 |
| US20170278559A1 (en) * | 2016-03-28 | 2017-09-28 | Micron Technology, Inc. | Apparatuses and methods for data movement |
| CN108010551A (zh) * | 2016-10-27 | 2018-05-08 | 三星电子株式会社 | 用于dpu运算的软件栈和编程 |
| KR20180052063A (ko) * | 2016-11-07 | 2018-05-17 | 한국전자통신연구원 | 컨볼루션 신경망 시스템 및 그것의 동작 방법 |
| US20180315473A1 (en) * | 2017-04-28 | 2018-11-01 | Arizona Board Of Regents On Behalf Of Arizona State University | Static random access memory (sram) cell and related sram array for deep neural network and machine learning applications |
| US20190187898A1 (en) * | 2017-12-15 | 2019-06-20 | Samsung Electronics Co., Ltd. | Hbm based memory lookup engine for deep learning accelerator |
| CN110058802A (zh) * | 2017-12-15 | 2019-07-26 | 三星电子株式会社 | 存储装置及控制存储器装置的方法 |
| US20190221257A1 (en) * | 2018-01-12 | 2019-07-18 | Chung Yuan Christian University | Method of performing feedforward and recurrent operations in an artificial neural network using nonvolatile memory cells |
| CN110289029A (zh) * | 2018-03-19 | 2019-09-27 | 旺宏电子股份有限公司 | 存储器装置及其操作方法 |
| US10340003B1 (en) * | 2018-07-06 | 2019-07-02 | National Tsing Hua University | Input-pattern aware reference generation system and computing-in-memory system including the same |
| US20190065151A1 (en) * | 2018-09-28 | 2019-02-28 | Intel Corporation | Digital bit-serial multi-multiply-and-accumulate compute in memory |
Non-Patent Citations (1)
| Title |
|---|
| PING CHI等: "PRIME: A Novel Processing-in-memory Architecture for Neural Network Computation in ReRAM-based Main Memory", 2016 ACM/IEEE 43RD ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA), 25 August 2016 (2016-08-25), pages 27 - 39 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115809692A (zh) * | 2022-12-13 | 2023-03-17 | 至讯创新科技(无锡)有限公司 | Nand闪存实现神经网络运算的控制方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112684977B (zh) | 2024-05-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6762352B2 (ja) | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス | |
| JP6813561B2 (ja) | ニューラルネットワークにおける畳み込み計算のための方法および電子デバイス | |
| CN111258495B (zh) | 半导体存储器设备和操作该半导体存储器设备的方法 | |
| US11113231B2 (en) | Method of processing in memory (PIM) using memory device and memory device performing the same | |
| CN107533459A (zh) | 使用电阻存储器阵列的数据处理 | |
| KR20190066473A (ko) | 뉴럴 네트워크에서 컨볼루션 연산을 처리하는 방법 및 장치 | |
| JP2022550730A (ja) | 高速なスパースニューラルネットワーク | |
| US20240095532A1 (en) | Method and apparatus for processing data | |
| TW202121202A (zh) | 資料暫存裝置、資料暫存方法以及計算方法 | |
| CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
| JP6955598B2 (ja) | 複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体 | |
| TW202022711A (zh) | 使用記憶體內運算的卷積加速器 | |
| KR102764317B1 (ko) | 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치 | |
| KR102808579B1 (ko) | 뉴럴 네트워크에서 연산을 수행하는 방법 및 장치 | |
| US10997497B2 (en) | Calculation device for and calculation method of performing convolution | |
| US12125124B1 (en) | Matrix transpose hardware acceleration | |
| US20210192315A1 (en) | Method and apparatus with neural network convolution operation | |
| KR20200028791A (ko) | 데이터를 추출하는 집적 회로, 그것을 포함하는 뉴럴 네트워크 프로세서 및 뉴럴 네트워크 장치 | |
| CN109902821B (zh) | 一种数据处理方法、装置及相关组件 | |
| KR20210045224A (ko) | 데이터를 처리하는 방법 및 장치 | |
| CN112684977A (zh) | 存储器装置及其存储器内计算方法 | |
| CN112396085B (zh) | 识别图像的方法和设备 | |
| TWI774067B (zh) | 記憶體裝置及其記憶體內計算方法 | |
| US20230061729A1 (en) | Data processing system, operating method thereof, and computing system using the same | |
| KR20240038721A (ko) | 디지털 컴퓨트 인 메모리 |
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 |