可做内乘积运算的存储器储存装置及其操作方法转让专利

申请号 : CN201811653746.7

文献号 : CN111353122B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 魏旻良

申请人 : 旺宏电子股份有限公司

摘要 :

实现内乘积运算的存储器储存装置包括:一存储器阵列,接收一输入,以得到一单元电流,其中,该单元电流相关于该输入及该存储器阵列的多个存储器单元的多个转导;一参考阵列,输出一参考电流;一模拟数字转换单元,耦接至该存储器阵列与该参考阵列,该模拟数字转换单元根据该参考阵列的该参考电流对该存储器阵列的该单元电流进行模拟数字转换而得到一数字输出;以及一存储器控制器,耦接至该模拟数字转换单元,该存储器控制器将该输入累加,以得到一输入累加值,该存储器控制器对该输入累加值进行移位成一移位后输入累加值,该存储器控制器对该模拟数字转换单元的该数字输出与该移位后输入累加值相减,以得到一输出。

权利要求 :

1.一种实现内乘积运算的存储器储存装置,包括:

一存储器阵列,接收一输入,以得到一单元电流,其中,该单元电流相关于该输入及该存储器阵列的多个存储器单元的多个转导;

一参考阵列,输出一参考电流;

一模拟数字转换单元,耦接至该存储器阵列与该参考阵列,该模拟数字转换单元根据该参考阵列的该参考电流对该存储器阵列的该单元电流进行模拟数字转换而得到一数字输出;以及一存储器控制器,耦接至该模拟数字转换单元,该存储器控制器将该输入累加,以得到一输入累加值,该存储器控制器对该输入累加值进行移位成一移位后输入累加值,该存储器控制器对该模拟数字转换单元的该数字输出与该移位后输入累加值相减,以得到一输出,其中,该存储器控制器的该输出代表该输入与一权重的内乘积,该权重包括一正权重与一负权重,该正权重由该存储器阵列的该些存储器单元的该些转导所实施,而该负权重由该存储器控制器内的一位移器的一位移量所实施。

2.如权利要求1所述的存储器储存装置,其中,该存储器控制器包括:一加法器与一缓冲器,该加法器接收该输入,该加法器的一输出是输入至该缓冲器,而该缓冲器的一输出又回至该加法器,该缓冲器的该输出为该输入累加值;

一移位器,对该输入累加值进行移位成该移位后输入累加值;以及一减法器,对该模拟数字转换单元的该数字输出与该移位后输入累加值相减,以得到该输出。

3.如权利要求1所述的存储器储存装置,其中,

该参考电流无关于该输入;

该位移量相关于该负权重取2的对数值;

该负权重为一固定值;以及

该负权重为2的幂次方。

4.一种实现内乘积运算的存储器储存装置,包括:

一存储器阵列,接收一输入,以得到一单元电流,其中,该单元电流相关于该输入及该存储器阵列的多个存储器单元的多个转导;

一存储器控制器,该存储器控制器将该输入累加,以得到一输入累加值;

一参考阵列,耦接至该存储器控制器,该参考阵列接收该存储器控制器的该输入累加值以输出一电流,该电流相关于该输入与该参考阵列的多个参考单元的多个转导;以及一模拟数字转换单元,耦接至该存储器阵列与该参考阵列,该模拟数字转换单元根据该参考阵列的该电流,对该存储器阵列的该单元电流进行模拟数字转换而得到一输出;

其中,该模拟数字转换单元的该输出代表该输入与一权重的内乘积,该权重包括一正权重与一负权重,该正权重由该存储器阵列的该些存储器单元的该些转导所实施,而该负权重由该参考阵列的该些参考单元的该些转导所实施。

5.如权利要求4所述的存储器储存装置,其中,该存储器控制器包括:一加法器与一缓冲器,该加法器接收该输入,该加法器的一输出是输入至该缓冲器,而该缓冲器的一输出又回至该加法器,该缓冲器的该输出为该输入累加值。

6.如权利要求4所述的存储器储存装置,其中,

该参考阵列所产生的该电流的一第一部分无关于该输入,而该参考阵列所产生的该电流的一第二部分相关于该输入与该参考阵列的该些参考单元的该些转导;以及该参考阵列的该些参考单元的该些转导的值为一固定值。

7.一种存储器储存装置的操作方法,该存储器储存装置包括一存储器阵列、一参考阵列、一模拟数字转换单元与一存储器控制器,该操作方法包括:由该存储器阵列接收一输入,以得到一单元电流,其中,该单元电流相关于该输入及该存储器阵列的多个存储器单元的多个转导;

由该参考阵列输出一参考电流;

由该模拟数字转换单元根据该参考阵列的该参考电流对该存储器阵列的该单元电流进行模拟数字转换而得到一数字输出;以及由该存储器控制器将该输入累加,以得到一输入累加值,对该输入累加值进行移位成一移位后输入累加值,且对该模拟数字转换单元的该数字输出与该移位后输入累加值相减,以得到一输出,其中,该存储器控制器的该输出代表该输入与一权重的内乘积,该权重包括一正权重与一负权重,该正权重由该存储器阵列的该些存储器单元的该些转导所实施,而该负权重由该存储器控制器内的一位移器的一位移量所实施。

8.如权利要求7所述的操作方法,其中,

该参考电流无关于该输入;

该位移量相关于该负权重取2的对数值;

该负权重为一固定值;以及

该负权重为2的幂次方。

9.一种存储器储存装置的操作方法,该存储器储存装置包括一存储器阵列、一参考阵列、一模拟数字转换单元与一存储器控制器,该操作方法包括:由该存储器阵列接收一输入以得到一单元电流,其中,该单元电流相关于该输入及该存储器阵列的多个存储器单元的多个转导;

由该存储器控制器将该输入累加,以得到一输入累加值;

由该参考阵列接收该存储器控制器的该输入累加值以输出一电流,该电流相关于该输入与该参考阵列的多个参考单元的多个转导;以及由该模拟数字转换单元根据该参考阵列的该电流,对该存储器阵列的该单元电流进行模拟数字转换而得到一输出;

其中,该模拟数字转换单元的该输出代表该输入与一权重的内乘积,该权重包括一正权重与一负权重,该正权重由该存储器阵列的该些存储器单元的该些转导所实施,而该负权重由该参考阵列的该些参考单元的该些转导所实施。

10.如权利要求9所述的操作方法,其中,

该参考阵列所产生的该电流的一第一部分无关于该输入,而该参考阵列所产生的该电流的一第二部分相关于该输入与该参考阵列的该些参考单元的该些转导;

该参考阵列的该些参考单元的该些转导的值为一固定值。

说明书 :

可做内乘积运算的存储器储存装置及其操作方法

技术领域

[0001] 本发明是有关于一种可做内乘积运算的存储器储存装置及其操作方法,且特别是有关于一种可做内乘积运算的非易失性存储器储存装置及其操作方法。

背景技术

[0002] 以目前而言,神经网络(Neural Network,NN)日益发展。神经网络需要大量的乘积运算,例如,内乘积运算。以传统架构来看的话,是将数据从存储器搬到处理器,由处理器处理后回传至存储器并输出。然而,这样的传统架构需要大电路面积,且对平行处理有不良影响。
[0003] 故而,目前亦已发展出能实现乘积运算的存储器。存储器不只当成数据储存,亦可实现乘积运算。
[0004] 在目前,在用存储器实现内乘积运算时,可利用数字方式或模拟方式。以数字方式来说,传统上,如果利用数字乘法器来实现内乘积运算的话,需要用到数百颗的晶体管来完成数字乘法器,电路成本较高。
[0005] 现将说明用模拟方式来实现内乘积运算。以乘加运算为例,将被乘数当成对应的电阻值(亦即,以存储器单元当成等效电阻,来实现被乘数),再根据欧姆定律(I=V*(1/
R)),即可让存储器单元作为乘法元件,再由电流迭加来完成加法。也就是说,如果存储单元来实现乘法器的话,输入是量化后的电压,转导(W)(或者是权重)是等效电阻的倒数,电压乘上转导就是电流。所以,所得到的电流就是内乘积的结果。
[0006] 图1(现有技术)显示用模拟方式来实现内乘积运算的现有技术示意图。如图1所示,根据欧姆定律,电流I=∑VG,其中,输入值是X1与X2,输入电压则是Vin1与Vin2,由转换单元10可将输入值X1,X2转换成输入电压Vin1、Vin2(V=βX)。转导的值亦称为转导值,转导值G跟权重W之间的关系则是G=αW,其中,G1是由至少一个存储器单元所组成的等效转导值,同样地,G2也是由至少一个存储器单元所组成的等效转导值。所以,经由感应放大器SA转换,所得到的输出Y=∑XW,如此可以实现内乘积。
[0007] 以模拟方式而言,如果想要实现负权重,需要电流减法器来等效实现负权重。图2+
(现有技术)显示现有利用电流减法器20来等效实现负权重的示意图。如图2所示,G1 是由至‑ + ‑
少一个存储器单元所组成的等效转导值,G1 、G2 、G2也是如此。G1、G2则代表2个等效转导值+ ‑ + ‑
(G1=G1‑G1 ;G2=G2‑G2),可从G1、G2得到相对应的权重。但这种做法,需要成本较高的电流减法器,提高了实现负权重的成本。

发明内容

[0008] 本案一实施例,提出一种实现内乘积运算的存储器储存装置,包括:一存储器阵列,接收一输入,以得到一单元电流,其中,该单元电流相关于该输入及该存储器阵列的多个存储器单元的多个转导;一参考阵列,输出一参考电流;一模拟数字转换单元,耦接至该存储器阵列与该参考阵列,该模拟数字转换单元根据该参考阵列的该参考电流对该存储器
阵列的该单元电流进行模拟数字转换而得到一数字输出;以及一存储器控制器,耦接至该
模拟数字转换单元,该存储器控制器将该输入累加,以得到一输入累加值,该存储器控制器对该输入累加值进行移位成一移位后输入累加值,该存储器控制器对该模拟数字转换单元
的该数字输出与该移位后输入累加值相减,以得到一输出。其中,该存储器控制器的该输出代表该输入与一权重的内乘积,该权重包括一正权重与一负权重,该正权重由该存储器阵
列的该些存储器单元的该些转导所实施,而该负权重由该存储器控制器内的一位移器的一
位移量所实施。
[0009] 本案另一实施例,提出一种实现内乘积运算的存储器储存装置,包括:一存储器阵列,接收一输入,以得到一单元电流,其中,该单元电流相关于该输入及该存储器阵列的多个存储器单元的多个转导;一存储器控制器,该存储器控制器将该输入累加,以得到一输入累加值;一参考阵列,耦接至该存储器控制器,该参考阵列接收该存储器控制器的该输入累加值以输出一电流,该电流相关于该输入与该参考阵列的多个参考单元的多个转导;以及一模拟数字转换单元,耦接至该存储器阵列与该参考阵列,该模拟数字转换单元根据该参
考阵列的该电流,对该存储器阵列的该单元电流进行模拟数字转换而得到一输出。其中,该模拟数字转换单元的该输出代表该输入与一权重的内乘积,该权重包括一正权重与一负权
重,该正权重由该存储器阵列的该些存储器单元的该些转导所实施,而该负权重由该参考
阵列的该些参考单元该些转导所实施。
[0010] 本案又一实施例,提出一种存储器储存装置的操作方法,该存储器储存装置包括一存储器阵列、一参考阵列、一模拟数字转换单元与一存储器控制器,该操作方法包括:由该存储器阵列接收一输入,以得到一单元电流,其中,该单元电流相关于该输入及该存储器阵列的多个存储器单元的多个转导;由该参考阵列输出一参考电流;由该模拟数字转换单
元根据该参考阵列的该参考电流对该存储器阵列的该单元电流进行模拟数字转换而得到
一数字输出;以及由该存储器控制器将该输入累加,以得到一输入累加值,对该输入累加值进行移位成一移位后输入累加值,且对该模拟数字转换单元的该数字输出与该移位后输入
累加值相减,以得到一输出。其中,该存储器控制器的该输出代表该输入与一权重的内乘
积,该权重包括一正权重与一负权重,该正权重由该存储器阵列的该些存储器单元的该些
转导所实施,而该负权重由该存储器控制器内的一位移器的一位移量所实施。
[0011] 本案更一实施例,提出一种存储器储存装置的操作方法,该存储器储存装置包括一存储器阵列、一参考阵列、一模拟数字转换单元与一存储器控制器,该操作方法包括:由该存储器阵列接收一输入以得到一单元电流,其中,该单元电流相关于该输入及该存储器
阵列的多个存储器单元的多个转导;由该存储器控制器将该输入累加,以得到一输入累加
值;由该参考阵列接收该存储器控制器的该输入累加值以输出一电流,该电流包括一第一
部份与一第二部份,该第二部份相关于该输入与该参考阵列的多个参考单元的多个转导;
以及由该模拟数字转换单元根据该参考阵列的该电流,对该存储器阵列的该单元电流进行
模拟数字转换而得到一输出。该模拟数字转换单元的该输出代表该输入与一权重的内乘
积,该权重包括一正权重与一负权重,该正权重由该存储器阵列的该些存储器单元的该些
转导所实施,而该负权重由该参考阵列的该些参考单元的该些转导所实施。
[0012] 为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合附图详细说明如下:

附图说明

[0013] 图1(现有技术)显示用模拟方式来实现内乘积运算的现有技术示意图。
[0014] 图2(现有技术)显示现有利用电流减法器来等效实现负权重的示意图。
[0015] 图3显示根据本案第一实施例的存储器储存装置的功能方块图。
[0016] 图4显示根据本案第二实施例的存储器储存装置的功能方块图。
[0017] 【符号说明】
[0018] X1、X2:输入值 Vin1、Vin2:输入电压
[0019] 10:转换单元 G1、G2:转导值
[0020] SA:感应放大器 Y:输出
[0021] 20:电流减法器
[0022] G1、G2、G1+、G1‑、G2+、G2‑:转导值
[0023] 300:存储器储存装置 310:存储器阵列
[0024] 320:参考阵列 330:模拟数字转换单元(ADC)
[0025] 340:存储器控制器 341:加法器
[0026] 343:缓冲器 345:移位器
[0027] 347:减法器
[0028] X:输入 Y:输出
[0029] I_REF:参考电流
[0030] 400:存储器储存装置 410:存储器阵列
[0031] 420:输入相关参考阵列 430:模拟数字转换单元
[0032] 440:存储器控制器
[0033] 441:加法器 443:缓冲器

具体实施方式

[0034] 本说明书的技术用语是参照本技术领域的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释是以本说明书的说明或定义为准。本揭露的各个实施例
分别具有一或多个技术特征。在可能实施的前提下,本技术领域普通技术人员可选择性地
实施任一实施例中部分或全部的技术特征,或者选择性地将这些实施例中部分或全部的技
术特征加以组合。
[0035] 图3显示根据本案第一实施例的存储器储存装置300的功能方块图。如图3所示,存储器储存装置300包括:存储器阵列310、参考阵列320、模拟数字转换单元(ADC)330与存储器控制器340。存储器控制器340包括:加法器341、缓冲器343、移位器(shifter)345与减法器347。存储器储存装置300例如但不受限于,可以为非易失性存储器。
[0036] 在图3中,存储器储存装置300可做内乘积运算Y=∑WX,G=αW且V=βX。转导值G跟权重W之间的关系为G=αW,亦即,转导值G(其为等效电阻值R的倒数)为神经网络的权重W的+ ‑ +α倍,α为常数,且G=G‑Gmin ,其中,G乃是存储器阵列310的至少一个存储器单元所组成的‑ ‑ ‑
等效转导值,而Gmin 是一自定义的固定值,Gmin 对应至自定义负权重(Gmin/α),而自定义负‑ ‑
权重(Gmin/α)的对数值(log2(Gmin/α))决定位移器345的位移量。V=βX代表输入电压V是输入X的β倍,β为常数。
[0037] Y=∑WX=(1/αβ)∑VG=(1/αβ)∑V(G+‑Gmin‑)=(1/αβ)∑VG+‑(1/αβ)∑VGmin‑=+ ‑(1/αβ)∑VG‑Wmin∑X
[0038] 其中,Wmin‑=(1/β)*Gmin‑。W=W+‑Wmin‑,其中,W+=(1/α)*G+,而Wmin‑=(1/α)*Gmin‑。W+‑亦可称为正权重,其相关于存储器阵列310的该些存储器单元的转导值。而Wmin亦可称为负权重,其相关于位移器345的位移量,其中位移器345的位移量相关于负权重取2的对数值

(log2Wmin)。
[0039] 在本案第一实施例中,自定义的负权重可以设为2的幂次方(如‑1、‑2、‑4、‑8等),以方便后续利用「移位器」来组合出负权重。
[0040] 输入X输入至加法器341,加法器341的输出是输入至缓冲器343,而缓冲器343的输出又回至加法器341。如此经由加法器341与缓冲器343的累加运算,可得到缓冲器343的输
出为∑X。
[0041] 缓冲器343输出为∑X可以输入至移位器345,以让移位器345对∑X进行移位成‑ ‑
Wmin∑X(可称为「移位后输入累加值」)。移位器345的输出Wmin ∑X可输入至减法器347。若自‑
定义的负权重为2的幂次方,则∑X乘以Wmin的乘法运算,能由位移器345以位移的方式实施‑
(也就是说,位移器345对∑X进行位移后的结果等于Wmin*∑X)。
[0042] 另外,输入X可输入至存储器阵列310,以得到输出电流(亦即为单元电流(cell +
current))∑VG ,其中,V=βX,也就是说单元电流相关于输入X及存储器阵列310的多个存储器单元的多个转导。而参考阵列320则输出参考电流I_REF,其中,在第一实施例中,参考电流I_REF无关于输入X。
[0043] 模拟数字转换单元330耦合至存储器阵列310与参考阵列320。模拟数字转换单元+ +
330根据∑VG与参考电流I_REF而得到(1/αβ)∑VG。详细地说,模拟数字转换单元330可执+ + +
行感应放大器(SA)的功能,比较∑VG与参考电流I_REF而得到(1/αβ)∑VG。或者说,V与G+
乃是模拟数值(W与X则是数字数值),∑VG自然也是模拟数值。模拟数字转换单元330可进
+ +
行模拟数字转换,以将模拟数值∑VG转换成数字数值(1/αβ)∑VG。
[0044] 存储器控制器340耦接至模拟数字转换单元330。模拟数字转换单元330的输出(1/+ + ‑
αβ)∑VG 则输入至存储器控制器340的减法器347。减法器347对(1/αβ)∑VG与Wmin ∑X相+ ‑
减,以得到输出Y(Y=(1/αβ)∑VG ‑Wmin ∑X)。藉此,本案第一实施例的存储器储存装置300可做内乘积运算等AI(人工智能)运算。
[0045] 由上述描述可知,在本案第一实施例中,在实现负权重时,不需要用大面积的模拟减法器,而是用小面积的数字减法器。故而,本案第一实施例具有电路面积小与减少功率消耗的优点。
[0046] 图4显示根据本案第二实施例的存储器储存装置400的功能方块图。如图4所示,存储器储存装置400包括:存储器阵列410、输入相关参考阵列420、模拟数字转换单元(ADC)
430与存储器控制器440。存储器控制器440包括:加法器441与缓冲器443。存储器储存装置
400例如但不受限于,可以为非易失性存储器。输入相关参考阵列420耦接至存储器控制器
440。存储器阵列410与输入相关参考阵列420耦接至模拟数字转换单元430。
[0047] 在图4中,存储器储存装置400可做内乘积运算Y=∑WX。
[0048] Y=(1/αβ)∑VG=(1/αβ)∑V(G+‑Gmin‑)=(1/αβ){∑VG+‑∑VGmin‑}=(1/αβ){∑VG+‑‑Gmin∑V}
[0049] 加法器441与缓冲器443的操作类似于图3的加法器341与缓冲器343。
[0050] 缓冲器443的输出∑X则输入至输入相关参考阵列420。在本案第二实施例中,输入相关参考阵列420的参考单元的转导值乃是固定值,以方便组合负权重。此外,输入相关参考阵列420的输出电流包括2部份,其中一部份是参考电流I_REF(此部份无关于输入X),另

一部份则是∑VGmin(此部份相关于输入X与参考单元的转导)。
[0051] 另外,输入X可输入至存储器阵列410,以得到输出电流(亦即为单元电流(cell +
current))∑VG,其中,V=βX。
[0052] 模拟数字转换单元430根据∑VG+与「I_REF+∑VGmin‑」而得到(1/αβ)∑VG。详细地+ ‑说,模拟数字转换单元430可执行感应放大器(SA)的功能,比较∑VG 与「I_REF+∑VGmin」而+
得到(1/αβ)∑VG。如此,模拟数字转换单元430可得到输出Y=(1/αβ){∑VG‑Gmin‑∑V}。
[0053] 在本案第二实施例中,为了去除减法器,输入相关参考阵列420的输出电流的一部份相关于输入X。此原因在于,对模拟数字转换单元430的输出结果而言,模拟数字转换单元+ ‑
430比较∑VG与「I_REF+∑VGmin」,可以得到输出结果(1/αβ)∑VG。从另一方面来看,模拟数+ ‑
字转换单元430比较「∑VG ‑∑VGmin 」与「I_REF」所得到的输出结果Y’也等效于(1/αβ)∑VG(Y等效于Y’,但两者实现方法不同)。故而,在本案第二实施例中,通过输入相关参考阵列
420的设计,可进一步减少使用减法器,更能减小存储器控制器440与存储器储存装置400的电路面积。藉此,本案第二实施例的存储器储存装置400可做内乘积运算等AI(人工智能)运算。
[0054] 由上述描述可知,在本案第二实施例中,在实现负权重时,不需要用大面积的模拟减法器,故而,本案第二实施例具有电路面积小与减少功率消耗的优点。
[0055] 综上所述,虽然本发明已以实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当以权利要求所界定的为准。