CN116710931A - 用于神经网络阵列的方法和装置 - Google Patents
用于神经网络阵列的方法和装置 Download PDFInfo
- Publication number
- CN116710931A CN116710931A CN202180091010.9A CN202180091010A CN116710931A CN 116710931 A CN116710931 A CN 116710931A CN 202180091010 A CN202180091010 A CN 202180091010A CN 116710931 A CN116710931 A CN 116710931A
- Authority
- CN
- China
- Prior art keywords
- neural network
- array
- layer
- input
- cell
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 143
- 238000003491 array Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 title abstract description 24
- 210000004027 cell Anatomy 0.000 claims abstract description 191
- 210000000225 synapse Anatomy 0.000 claims abstract description 39
- 230000000295 complement effect Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 230000000946 synaptic effect Effects 0.000 claims description 3
- 230000003915 cell function Effects 0.000 claims 1
- 210000002569 neuron Anatomy 0.000 description 59
- 210000004205 output neuron Anatomy 0.000 description 42
- 210000002364 input neuron Anatomy 0.000 description 35
- 238000012549 training Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000009826 distribution Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- PXHVJJICTQNCMI-UHFFFAOYSA-N Nickel Chemical compound [Ni] PXHVJJICTQNCMI-UHFFFAOYSA-N 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 229910044991 metal oxide Inorganic materials 0.000 description 3
- 150000004706 metal oxides Chemical class 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- BASFCYQUMIYNBI-UHFFFAOYSA-N platinum Chemical compound [Pt] BASFCYQUMIYNBI-UHFFFAOYSA-N 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 239000011651 chromium Substances 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000005684 electric field Effects 0.000 description 2
- 229910052751 metal Inorganic materials 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 150000002739 metals Chemical class 0.000 description 2
- 239000012782 phase change material Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000003977 synaptic function Effects 0.000 description 2
- HLLICFJUWSZHRJ-UHFFFAOYSA-N tioxidazole Chemical compound CCCOC1=CC=C2N=C(NC(=O)OC)SC2=C1 HLLICFJUWSZHRJ-UHFFFAOYSA-N 0.000 description 2
- 239000010936 titanium Substances 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- -1 HfOx Chemical class 0.000 description 1
- 210000004460 N cell Anatomy 0.000 description 1
- 229910052777 Praseodymium Inorganic materials 0.000 description 1
- KJTLSVCANCCWHF-UHFFFAOYSA-N Ruthenium Chemical compound [Ru] KJTLSVCANCCWHF-UHFFFAOYSA-N 0.000 description 1
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 229910003087 TiOx Inorganic materials 0.000 description 1
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical compound [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 description 1
- NRTOMJZYCJJWKI-UHFFFAOYSA-N Titanium nitride Chemical compound [Ti]#N NRTOMJZYCJJWKI-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 229910052804 chromium Inorganic materials 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 229910052759 nickel Inorganic materials 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 229910052697 platinum Inorganic materials 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- PUDIUYLPXJFUGB-UHFFFAOYSA-N praseodymium atom Chemical compound [Pr] PUDIUYLPXJFUGB-UHFFFAOYSA-N 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 229910052707 ruthenium Inorganic materials 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 229910052715 tantalum Inorganic materials 0.000 description 1
- GUVRBAGPIYLISA-UHFFFAOYSA-N tantalum atom Chemical compound [Ta] GUVRBAGPIYLISA-UHFFFAOYSA-N 0.000 description 1
- 229910052719 titanium Inorganic materials 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- 239000010937 tungsten Substances 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
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/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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Semiconductor Memories (AREA)
- Read Only Memory (AREA)
Abstract
公开了用于神经网络阵列的方法和装置。在一个实施例中,神经网络阵列包括:多个串,每个串具有漏极选择门晶体管,该漏极选择门晶体管连接到多个非易失性存储单元,多个非易失性存储单元串联并用作突触;以及多个输出节点,每个输出节点连接以从漏极选择门的多个漏极端子接收输出信号。该阵列还包括:多个输入节点,每个输入节点连接以向漏极选择门的多个门端子提供输入信号;以及多个权重选择信号,分别连接到每个串中的多个非易失性存储单元。每个权重选择信号向选择的非易失性存储单元提供选择的电压,以使选择的非易失性存储单元根据选择的非易失性存储单元的选择的特性来传导电流。
Description
相关申请的交叉引用
本申请根据《美国法典》第35卷第119条要求2020年11月25日提交的名称为“NEURAL NETWORK ARRAY”的美国临时专利申请第63/118,600号的优先权权益,其全部内容通过引用并入本文。
技术领域
本发明的示例性实施例总体上涉及半导体和集成电路领域,更具体地涉及神经网络阵列的设计和操作。
背景技术
人工神经网络是人工智能(Artificial Intelligence,AI)的关键组件。人工神经网络通常包括多层神经元。每层包括输入神经元和输出神经元。输入神经元和输出神经元通过突触连接。每个输入神经元都连接到所有的输出神经元。每个突触提供一个“权重”值来乘以来自输入神经元的输入,然后将结果信号发送到输出神经元。通过调整突触的权重值,可以训练神经网络执行诸如模式识别、语音识别等许多任务。深度学习神经网络可能包含多于十层,并且每层包含数千个神经元。
典型的人工神经网络是通过使用CPU(Central Processing Unit,中央处理单元)或GPU(Graphics Processing Unit,图形处理单元)来模拟神经元和突触的功能而实现的。对于大数据应用来说,这需要大量的计算,这导致了非常长的训练时间和非常高的功耗。
发明内容
在各种示例性实施例中,提供了采用非易失性存储器阵列和电阻式非易失性存储器阵列(诸如RRAM(电阻式随机存取存储器)和PCM(相变存储器))来实现神经网络的方法和装置。神经网络可以构造为2D(二维)或3D(三维)结构。非易失性存储器器件是电阻式存储器,并且是非易失性的、高密度的、低功率的且低成本的。因此,这些器件是在人工智能(AI)应用中实现用于深度机器学习的大规模神经网络的良好选项。
在一个实施例中,神经网络阵列包括:多个串,每个串具有漏极选择门晶体管,该漏极选择门晶体管连接到多个非易失性存储单元,多个非易失性存储单元串联并用作突触;以及多个输出节点,每个输出节点连接以从漏极选择门的多个漏极端子接收输出信号。该阵列还包括:多个输入节点,每个输入节点连接以向漏极选择门的多个门端子提供输入信号;以及多个权重选择信号,分别连接到每个串中的多个非易失性存储单元。每个权重选择信号向选择的非易失性存储单元提供选择的电压,以使选择的非易失性存储单元根据选择的非易失性存储单元的选择的特性来传导电流。
根据以下提供的详细描述、附图和权利要求书,本发明的附加特征和益处将变得显而易见。
附图说明
根据以下给出的详细描述和本发明的各种实施例的附图,本发明的示例性实施例将会得到更全面的理解。然而,这些不应被视为将本发明限制于特定的实施例,而是仅用于说明和理解。
图1A示出了示例性的神经网络架构。
图1B示出了用于图1A中所示的架构的一个神经网络层的示例性结构。
图1C示出了输出神经元的示例性函数。
图2A示出了采用3D非易失性存储器阵列实现的神经网络层的一个实施例。
图2B示出了图2A中所示的3D非易失性存储器阵列的示例性等效电路。
图3A示出了数字神经网络中单元的Vt分布的一个实施例。
图3B示出了模拟神经网络中单元的Vt分布的一个实施例。
图3C示出了模拟神经网络中单元的Vt分布的另一个实施例。
图3D示出了模拟神经网络的输入电平。
图4A示出了采用非易失性存储器阵列来实现“负权重”的一个实施例。
图4B示出了在神经网络中实现负权重的另一个实施例。
图5A示出了根据本发明的双输入神经元电路的一个实施例。
图5B示出了示例性的单端神经元电路。
图6A和图6B示出了根据本发明的3D非易失性神经网络阵列架构和神经元电路布局的实施例。
图7A示出了根据本发明的多层神经网络结构的一个示例性实施例。
图7B示出了根据本发明的多层神经网络结构的另一个实施例。
图7C示出了根据本发明的多层神经网络结构的另一个实施例。
图8示出了神经网络层的俯视图的一个实施例,并图示了如何能够调整每层的神经元数量。
图9A示出了神经网络层的俯视图的另一个示例性实施例,并图示了利用数字信号来执行模拟神经网络的功能。
图9B示出了利用数字信号来执行模拟神经网络操作的阵列的另一个示例性实施例。
图10A示出了采用电阻式随机存取存储器(RRAM)技术或相变存储器(PCM)技术构建的3D神经网络阵列的另一个实施例。
图10B示出了用于图10A中所示的阵列的RRAM或PCM单元的示例性基本单元结构。
图11示出了采用先进的3D非易失性存储器技术构建的神经网络阵列的一个实施例。
图12A示出了依据本发明执行的直接训练操作的一个实施例。
图12B示出了根据本发明的直接训练的另一个实施例。
图13A示出了依据本发明的阵列结构。
图13B示出了根据本发明的适用于直接训练的阵列的另一个实施例。
图14A示出了输入102和源极线105的基本电路的一个实施例。
图14B示出了采用单端比较器110的基本电路的另一个实施例。
图15A示出了根据本发明的神经网络阵列结构的另一个实施例。
图15B示出了图15A中所示的阵列实施例的源极线电路的一个实施例。
图15C示出了采用单端比较器的源极线电路的另一实施例。
图16A示出了采用非易失性存储器阵列的神经网络的另一个实施例。
图16B示出了包含多个块的阵列结构的一个实施例。
图17示出了根据本发明的神经网络阵列结构的另一个实施例。
图18A示出了正向传播期间神经网络阵列层的一个实施例。
图18B示出了反向传播运行期间的神经网络阵列的一个实施例。
图19A示出了根据本发明的神经网络阵列的另一个实施例。
图19B示出了,图示如何可以将源极线连接到输出神经元电路中的比较器的互补输入的一个示例性实施例。
图20示出了根据本发明的3D神经网络阵列的另一个实施例。
图21A示出了根据本发明的神经网络架构的另一个实施例。
图21B示出了如何能够利用图21A中所示的电路来模拟图21B中所示的多层神经网络架构。
具体实施方式
在各种示例性实施例中,提供了用于利用非易失性存储器阵列实现神经网络的方法和装置。本领域的普通技术人员将认识到,以下详细描述仅是说明性的,而并非旨在以任何方式进行限制。受益于本公开的这些技术人员将很容易地被教示到本发明的其他实施例。现在将详细谈及如附图中所示的本发明的示例性实施例的实施方式。在所有附图和以下详细描述中,相同的附图标记(或数字)将用于指代相同或相似的部分。
图1A示出了示例性的神经网络架构100。神经网络架构100包括多个层,诸如层10a至10c。每一层(诸如层10a)包括一个或多个输入神经元(诸如神经元11a至11c)以及多个输出神经元(诸如神经元12a至12d)。每个输入神经元和输出神经元通过突触(诸如突触13a、13b)连接。每一层的输出神经元(诸如神经元12a至12d)是下一层(诸如层10b)的输入神经元。神经网络包括任意数量的层。每一层包括任意数量的神经元。
图1B示出了一个神经网络层(诸如图1A中所示的层10a)的示例性结构。层10a包括输入神经元11a至11c和输出神经元12a至12d。每个输入神经元通过“突触”连接到每个输出神经元。每个突触分别表示一个“权重”(诸如由权重13a至13c示出的W0至W2)。
图1C示出了输出神经元的示例性函数。输出神经元包括求和函数14a和激活函数14b。求和函数14a对从前一层接收的加权输入信号求和。激活函数14b执行类似阈值的功能,以产生非线性输出。
在各种示例性实施例中,构造非易失性存储器阵列以实现神经网络。
图2A示出了采用3D非易失性存储器阵列实现的神经网络层的一个实施例。根据本发明,NAND阵列包括多个字线层101a至101g和漏极选择门108a至108d,它们连接到如图2B中所示的输入神经元电路。根据本发明,NAND阵列还包括连接到输出神经元电路的位线103a至103d。位线103a至103d还连接到垂直串(诸如串106a至106d)。垂直串与字线层的每个交叉点形成存储单元(诸如在字线101a与垂直串106a的交叉点处形成的存储单元107)。阵列还包括源极选择门104和源极线105。
图2B示出了图2A中所示的3D非易失性存储器阵列的示例性等效电路。漏极选择门108a至108m连接到输入信号(IN[0]至IN[m])102a至102m。当输入信号IN[0]至IN[m]是数据1(VDD)时,这种情况会导通漏极选择门108a至108m。当输入信号IN[0]至IN[m]是数据0(0V)时,这种情况会关断漏极选择门108a至108m。输入信号IN[0]至IN[m]来自前一网络层的输出。根据输入的数据,漏极选择门108a至108m中的多个漏极选择门可以被导通,而其他漏极选择门可以被关断。
阵列包含多个字线层(诸如字线层101a至101g)。例如,在先进的3D非易失性技术中,阵列包括128个字线层。一次选择一个字线层。例如,假设选择了字线层101c,将会向其供应读取电压以读取单元107a至107n。该读取电压在导通单元的Vt(电压阈值)和关断单元的Vt之间。同时,向未被选择的字线层供应通过电压,该通过电压高于关断单元的Vt。因此,未被选择的字线层上的单元被导通,而不管它们是导通单元还是关断单元。这允许选择的字线读取选择的单元。
向源极线105供应有固定电压(诸如0V或VDD)。当供应0V时,导通单元将电流从位线103a至103n传递到源极线105,以降低位线电压。如果向源极线105供应VDD,则电流通过导通单元从源极线105流向位线103a至103n,以提高位线电压。为了简单起见,以下实施例将以向源极线供应0V作为示例。
本发明的实施例可以应用于“数字”或“模拟”神经网络。对于数字神经网络,输入是数字信号0(0V)或1(VDD)。当选择的单元是导通单元并且输入数据IN[0]至IN[m]是1(VDD)时,串会传导来自位线的电流。对于模拟神经网络,输入是模拟电压。输入电压越高且单元Vt越低,流过单元的电流就会越大。因此,单元电流表示图1B中所示的突触的“倍增”功能。
在图2B中,每条位线103a至103n连接到表示突触的多个串106a至106m。串106a至106m上的选择的单元107a至107m表示突触的权重。漏极选择门108a至108m的输入IN[0]至IN[m]102a至102m表示输入数据。每条位线103a至103n连接到输出神经元电路(未示出)。
现在参见图4B中所示的输出神经元电路。输出神经元电路包括上拉器件111a至111n和比较器110a至110n。上拉器件111a至111n产生负载电流来上拉每条位线103a至103n的电压。
对于非易失性存储单元,导通单元电流通常仅为一至几微安(uA)。假设每个导通单元传导1uA,那么当有N个单元导通时,电流之和将是N×1uA。这表示图1C中所示的神经网络的“求和”函数14a。当没有串导通或者导通单元电流之和低于上拉器件111a至111n的负载电流时,位线电压会被上拉器件拉高。当导通单元的放电电流之和高于上拉器件的负载电流时,它们会拉低位线电压。位线电压被供应到比较器电路110a至110n的输入端,以产生输出。这表示图1C中所示的神经网络中输出神经元的“阈值”函数14b。
再次参见图2B,根据本发明,3D非易失性存储器阵列实现了具有输入IN[0]至IN[m]、输出BL[0]至BL[n]、突触(单元串106a至106m)和权重(单元107a至107m)的神经网络层。
在图1B中所示的神经网络中,突触可以具有正权重值或负权重值。对于正权重,输入越高,则输出就越高。对于负权重,输入越高,则输出就越低。
阵列的实施例可以用于实现数字或模拟神经网络。对于数字神经网络,输入和输出分别是针对数据1或0的VDD或0V。单元仅具有导通单元或关断单元状态。
图3A示出数字神经网络中单元的Vt分布的一个实施例。电压阈值Vt0、Vt1分别用于导通单元和关断单元Vt分布。向选择的字线供应电压VR1,该电压在Vt0和Vt1之间。因此,电压VR1会导通Vt0单元并关断Vt1单元。向未被选择的字线供应电压VR2,该电压高于Vt1。这样,电压VR2会导通未被选择的单元,而不管它们是导通单元还是关断单元。应当注意的是,由于单元的电流与其(VG-Vt)电压成线性比例,所以在指示符301处示出了导通单元的最小(VG-Vt)电压,并且在指示符302处示出了关断单元的最小(VG-Vt)电压。通常,在指示符302处所示的电压等于或大于在指示符301处所示的电压,以防止未被选择的单元限制选择的单元的电流。
图3B示出模拟神经网络中单元的Vt分布的一个实施例。图3B中所示的分布与图3A中所示的分布类似,除了Vt0的上限从指示符303a延伸到指示符303d之外,如图所示。因为303a至303d中的单元的(VG-Vt)电压低于301,所以具有从303b到303d的Vt值的单元会传导低于303a中的单元的电流。因此,303b至303d中的单元会限制电流并产生“模拟权重”。
例如,假设301和302处指示的电压相等,并且303a中的单元的单元电流是Icell。303b至303d中的单元会分别传导0.75×Icell、0.5×Icell和0.25×Icell,因为它们的(VG-Vt)分别是电压301的75%、50%和25%。低于303a的单元的Vt的电流会被限制在Icell,因为它们的(VG-Vt)高于未被选择的单元的(VG-Vt)电压302,因此电流会被未被选择的单元限制。因此,对于模拟权重,实现了303a至303d中的单元的4个Vt电平。
例如,在一个实施例中,假设VR1和VR2分别为2V和6V。Vt1的范围为3V至4V。未被选择的单元的最小(VG-Vt)电压302是2V。电压范围301应与302相同,为2V。因此,电压303a会是0V。假设303b至303d中的单元传导303a中的单元的75%、50%和25%的电流,则电压303a至303d分别为0V、0.5V、1.0V和1.5V。通过采用此配置,可以确定单元的模拟Vt电平。
图3C示出了模拟神经网络中单元的Vt分布的另一个实施例。在该实施例中,没有Vt1状态。关断单元由高于VR1的单元的Vt表示。该分布提高了未被选择的单元的最小(VG-Vt)电压302,因此它增加了301的电压范围。这允许有更多的针对模拟权重的Vt电平。
例如,在一个实施例中,VR1和VR2分别是2.5V和6V。Vt0分布的上限为3V。未被选择的单元的最小(VG-Vt)电压302是3V。因此,303a至303f的Vt分别为-0.5V、0V、0.5V、1.0V、1.5V以及2.0V。这将模拟Vt电平的数量增加到六个。
图3D示出了模拟神经网络的输入电平。如图3D中所示,可以向漏极选择门的输入供应0V至V1的模拟电压,以将电流从0V传导到最大导通单元,如304a中所示。当输入电压高于V1时,电流受到单元电流的限制,如在304b处所示。因此,通过采用图3B至图3D中所示的配置,可以实现模拟神经网络。
图4A示出了采用非易失性存储器阵列来实现“负权重”的一个实施例。在该实施例中,可以采用2D或3D非易失性存储器阵列来实现阵列。如参见图2B所述,输入信号IN[0]102a至IN[m]102m连接到漏极选择门108a至108d等。输入信号IN[0]至IN[m]来自前一层的输出。
在一个实施例中,如图所示,输出神经元电路109a至109n可以由比较器来实现。位线构造为BL和BLB对。BL[0]103a至BL[n]103n分别连接到比较器109a至109n的正输入。BLB[0]103a’至BLB[n]103n’分别连接到比较器的负输入。器件111a和111b是上拉器件。
当IN[0]102a为VDD时,这种情况会同时导通漏极选择门108a、108b。假设选择了WL[0]101a,如果单元107a是导通单元,则单元107a会被导通并传导来自BL[0]的电流,这会导致OUT[0]变高,因为BL[0]连接到比较器109a的正输入。因此,单元107a表示负权重。
另一方面,如果单元107b是导通单元,则它会传导来自BLB[0]的电流,这将导致OUT[0]变高,因为BLB[0]连接到比较器109a的负输入。因此,单元107b表示正权重。通过采用该阵列,可以实现神经网络的正权重和负权重。
图4B示出了在神经网络中实现负权重的另一个实施例。在该实施例中,输出神经元采用了单端比较器,如在110a至110n处所示。输入成对配置,即:IN和INB,并向它们提供互补数据。对于数字设计,当IN[0]为VDD时,INB[0]为0V。当IN[0]为0V时,INB[0]为VDD。为了说明,图4B仅示出了一个输入对,即:IN[0]、INB[0]。在实际应用中,阵列可以包含多个输入对(诸如IN[0]至IN[m]以及INB[0]至INB[m])。
当IN[0]和INB[0]分别为VDD和0V时,漏极选择门108a会被导通,而108b会被关断。如果单元107a是导通单元,则其会传导来自BL[0]的电流,以使OUT[0]变低。因此,单元107a是负权重。当IN[0]和INB[0]分别为0V和VDD时,漏极选择门108a会被关断,而108b会被导通。如果单元107b是导通单元,则其会传导来自BL[0]的电流,以使OUT[0]变低。因此,单元107b是正权重。
图5A示出了根据本发明的双输入神经元电路的一个实施例。例如,图5A中所示的双输入神经元电路适合用作图4A中所示的电路109a至109n。BL和BLB通过偏置器件502a、502b连接到上拉器件503a、503b。向上拉器件503a和503b供应参考电压VREF,以控制上拉电流。器件503a、503b的上拉电流表示输出神经元的“阈值”函数,如图1C中的阈值函数14b所示。可以通过调节电压VREF来调节电流。
当位线BL中的单元电流的总和高于上拉电流时,SA节点会被拉至低于器件504b的Vt。供应SET脉冲来导通置位器件505b,以拉低OUTB节点并拉高锁存器501的OUT节点。
在反向传播期间,目标数据被供应到SA和SAB节点。供应SET脉冲来导通器件505a、505b,以将数据锁存到数据锁存器501中。然后,供应OE脉冲来导通输出器件506a、506b,以将OUT和OUTB数据分别供应到BL和BLB。向BIAS信号供应VDD或VDD+Vt电平,以导通器件502a、502b,从而将数据完全传递到位线。然后,向选择的字线(未示出)供应高电压(诸如20V),以对单元进行编程。如果向位线供应0V,则会对单元进行编程,以提高其Vt。如果向位线供应VDD,则会禁止对单元进行编程。
电路还包括禁用器件507a、507b。依据本发明,可以自由调整每一层中神经元的数量来配置神经网络。未被选择的神经元可以被器件507a、507b禁用。
应当注意的是,图5A中所示的实施例不是限制性的,并且有许多其他方式来修改和实现神经元电路。例如,在另一个实施例中,神经元电路是从DRAM(Dynamic Random-Access Memory,动态随机存取存储器)或SRAM(Static Random-Access Memory,静态随机存取存储器)中使用的感测放大器电路修改而来的。这些变化和修改应保持在本发明的范围内。
图5B示出了示例性的单端神经元电路。例如,图5B中所示的神经元电路适合用作图4B中所示的电路110a至110n。该实施例与图5A中所示的实施例类似,除了电路仅连接到一条位线之外。该电路的操作类似于图5A中所示的电路。详细操作请参见针对图5A的描述。
图6A和图6B示出了根据本发明的3D非易失性存储器神经网络阵列架构和神经元电路布局的实施例,以表示如图1B和图1C中所示的神经网络的一层。阵列包括连接到输入神经元电路601a的字线层101a至101h和漏极选择门102a至102d。位线103a至103f连接到输出神经元电路601b。在操作期间,如图4A和图4B中所示,输入神经元电路601a向漏极选择门102a至102d供应输入。从多个字线层101a至101h中选择一个字线层,以利用非易失性存储单元来提供权重。输入102a至102d和单元的权重将决定位线103a至103f的电压。位线103a至103f连接到输出神经元电路601b,以产生输出。多个字线层101a至101h可以为不同的应用存储不同的权重,并且每次选择一个层来为所需的应用提供权重。
图6A示出了采用非CUA(阵列下的CMOS)技术实现的阵列的一个示例性实施例。在该技术中,字线层101a至101h位于衬底的顶部,因此,神经元电路不能位于阵列之下。如图所示,神经元电路601a、601b位于阵列的周围。
图6B示出了采用CUA技术的另一个示例性阵列结构。在该技术中,图6B中所示的阵列位于后段工艺(Back-End Of Line,BEOL)层中,而不是衬底中。如图所示,神经元电路601a、601b位于阵列下方,因此可以减小裸片尺寸。
图7A示出了根据本发明的多层神经网络结构的一个示例性实施例。该实施例包括六个图6A和图6B中所示的3D阵列结构,如700a至700f所示。图7A示出了阵列的俯视图,并示出了第一神经网络层700a至第六神经网络层700f。示出了第一阵列结构700a的漏极选择门(诸如702a至702m)和位线(诸如703a至703m)。图7A中未示出字线层(诸如图6A和图6B中所示的101a至101h)。还示出了神经元电路601a至601g,其中神经元电路601a、601b分别是第一阵列结构700a的输入神经元电路。
多层神经网络从外部系统或前一神经网络层接收输入701a至701m。在神经网络的第一层700a中,神经元电路601a将输入供应到第一层700a的漏极选择门702a至702m。选择一个字线层(未示出)来提供权重。位线703a至703n连接到第一层的输出神经元电路601b。在神经网络的第二层700b中,神经元电路601b的输出连接到第二层700b的漏极选择门704a至704n。位线705a至705k连接到输出神经元电路601c。神经网络的其他层(诸如700c至700f)以如上所述类似的方式连接。
结果,输入信号701a至701m从第一层700a通过层700b、700c、700d、700e、700f地传播通过多个神经网络层,然后到达输出神经元601g的输出706a至706p。
应当注意的是,图7A中所示的实施例仅示出了六个神经网络层用于说明。然而,采用该架构,可以实现任意数量的神经网络层。
图7B示出了根据本发明的多层神经网络结构的另一个实施例。示出了神经网络层700a至700d。每一层包括图6A和图6B中所示的3D阵列结构。该实施例与图7A中所示的实施例类似,除了第四(最后)层700d的输出被反馈到第一层700a之外。神经元电路601e的输出连接到第一层的漏极选择门702a至702m。这就形成了一个闭环神经网络。当信号从第一层700a传播到第四(最后)层700d时,输入神经元电路601a被禁用,以允许漏极选择门702a至702m由神经元电路601e驱动,而不是由601a驱动。因此,来自最后一层700d的输出成为第一层700a的输入。该操作称为一个循环。
在第二循环中,选择每个神经网络层700a至700d的第二字线层,以选择第二组单元(权重)。然后,来自第四层700d的输出信号可以再次从第一层700a传播到第四层700d。这相当于将输出传播通过第五层到达第八层。然后,可以将来自最后一层700d的输出反馈到第一层700a,以开始第三循环。选择阵列700a至700d的第三字线层来选择第三组单元(权重),并且信号再次从层700a传播至700d。这相当于将输出传播通过第九层到达第十二层。该过程可以根据需要重复多个循环。通过仅采用四个阵列结构700a至700d,该实施例允许神经网络具有任意数量的层。每个循环相当于四个神经网络层。假设信号传播重复N个循环,则神经网络层的总数等于4×N层。
图7C示出了根据本发明的多层神经网络结构的另一个实施例。该实施例与图7A中所示的实施例类似,除了增加了附加的“反馈”神经元电路602a、602b之外。
在反向传播期间,通过导通反馈神经元电路602b并关断神经元电路601c,反馈神经元电路602b允许将层700f的输出反馈到层700c。通过导通反馈神经元电路602a并关断神经元电路601a,反馈神经元电路602a允许将层700d的输出反馈到层700a。通过采用该过程,每个神经元层可以从一层的输出反馈到前一层,以在反向传播期间更新突触的权重(对单元进行编程)。
图8示出了神经网络层的俯视图的一个实施例,并示出了如何能够调整每一层的神经元数量。阵列层包括输入神经元电路601a和输出神经元电路601b。阵列层还包括漏极选择门102a至102p和位线103a至103p。阵列层可以包含连接到输入神经元电路的大量漏极选择门以及连接到输出神经元电路的大量位线。在实际应用中,阵列层可以仅利用较少数量的输入神经元和输出神经元。图8中所示的实施例图示了调整每层的输入神经元和输出神经元的数量的方法。
假设应用只需要输入801a至801f。801A至801f的神经元电路被启用并向801a至801f发送输入。未被选择的输入801g至801p的神经元电路被禁用,并且向801g至801p供应0伏。该电压电平会关断漏极选择门102g至102p。参见图5A和图5B中所示的神经元电路的实施例,可以导通禁用器件507a、507b,以向未被选择的输入供应0V。
在输出神经元电路601b中,假设应用仅需要输出802a至802i,则启用802a至802i的神经元电路。未被选择的输出802j至802p的神经元电路被禁用,并向802j至802p供应0V。这会关断连接到下一层中的802j至802p的漏极选择门。因此,选择单元组803a来执行突触功能。
类似地,当启用用于输入801j至801p和输出802a至802f的神经元电路并且禁用其他输入和输出时,选择单元组803b来执行突触功能。通过采用图8中所示的过程,可以自由地调整每层的输入和输出神经元的数量。
图9A示出了神经网络层的俯视图的另一个示例性实施例,并图示了利用数字信号来执行模拟神经网络的功能。网络层包括输入神经元电路601a和输出神经元电路601b。网络层还包括漏极选择门102a至102p和位线103a至103p。第一输入801a连接到漏极选择门101a。第二输入801b连接到两个漏极选择门102b、102c。第三选择门801c连接到四个漏极选择门102d至102g。通过采用该配置,输入801a至801c会分别导通1、2和4个单元,以表示2N个数据,其中N是0、1和2。采用该过程,输入801a至801c可以表示3位数据,以选择0至7个单元。可以采用类似的方法来连接输入,以实现任意位数。
在反向传播期间,会同时对由输入选择的2N个单元进行编程,以调整它们的Vt(权重)。例如,输入801c会导通漏极选择门102d至102g,以一起对四个选择的单元进行编程。
图9B示出了利用数字信号来执行模拟神经网络操作的阵列的另一个示例性实施例。该实施例与图9A中所示的实施例类似,除了在位线中实现2N个数据之外。输出103a至103c连接到1、2和4条位线。在该配置中,选择的输入会分别导通位线103a至103c上的1、2或4个单元,以表示2N个数据,其中N为0、1和2。这样,输出103a至103c可以表示0至7个单元的3位数据。可以采用类似的方法来设置输入,以获得任意位数的输出。
图10A示出了采用电阻式随机存取存储器(Resistive Ramdom-Access Memory,RRAM)技术或相变存储器(Phase-Change Memory,PCM)技术构建的3D神经网络阵列的另一个实施例。该阵列架构与图2B中所示的阵列架构类似,除了单元107a至107n由RRAM单元或PCM单元120a至120n代替之外。
图10B示出了用于图10A中所示阵列的RRAM或PCM单元的示例性基本单元结构。在一个实施例中,该单元包含电阻式存储器层121和选择器122。
对于采用RRAM的图10A中所示的阵列,字线101a至101g和位线103a至103n由金属形成,诸如钛(Ti)、钽(Ta)、铂(Pt)、钨(W)、铜(Cu)、铬(Cr)、钌(Ru)、铝(al)、镍(Ni)、镨(Pr)、银(Ag)、硅(Si)以及许多其他合适的金属。图10B中所示的电阻式存储器层121由金属氧化物形成,诸如HfOx、TiOx、TaOx、AlOx、NiOx、WOx、ZrOx、NbOx、CuOx、CrOx、MnOx、MoOx、SiOx以及许多其他合适的金属氧化物材料。图10B中所示的选择器122包括硅P-N二极管、肖特基二极管、隧穿电介质层或特殊的金属氧化物层,诸如TiOx、TaOx、NbOx、ZrOx、NbON、VCrOx等。
对于采用PCM的图10A中所示的阵列,电阻式存储器层121包括相变材料层和加热器层。相变材料可以是硫族化物、Ge2Sb2Te5(GST)、GeTe-Sb2Te3、Al50Sb50等。加热器的材料可以是氮化钛(TiN)、多晶硅等。选择器层122采用与RRAM实施方式中采用的材料相同的材料。
再次参见图10A,阵列包括多个字线层101a至101g、漏极选择门108a至108m以及位线103a至103n。向漏极选择门108a至108m供应来自前一层的输出的输入IN[0]至IN[m]102a至102m。位线103a至103n连接到输出神经元电路。该阵列没有源极选择门104和源极线105。
例如,图10A中所示的实施例的操作与图2B中所示的实施例类似,除了选择的导通单元的电流在串106a至106m与选择的字线层101g之间流动之外。导通单元电流的方向取决于选择器122的方向。参见图2B,提供了这些操作的详细描述。
此外,类似于非易失性存储单元地,RRAM和PCM单元具有数字电流(开/关状态)来实现数字神经网络,或者具有多电平电流来实现模拟神经网络。
图11示出了采用先进的3D非易失性存储器技术构建的神经网络阵列的一个实施例。该阵列包括128个字线层1101a至1101m。每个字线层包括64K个漏极选择门、64K个位线以及4G个单元作为突触。128个字线层总共包含512G个突触。通过采用CUA技术,该阵列包括在阵列下的512K个神经元电路1102。该阵列可以构造成32个神经网络1103a至1103n。每个神经网络包含16个层,并且每一层包含1K个神经元。
在根据本发明的一个实施例中,可以通过采用称为“直接学习”的独特操作来训练图11中所示的神经网络阵列。神经网络的传统训练采用反向传播来计算每个神经元的输出和目标之间的误差,然后基于该误差来调整每个突触的权重。这需要非常复杂的计算和非常长的训练时间。相比之下,直接训练直接将目标应用于神经元,以调整突触的权重。这免除了计算并显著减少了训练时间。
图12A示出了依据本发明执行的直接训练操作的一个实施例。该实施例采用双端比较器109作为神经元电路。在训练期间,假设输出端子(OUT)的目标是1(VDD)或较高的模拟电压。程序电路112分别向BL 103a和BLB 103a’供应0V和VDD。向源极选择门(SSG)信号供应0V,以关断源极选择门104a、104b。向选择的字线101a、101b供应编程高电压,诸如20V。向未被选择的字线供应禁止电压,诸如10V。
假设输入IN[0]是1(VDD)或较高的模拟电压,则会导通漏极选择门108a、108b。这会将0V从BL 103a传递到单元107a的沟道。单元107a会被字线101a和沟道之间的高电场编程,以提高该单元的Vt。同时,因为BLB 103a’是VDD,所以漏极选择门108b被关断,并且单元107b的沟道会被字线101a升压到大约8V。这减小了字线101a和单元107b的沟道之间的电场,从而禁止对单元107b进行编程。
结果,提高了单元107a的Vt。这会在正向传播期间减少单元107a的下拉电流。因此,输出(OUT)会变得更高。
相反,如果输出的目标是0(0V)或较低的模拟电压,则程序电路112会向BL 103a供应VDD并向BLB 103a’供应0V。这会导致单元107b被编程而提高其Vt,而单元107a会被禁止编程。因此,在正向传播期间,单元107b的下拉电流会减小,并且输出(OUT)会变得更低。
请注意,编程操作会应用于由高输入选择的单元。如果输入为0(0V)或低于漏极选择门108a至108d的Vt的模拟电压,则会关断漏极选择门,并且会禁止对单元进行编程。这意味着那些具有高输入而产生更高误差的单元会被调整。这与传统反向传播的最陡下降算法的概念相匹配。
请注意,供应到选择的字线的编程高电压可以是短脉冲,诸如10us至20us。这会少量地调整单元的Vt,以防止过度调整。编程脉冲可以重复许多次。在每次编程脉冲之后,可以应用正向传播来检查训练结果。稍后将参照图14A描述关于该操作的细节。
图12B示出了根据本发明的直接学习的另一个实施例。该实施例采用单端比较器110作为神经元电路。假设输入(IN[0])为1(VDD)或较高的模拟电压。其互补输入(INB[0])将为0(0V)或较低的模拟电压。假设输出(OUT)的目标是1(VDD)或较高的模拟电压。程序电路112会向BL 103a供应0V。这会对单元107a进行编程来提高单元的Vt,从而输出(OUT)会在正向传播期间变得更高。
如果输出(OUT)的目标是0(0V)或较低的模拟电压,则程序电路112会向BL 103a供应VDD。这会禁止对单元107a进行编程,因此该单元的下拉电流将不会减小。
请注意,虽然参考图12A和图12B所述的直接学习操作可以利用输出的目标来成功地调整单元的Vt,但是输出的目标仅对最后一层的输出神经元可用。前几层神经元的目标不可用。为了依据本发明来解决这个问题,可以采用图13A和图13B中所示的阵列结构。
图13A示出了依据本发明的阵列结构。将阵列的源极线分成SL[0]至SL[m],如105a至105m所示。源极线105a至105m在与输入信号IN[0]至IN[m]102a至102m相同的方向上延伸。在反向传播期间,向字线提供与正向传播期间相同的读取条件。向选择的字线(诸如101c)供应读取电压。向未被选择的字线供应通过电压,以导通未被选择的单元。向源极选择门104供应VDD,以导通源极选择门。
由图12A和图12B中所示的程序电路112向BL[0]至BL[n]供应目标电压。如图12A和图12B中所示,位线数据与目标相反。当输出的目标是1(VDD)或0(0V)时,位线电压分别是0V或VDD。
再次参见图13A,当位线电压被供应到BL[0]至BL[n]时,电流会从BL[0]至BL[n]流经选择的单元(诸如107a至107n),然后流到源极线SL[0]105a,如虚线140a、140n所示。SL[0]105a的电压会用作目标或者用来产生IN[0]102a的目标。
例如,如果BL[0]的目标是0,则会向BL[0]供应VDD,VDD会被传递给SL[0]以拉高SL[0]。因此,IN[0]的目标变得更高。这会导致单元107a在正向传播期间传导更高的下拉电流,因此输出会变得更低。相比之下,如果BL[0]的目标为1,则会向BL[0]供应0V,0V会被传递到SL[0]以拉低SL[0]。因此,IN[0]的目标变得更低。这会导致单元107a在正向传播期间传导更低的下拉电流,因此输出会变得更高。
SL[0]的电压由BL[0]至BL[n]和IN[0]的电压以及单元107a至107n的导电率确定。参见图1B中所示的神经网络架构,这类似于输入11a的目标由输出12a至12d以及输入11a和输出12a至12b之间的突触确定。IN[0]表示输入11a,BL[0]至BL[n]表示输出12a至12d,并且单元107a至107n表示突触。因此,图13A中所示的阵列结构可以执行如图1B和图1C中所示的神经网络层的功能。
在图13A中,BL[0]至BL[n]的电压也会被传递到其他源极线(诸如SL[m]105m),如虚线141a至141n所示。结果,所有输入(IN[0]至IN[m])的目标都是通过采用该配置来确定的。因为该层的输入是前一层的输出,所以可以将相同的措施应用于每一层,以找到前一层的目标。然后,可以采用参考图12A和图12B所述的操作,将每一层的目标应用于对单元进行编程,以调整权重。
图13B示出了根据本发明的适用于直接学习的阵列的另一个实施例。在该阵列结构中,单元串被折叠,因此源极线SL[0]至SL[m]位于阵列的顶部,如在105a至105m处所示。该阵列的操作与图13A中所示的操作类似。为了简单起见,详细的操作将不再累述,然而,参考图13A提供了操作的详细描述。
图14A示出了输入102和源极线105的基本电路的一个实施例。在正向传播期间,前一层的输出存储在数据锁存器112中。数据锁存器112会将数据发送到输入102。程序电路142会向源极线105供应0V。分别向选择的字线和未被选择的字线供应读取电压和通过电压。向SSG供应VDD,以导通源极选择门。这会为下一层产生BL[0]至BL[n]。
在反向传播期间,程序电路142会使源极线105浮动。字线、SSG和IN的偏置条件保持与正向传播相同。向BL[0]至BL[n]供应目标电压。这会导致电流通过串而流到源极线105。程序电路142会利用源极线电压来产生前一层的BL’103a’和BLB’103n’的目标电压。
图14B示出了采用单端比较器110的基本电路的另一个实施例。在正向传播期间,锁存器112的互补输出IN、INB被供应到漏极选择门102a、102b。从程序电路142向源极线105供应0V或VDD。因此,电流可以通过选择的单元从位线103a至103n流到源极线105或者从源极线105流到位线103a至103n。
在反向传播期间,目标被供应到位线103a至103n,并通过选择的单元传递到源极线105。比较器110被禁用。先前的输入数据存储在数据锁存器112中,以分别将IN和INB供应到102a和102b。105的电压被馈入程序电路142,以产生前一层的位线103a’的目标。
在编程操作期间,对于每一层,数据锁存器112会发送输入102,并且程序电路142会向BL’和BLB’发送目标电压,以一起对所有层中的单元进行编程。神经网络的训练应通过在一次中少量地改变权重来完成。因此,编程脉冲不应太长而对单元进行过度编程。例如,示例性编程脉冲可以为1us至10us,以仅将单元的Vt改变0.1V。
上述从正向传播、反向传播到对单元进行编程的过程被称为“迭代”。单元的Vt(表示突触的权重)在每次迭代中都会更新。在更新了权重之后,下一次迭代会采用新的权重来执行正向传播以生成每个神经元的新输入,并且执行反向传播以生成每个神经元的新目标,然后再次更新权重。重复该过程来逐渐改变单元的Vt,直到输入等于目标。
输入和目标的集合被称为“训练样本”。应采用大量的训练样本来重复训练过程。例如,为了训练神经网络来识别手写字符,可以采用几十到几百个手写字符图像作为训练样本。训练样本可以备选地应用于每次迭代的训练过程。
图15A示出了根据本发明的神经网络阵列结构的另一个实施例。该实施例与图13A中所示的实施例类似,除了输入IN[0]至IN[m]被供应到源极线105a至105m之外。漏极选择门108a至108m连接到漏极选择门(DSG)信号DSG[0]102a至DSG[m]102m。在操作期间,向DSG[0]102a至DSG[m]102m供应VDD来导通漏极选择门108a至108m,以允许输入IN[0]至IN[m]从源极线105a至105m通过单元到达位线BL[0]至BL[n]。类似地,该实施例可以在图13B中所示的折叠阵列结构中实现。
图15B示出了图15A中所示阵列实施例的源极线电路的一个实施例。数据锁存器112和程序电路142的操作与参考图14A所述的操作类似,除了输入是从源极线105而不是从漏极选择门供应的之外。详细的操作将不再累述,但是可以参考图14A来找到。
图15C示出了采用单端比较器110的源极线电路的另一个实施例。在正向传播期间,互补输入IN、INB由数据锁存器112供应到源极线105a和105b,并通过选择的单元传递到位线103a至103n。程序电路142被禁用。在反向传播期间,目标被供应到位线103a至103n,并通过选择的单元传递到源极线105a至105b。数据锁存器112被禁用。105a和105b的电压被馈送到程序电路142中,以产生前一层的位线103a’的目标。
图16A示出了采用非易失性存储器阵列的神经网络的另一个实施例。在该实施例中,输入IN[0]至IN[k]被供应到字线层101a至101k。在操作期间,仅选择一个字线层。向选择的层供应输入数据或电压。向所有未被选择的层供应通过电压,以导通未被选择的单元。选择漏极选择门DSG[0]至DSG[m]102a至102m中的一个漏极选择门。分别向选择的漏极选择门和未被选择的漏极选择门供应VDD和0V。例如,假设选择了DSG[m]102m和IN[0]101a,那么这将会选择单元107a至107n来执行一个任务。当选择其他漏极选择门和输入层时,将会选择其他单元。这允许阵列被构造为选择不同的单元来执行许多神经网络任务。
图16A中所示的阵列被称为“块”。该阵列的优点是,每个块只需要一个神经元电路。神经元电路可以通过解码器或选择门连接到选择的输入层。这允许神经元电路位于阵列下方,如图6B中所示。
图16B示出了包含多个块100a至100p的阵列结构的一个实施例。在每个块中,选择一个输入层和一个漏极选择门。请注意,在该实施例中,可以将目标供应到BL[0]103a至BL[n]103n,以经过选择的漏极选择门和选择的单元到达SL[0]105a至S[p]105p,从而产生输入的目标。
图17示出了根据本发明的神经网络阵列结构的另一个实施例。在该实施例中,输入被供应到源极线105。选择漏极选择门信号DSG[0]102a至DSG[m]102m中的一个漏极选择门信号,并向其供应VDD,以导通选择的漏极选择门108a至108m。选择字线101a至101k中的一条字线,并向其供应读取电压(诸如图3A至图3C中所示的VR1),以读取选择的单元。向其他未被选择的字线供应通过电压(诸如图3A至图3C所示的VR2),以导通未被选择的单元。例如,假设选择了漏极选择门102m和字线101a,则将会选择单元107a至107n。输入105的电压将会通过单元107a至107b传递到位线103a至103n。例如,如果输入105是VDD,则其将会上拉位线103a至103n。如果输入105是0V,则其将会下拉位线103a至103n。上拉或下拉电流取决于单元的Vt。较低的单元Vt会导致较高的上拉或下拉电流。因此,单元的Vt表示突触的权重函数。
图18A示出了正向传播期间神经网络阵列层的一个实施例。如图17中所示,该阵列包括多个阵列结构100a至100p。向阵列结构100a至100p的源极线105a至105p供应输入IN[0]至IN[p]。漏极选择门信号102a至102m和漏极选择门信号102a’至102m’分别连接到相同的信号DSG[0]至DSG[m]。字线101a至101k和字线101a’至101k’分别连接到相同的信号WL[0]至WL[k]。
假设选择了漏极选择门信号102a、102’以及字线107c、107c’,则输入105a至105p的电压将会经过选择的单元(诸如131a至131p)到达位线103a至103n,如虚线130a至130d所示。
图18B示出了反向传播运行期间的神经网络阵列的一个实施例。向位线103a至103n供应目标电压,这些目标电压将会通过选择的单元(诸如131a至131p)被传递到输入105a至105p,如虚线132a至132d所示。然后,可以通过采用图15A中所示的实施例来确定每个输入的目标。
图19A示出了根据本发明的神经网络阵列的另一个实施例。在该实施例中,输入IN[0]至IN[n]被供应到位线103a至103n。漏极选择门信号102a至102m和漏极选择门信号102a’至102m’分别连接到相同的信号DSG[0]至DSG[m]。字线101a至101k和字线101a’至101k’分别连接到相同的信号WL[0]至WL[k]。
例如,在块100a中,假设选择了漏极选择门信号102a,则将会向其供应VDD来导通漏极选择门,以允许电流132b至132d从位线103a至103n流到单元串。假设选择了字线101c,则将会向该字线供应读取电压(诸如图3A至图3C中所示的VR1)到达选择的单元131a至131n。向其他未被选择的字线供应通过电压(诸如图3A至图3C中所示的VR2),以导通未被选择的单元。向源极选择门104a供应VDD来导通源极选择门,以允许电流132b至132d流到源极线105a。源极线105a至105p连接到输出OUT[0]至OUT[p]。
在该实施例中,在反向传播期间,可以将目标供应到源极线105a至105p。这将会使电流经过选择的单元132b至132d和132a至132c到达位线103a至103n,以产生输入的目标。
图19B示出了图示如何可以将图19A中所示的源极线105a至105p连接到输出神经元电路中的比较器的互补输入OUT、OUTB的一个示例性实施例。因此,存储单元131a至131c表示具有正权重的突触,而存储单元131b至131d表示具有负权重的突触。
图20示出了根据本发明的3D神经网络阵列的另一个实施例。在该实施例中,突触由电阻式存储单元实现,诸如在电阻式随机存取存储器(RRAM)或相变存储器(PCM)中采用的存储单元。
漏极选择门信号102a至102m和漏极选择门信号102a’至102m’分别连接到相同的信号DSG[0]至DSG[m]。在正向传播期间,假设选择了漏极选择门102a、102a’。向信号DSG[0]供应VDD,以导通漏极选择门。输入IN[0]至IN[p]被供应到选择的字线101a、101a’。这使得电流从字线101a、101a’经过选择的单元131a、131b、131c、131d到达位线103a至103n。如图4A和图4B中所示,位线103a至103b连接到输出神经元电路。
向未被选择的字线(诸如101b至101k和101b’至101k’)供应低电压,诸如0V。因为存储单元131a至131d包含选择器(诸如二极管),所以电压将使未被选择的字线上的存储单元偏置到“关断”状态。因此,未被选择的字线和位线之间没有电流流动。
在反向传播期间,目标被供应到位线103a至103n。这将使电流经过选择的单元131a至131d到达字线101a、101a’,以产生输入的目标。类似地,向未被选择的字线101b至101k和101b’至101k’供应未被选择的电压,以关断未被选择的字线上的存储单元。
图21A示出了根据本发明的神经网络架构的另一个实施例。与图7A至图7C中所示的多层神经网络架构不同,在该实施例中,该架构可以仅采用一个突触阵列201。采用图13A至图20的先前实施例中所示的3D阵列来实现该突触阵列。
图21A中所示的阵列还包括输入神经元电路202和输出神经元电路203。在正向传播期间,例如在T1时刻,输入神经元电路202将第一层的输入馈送到突触阵列201,并且选择第一层的突触以通过输出神经元电路203生成第一层的输出。可以将输出反馈到输入神经元电路202(如在204处所示),以成为第二层的输入。
在T2时刻,输入神经元电路202将第二层的输入馈送到突触阵列201,并选择第二层的突触来从输出神经元电路203生成第二层的输出。输出被反馈到输入神经元电路202(如204所示),成为第三层的输入。可以重复该过程,直到处理完所有所需数量的层。通过采用该过程,神经网络可以包含任意数量的层。这为构建神经网络架构提供了高度的灵活性。
在先前段落中所述的过程中,每一层的输入和输出的数量可以不同。这可以通过针对每层的操作在输入神经元电路202和输出神经元电路203中选择不同数量的输入和输出来实现。例如,假设输入神经元电路202和输出神经元电路203各自具有1000个神经元,则当处理每层的操作时,可以从1至1000中选择神经元数量。通过采用该过程,可以灵活地设计每层中神经元的数量。因此,实现了高度灵活的多层神经网络架构。
图21B示出了如何利用图21A中所示的电路来模拟图21B中所示的多层神经网络架构。假设神经网络在第一至第四神经元层中分别具有N1、N2、N3和N4个神经元。在T1时刻,输入神经元电路202会将N1数量的输入馈送到突触阵列,并选择第一层的突触205a以生成N2数量的输出。N2数量的输出被反馈到输入神经元电路202,以成为第二层的输入。
在T2时刻,输入神经元电路202可以将N2数量的输入馈送到突触阵列,并选择第二层的突触205b以生成N3数量的输出。N3数量的输出被反馈到输入神经元电路202,成为第三层的输入。
在T3时刻,输入神经元电路202将N3数量的输入馈送到突触阵列,并选择第三层的突触205c以生成N4数量的输出。N4数量的输出被反馈到输入神经元电路202,成为第四层的输入。可以重复该过程,直到处理完所有层。通过采用该过程,实现了图21B中所示的神经网络架构。
尽管已经示出和描述了本发明的示例性实施例,但是对于本领域的普通技术人员来说显而易见的是,基于本文中的教导在不脱离示例性实施例及其更广泛的方面的情况下可以进行改变和修改。因此,所附权利要求书旨在将所有这些变化和修改包含在本发明的示例性实施例的真实精神和范围内。
Claims (14)
1.一种神经网络阵列,包括:
多个串,每个串具有漏极选择门晶体管,所述漏极选择门晶体管连接到串联的多个非易失性存储单元,并且其中,每个非易失性存储单元用作突触;
多个输出节点,每个输出节点连接以从所述漏极选择门的多个漏极端子接收输出信号;
多个输入节点,每个输入节点连接以向所述漏极选择门的多个门端子提供输入信号;以及
多个权重选择信号,分别连接到每个串中的所述多个存储单元,并且其中,每个权重选择信号向选择的非易失性存储单元提供选择的电压,以使所述选择的非易失性存储单元根据所述选择的非易失性存储单元的选择的特性来传导电流。
2.根据权利要求1所述的神经网络阵列,其中,所述选择的特性是所述选择的非易失性存储单元的电压阈值(Vt)。
3.根据权利要求1所述的神经网络阵列,其中,所述输出节点连接到比较器电路的正输入和负输入,以实现正突触权重和负突触权重。
4.根据权利要求1所述的神经网络阵列,其中,所述输入节点接收所述输入信号和互补输入信号,以实现正突触权重和负突触权重。
5.根据权利要求1所述的神经网络阵列,其中,每个非易失性存储单元是3D电阻式存储单元。
6.根据权利要求5所述的神经网络阵列,其中,所述选择的特性是所述选择的非易失性存储单元的电阻值。
7.根据权利要求5所述的神经网络阵列,其中,每个3D电阻式存储单元包括电阻式随机存取存储器(RRAM)器件。
8.根据权利要求5所述的神经网络阵列,其中,每个3D电阻式存储单元包括相变存储器(PCM)器件。
9.根据权利要求5所述的神经网络阵列,其中,每个3D电阻式存储单元包括阈值器件。
10.根据权利要求9所述的神经网络阵列,其中,所述阈值器件包括二极管。
11.根据权利要求1所述的神经网络阵列,其中,所述神经网络阵列构造为三维(3D)存储器阵列。
12.根据权利要求1的神经网络阵列,其中,多个所述神经网络阵列连接在一起以形成多层神经网络,并且其中,一个神经网络层的输出节点连接到另一个神经网络层的输入节点。
13.根据权利要求12所述的神经网络阵列,其中,最后一个神经网络层的输出节点以反馈配置形式连接到第一个神经网络层的输入节点,以形成闭环神经网络。
14.根据权利要求12所述的神经网络阵列,其中,任意第一选择的神经网络层的输出节点以反馈配置形式选择性地连接到任意第二选择的神经网络层的输入节点,以形成闭环神经网络。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063118600P | 2020-11-25 | 2020-11-25 | |
US63/118,600 | 2020-11-25 | ||
PCT/US2021/060862 WO2022115633A1 (en) | 2020-11-25 | 2021-11-24 | Methods and apparatus for neural network arrays |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116710931A true CN116710931A (zh) | 2023-09-05 |
Family
ID=81657203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180091010.9A Pending CN116710931A (zh) | 2020-11-25 | 2021-11-24 | 用于神经网络阵列的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220164638A1 (zh) |
CN (1) | CN116710931A (zh) |
WO (1) | WO2022115633A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018069785A1 (en) * | 2016-10-12 | 2018-04-19 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and system using the same |
US20200298005A1 (en) * | 2017-05-26 | 2020-09-24 | Newton Howard | Brain-machine interface (bmi) |
US11361215B2 (en) * | 2017-11-29 | 2022-06-14 | Anaflash Inc. | Neural network circuits having non-volatile synapse arrays |
US10522226B2 (en) * | 2018-05-01 | 2019-12-31 | Silicon Storage Technology, Inc. | Method and apparatus for high voltage generation for analog neural memory in deep learning artificial neural network |
US11170290B2 (en) * | 2019-03-28 | 2021-11-09 | Sandisk Technologies Llc | Realization of neural networks with ternary inputs and binary weights in NAND memory arrays |
US10740165B2 (en) * | 2018-12-03 | 2020-08-11 | Western Digital Technologies, Inc. | Extending the error correction capability of a device using a neural network |
US10885963B2 (en) * | 2018-12-14 | 2021-01-05 | Intel Corporation | Ferroelectric memory-based synapses |
-
2021
- 2021-11-24 WO PCT/US2021/060862 patent/WO2022115633A1/en active Application Filing
- 2021-11-24 US US17/535,510 patent/US20220164638A1/en active Pending
- 2021-11-24 CN CN202180091010.9A patent/CN116710931A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022115633A1 (en) | 2022-06-02 |
US20220164638A1 (en) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6858870B2 (ja) | 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路 | |
CN110825345B (zh) | 使用非易失性存储器单元的乘法 | |
TWI699767B (zh) | 用於寫入至電阻式隨機存取記憶體單元陣列及從電阻式隨機存取記憶體單元陣列讀取之電路系統 | |
US9466362B2 (en) | Resistive cross-point architecture for robust data representation with arbitrary precision | |
CN111722830A (zh) | 快闪存储器的非易失性计算方法 | |
US20220083836A1 (en) | Configurable Three-Dimensional Neural Network Array | |
US20200167638A1 (en) | Circuit neuronal apte à mettre en oeuvre un apprentissage synaptique | |
CN110729011B (zh) | 用于类神经网路的存储器内运算装置 | |
CN113517014A (zh) | 神经形态装置及其操作方法 | |
US10424378B2 (en) | Memristive control circuits with current control components | |
US20180174030A1 (en) | Self-learning for neural network arrays | |
KR20210151737A (ko) | 신경망을 위한 시냅스 스트링 및 시냅스 스트링 어레이 | |
CN113554160A (zh) | 神经形态计算设备及其操作方法 | |
CN116710931A (zh) | 用于神经网络阵列的方法和装置 | |
WO2023112674A1 (ja) | 人工知能処理装置および人工知能処理装置の学習推論方法 | |
US11380391B2 (en) | Neural network memory with mechanism to change synaptic weight | |
US20220147796A1 (en) | Circuit and method for spike time dependent plasticity | |
US11587612B2 (en) | Neural network memory with an array of variable resistance memory cells | |
Lin et al. | A test method for finding boundary currents of 1T1R memristor memories | |
WO2023171683A1 (ja) | ニューラルネットワーク演算回路 | |
EP4174724B1 (en) | Synapse circuit for variational inference | |
KR102419201B1 (ko) | 멀티 비트 특성을 갖는 뉴로모픽 시냅스 소자 및 이의 동작 방법 | |
US20200134438A1 (en) | Dynamic range and linearity of resistive elements for analog computing | |
CN116935929A (zh) | 互补式存储电路及存储器 | |
CN117391161A (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 |