存储器装置及其操作方法制造方法及图纸

技术编号:37637790 阅读:12 留言:0更新日期:2023-05-25 10:04
本公开提供存储器装置与其操作方法。存储器装置的操作方法包括:对一输入数据进行编码,将一编码后输入数据传送至至少一页缓冲器内,以及从该至少一页缓冲器平行读出该编码后输入数据;对一权重数据的一第一部分与一第二部分分别编码为该权重数据的一编码后第一部分与该权重数据的一编码后第二部分,将该权重数据的该编码后第一部分与该权重数据的该编码后第二部分写入至该存储器装置的多个存储器单元内,以及平行读出该权重数据的该编码后第一部分与该权重数据的该编码后第二部分;将该编码后输入数据分别乘上该权重数据的该编码后第一部分与该权重数据的该编码后第二部分,以平行产生多个部分乘积;以及将这些部分乘积累加,以产生一运算结果。以产生一运算结果。以产生一运算结果。

【技术实现步骤摘要】
存储器装置及其操作方法


[0001]本公开有关于一种具有存储器内运算(In

Memory

Computing,IMC)的存储器装置及其操作方法。

技术介绍

[0002]人工智能(AI)已在许多领域中成为高度有效解决方案。AI的关键操作在于对大量的输入数据(如输入特征图(input feature maps))与权重值进行乘积累加运算(multiply

and

accumulate,MAC)。
[0003]然而,以目前的AI架构而言,容易遇到输出入瓶颈(IO bottleneck)与低效率的MAC运算流程。
[0004]为达到高准确度,可执行具有多位输入及多位权重值的MAC操作。然而,输出入瓶颈变得更加严重,且效率将更低。
[0005]存储器内运算(In

Memory

Computing,IMC)可用于加速MAC运算,因为IMC可减少在中央处理架构下所需要用的复杂算术逻辑单元(Arithmetic logic unit,ALU),且提供存储器内的MAC操作的高并行性(parallelism)。
[0006]在进行IMC时,无符号数(unsigned integer)乘法运算与带符号数(signed integer)乘法运算的说明如下。
[0007]例如,想要相乘两个无符号数(皆为8位):a[7:0]与b[7:0]。则可执行8次的单个位乘法来产生8个部分乘积(partial product)p0[7:0]~p7[7:0],各该8个部分乘积相关于被乘数a的各位,该8个部分乘积可表示如下:
[0008]p0[7:0]=a[0]×
b[7:0]={8{a[0]}}&b[7:0][0009]p1[7:0]=a[1]×
b[7:0]={8{a[1]}}&b[7:0][0010]p2[7:0]=a[2]×
b[7:0]={8{a[2]}}&b[7:0][0011]p3[7:0]=a[3]×
b[7:0]={8{a[3]}}&b[7:0][0012]p4[7:0]=a[4]×
b[7:0]={8{a[4]}}&b[7:0][0013]p5[7:0]=a[5]×
b[7:0]={8{a[5]}}&b[7:0][0014]p6[7:0]=a[6]×
b[7:0]={8{a[6]}}&b[7:0][0015]p7[7:0]=a[7]×
b[7:0]={8{a[7]}}&b[7:0][0016]其中,{8{a[0]}}代表将a[0]重复8次,其余可依此类推。
[0017]为得到乘积,将该8个部分乘积p0[7:0]~p7[7:0]相加,如图1A所示。图1A为两个无符号数(皆为8位)的相乘。
[0018]其中,P0=p0[0]+0+0+0+0+0+0+0,而P1=p0[1]+p1[0]+0+0+0+0+0+0,其余可依此类推。
[0019]乘积P[15:0]则是将P0~P15而得。乘积P[15:0]代表将两个无符号数(皆为8位)相乘所得到的16位无符号乘积。
[0020]而如果b是带符号数,则于加总之前,部分乘积需要做符号展开(sign

extended)
至乘积宽度。如果a也是带符号数,则部分乘积P7要从最后总和减去,而不是相加。
[0021]图1B为两个符号数(皆为8位)的相乘。在图1B中,符号“~”代表互补,例如,~p1[7]代表p1[7]的互补数。
[0022]在进行IMC时,如果能加快“操作速度”及减少容量需要(capacity requirement)的话,对于IMC性能将可有所助益。

技术实现思路

[0023]根据本公开一实例,提出一种存储器装置,包括:多个存储器晶粒,各这些存储器晶粒包括多个存储器平面、多个页缓冲器与一累加电路,各这些存储器平面包括多个存储器单元。其中,对一输入数据进行编码,将一编码后输入数据传送至至少一页缓冲器内,以及,从该至少一页缓冲器平行读出该编码后输入数据;对一权重数据的一第一部分与一第二部分分别编码为该权重数据的一编码后第一部分与该权重数据的一编码后第二部分,并写入至该存储器装置的这些存储器单元内,以及,平行读出该权重数据的该编码后第一部分与该权重数据的该编码后第二部分;将该编码后输入数据分别乘上该权重数据的该编码后第一部分与该权重数据的该编码后第二部分,以平行产生多个部分乘积;以及将这些部分乘积累加,以产生一运算结果。
[0024]根据本公开另一实例,提出一种存储器装置的操作方法,包括:对一输入数据进行编码,将一编码后输入数据传送至至少一页缓冲器内,以及,从该至少一页缓冲器平行读出该编码后输入数据;对一权重数据的一第一部分与一第二部分分别编码为该权重数据的一编码后第一部分与该权重数据的一编码后第二部分,并将该权重数据的该编码后第一部分与该权重数据的该编码后第二部分写入至该存储器装置的多个存储器单元内,以及,平行读出该权重数据的该编码后第一部分与该权重数据的该编码后第二部分;将该编码后输入数据分别乘上该权重数据的该编码后第一部分与该权重数据的该编码后第二部分,以平行产生多个部分乘积;以及将这些部分乘积累加,以产生一运算结果。
[0025]为了对本公开的上述及其他方面有更佳的了解,下文特举实施例,并配合附图详细说明如下:
附图说明
[0026]图1A为两个无符号数的相乘。
[0027]图1B为两个符号数的相乘。
[0028]图2为根据本公开一实施例的存储器装置的操作方法流程图。
[0029]图3A与图3B为本公开实施例中的错误位容忍数据编码。
[0030]图4A为在本公开一实施例中的8位无符号数乘法运算。
[0031]图4B为在本公开一实施例中的8位带符号数乘法运算。
[0032]图5A为根据本公开一实施例的无符号数乘法运算的操作示意图。
[0033]图5B为根据本公开一实施例的带符号数乘法运算的操作示意图。
[0034]图6为根据本公开一实施例的存储器装置的功能框图。
[0035]图7为比较本公开一实施例与现有技术的MAC运算流程时序图。
[0036]图8为根据本公开一实施例的存储器装置的操作方法。
[0037]附图标记说明
[0038]210

240:步骤
[0039]600:存储器装置615:存储器晶粒
[0040]620:存储器平面625:页缓冲器
[0041]630:累加电路631:感应电路
[0042]633

641:闩锁单元643、645:逻辑门
[0043]651:部分乘积累本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种存储器装置,包括:多个存储器晶粒,各这些存储器晶粒包括多个存储器平面、多个页缓冲器与一累加电路,各这些存储器平面包括多个存储器单元,其中,对一输入数据进行编码,将一编码后输入数据传送至至少一页缓冲器内,以及,从该至少一页缓冲器平行读出该编码后输入数据;对一权重数据的一第一部分与一第二部分分别编码为该权重数据的一编码后第一部分与该权重数据的一编码后第二部分,并写入至该存储器装置的这些存储器单元内,以及,平行读出该权重数据的该编码后第一部分与该权重数据的该编码后第二部分;将该编码后输入数据分别乘上该权重数据的该编码后第一部分与该权重数据的该编码后第二部分,以平行产生多个部分乘积;以及将这些部分乘积累加,以产生一运算结果。2.根据权利要求1所述的存储器装置,其中,该权重数据的该第一部分是最高有效位,以及该权重数据的该第二部分是最低有效位。3.根据权利要求1所述的存储器装置,其中,在编码时,将该输入数据与该权重数据分别量化成二进制整数矢量;将该输入数据的各位复制多次并加上一备用位;将该权重数据分开成该第一部分与该第二部分;以及将该权重数据的该第一部分与该第二部分的各位以一元编码表示,以得到该权重数据的该编码后第一部分与该权重数据的该编码后第二部分。4.根据权利要求1所述的存储器装置,其中,该运算结果包括一乘积累加结果运算结果或者一汉明距离运算结果;以及,将属同一维度的这些部分乘积累加,以得到单一维度乘积;将多个单一维度乘积累加,以得到一多维度乘积累加结果;将多个多维度乘积累加结果累加,以产生该运算结果。5.根据权利要求4所述的存储器装置,其中,当进行乘积累加运算时,对该编码后输入数据的各位与该权重数据的该编码后第一部分的各位进行逻辑及运算;以及当进行汉明距离运算时,对该编码后输入数据的各位与该权重数据的该编码后第一部分的各位进行逻辑异或运算。6.一种存...

【专利技术属性】
技术研发人员:胡瀚文李永骏林柏榕王淮慕王韦程
申请(专利权)人:旺宏电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1