会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 人工智能 / 人工神经网络 / 人工神经网络

人工神经网络

阅读:436发布:2020-05-12

IPRDB可以提供人工神经网络专利检索,专利查询,专利分析的服务。并且一种人工神经网络。广义地说,本技术的实施例提供了可重新配置的基于硬件的人工神经网络,其中经由在神经网络外部执行的训练来获得人工神经网络的每个神经网络节点的权重。,下面是人工神经网络专利的具体信息内容。

1.一种用于实现可重新配置的人工神经网络的装置,该装置包括:交叉点阵列,包括:

至少一条行信号线和至少一条列信号线;

至少一个神经网络节点,其中每个神经网络节点设置在行信号线和列信号线的交叉点处,并且其中每个神经网络节点具有相关联的权重;以及多个可编程的非易失性存储器元件,设置在每个神经网络节点处,以存储相关联的权重,其中每个非易失性存储器元件在第一阻抗状态和第二阻抗状态之间可切换;

通信模块,被配置为接收指定交叉点阵列的每个神经网络节点的权重的数据;以及控制电路系统,被配置为将设置在每个神经网络节点处的所述多个非易失性存储器元件中的每一个非易失性存储器元件切换到第一阻抗状态或第二阻抗状态,以在神经网络节点处实现权重。

2.如权利要求1所述的装置,其中被配置为接收指定每个神经网络节点的权重的数据的通信模块被配置为:获得指定每个神经网络节点的权重的至少一个数据分组;以及从数据分组中提取每个神经网络节点的权重;以及

其中控制电路系统被配置为:

使用每个神经网络节点的权重,确定每个神经网络节点处的每个非易失性存储器元件要切换到第一阻抗状态还是第二阻抗状态;以及响应于该确定,生成用于每个非易失性存储器元件的编程信号。

3.如权利要求2所述的装置,其中控制电路系统包括写入电路系统,该写入电路系统被配置为:接收为每个非易失性存储器元件生成的编程信号;以及取决于生成的编程信号,驱动每个非易失性存储器元件。

4.如权利要求1至3中任一项所述的装置,其中交叉点阵列还包括:至少一个输入端子,以接收用于交叉点阵列的输入信号;以及至少一个输出端子,以提供通过使输入信号通过交叉点阵列的至少一个神经网络节点而生成的输出信号。

5.如权利要求4所述的装置,其中神经网络节点接收输入信号,将神经网络节点的相关联的权重与输入信号相乘,并输出加权信号。

6.如权利要求1至3中任一项所述的装置,其中交叉点阵列包括:多条行信号线和多条列信号线;

多个神经网络节点,其中每个神经网络节点设置在行信号线和列信号线的交叉点处,并且其中每个神经网络节点具有相关联的权重;以及多个可编程的非易失性存储器元件,设置在每个神经网络节点处,其中每个非易失性存储器元件在第一阻抗状态和第二阻抗状态之间可切换。

7.如权利要求6所述的装置,其中交叉点阵列还包括:多个输入端子,每个输入端子被配置为接收交叉点阵列的输入信号;以及至少一个输出端子,以提供通过使输入信号通过交叉点阵列的神经网络节点而生成的输出信号。

8.如权利要求7所述的装置,其中交叉点阵列包括多个输出端子,每个输出端子提供输出信号。

9.如权利要求7或8所述的装置,其中每个神经网络节点接收两个或更多个输入信号,将相关联的权重与每个输入信号相乘以生成加权的信号,并输出表示求和的加权信号的求和信号。

10.如权利要求9所述的装置,其中所述至少一个输出端子被配置为从所述多个神经网络节点中的一个或多个神经网络节点接收求和信号,并且组合该求和信号以提供输出信号。

11.如权利要求3至10中任一项所述的装置,其中每个神经网络节点包括交叉点阵列模块,并且设置在每个神经网络节点处的所述多个可编程的非易失性存储器元件布置在该交叉点阵列模块中。

12.如权利要求11所述的装置,其中每个神经网络节点的交叉点阵列模块包括由N条行信号线和M条列信号线形成的阵列,其中在N条行信号线和M条列信号线的每个交叉点处设置所述多个非易失性存储器元件中的一个非易失性存储器元件。

13.如权利要求12所述的装置,其中每个交叉点阵列模块包括:从神经网络节点输入到神经网络节点输出的直接路径;以及从神经网络节点输入到神经网络节点输出的至少一条间接路径。

14.如权利要求13所述的装置,其中交叉点阵列模块对阻抗值的线性标度进行数字编码。

15.如权利要求13或14所述的装置,其中神经网络节点输入到神经网络节点输出之间的所述至少一条间接路径由串联连接的两个或更多个非易失性存储器元件形成。

16.如权利要求13至15中任一项所述的装置,其中交叉点阵列被配置为将电压转换成电流,并且交叉点阵列的每个输入端子被配置为接收电压并且交叉点阵列的每个输出端子被配置为输出电流。

17.如权利要求13至15中任一项所述的装置,其中交叉点阵列被配置为将电流转换成电压,并且交叉点阵列的每个输入端子被配置为接收电流并且交叉点阵列的每个输出端子被配置为输出电压。

18.如权利要求13至17中任一项所述的装置,其中:每个交叉点阵列模块的N条行信号线中的每一条由贯穿该交叉点阵列模块的连续导电通道形成;以及每个交叉点阵列模块的M条列信号线中的每一条包括:多条连续列信号线,其中每条连续列信号线由贯穿该交叉点阵列模块的连续导电通道形成;以及多条不连续列信号线,其中每条不连续列信号线由多个空间分离的导电通道形成。

19.如权利要求18所述的装置,其中所述多条连续列信号线以交替布置与所述多条不连续列信号线交织。

20.如权利要求19所述的装置,当从属于权利要求3时,其中控制电路系统被配置为通过以下方式驱动与连续列信号线电连通的每个交叉点阵列模块的每个非易失性存储器元件:选择连续列信号线;以及

取决于所生成的编程信号,驱动连接到所选择的连续行的每个非易失性存储器元件。

21.如权利要求19所述的装置,当从属于权利要求3时,其中控制电路系统被配置为通过以下方式驱动与不连续列信号线电连通的每个非易失性存储器元件:将连接到邻居连续列信号线的每个非易失性存储器写为第一阻抗状态;

将该不连续列信号线连接到所述邻居连续列信号线;

取决于所生成的编程信号,驱动连接到所述不连续行的每个非易失性存储器元件;以及将所述不连续列信号线与所述邻居连续列信号线断开。

22.如权利要求13至21中任一项所述的装置,其中每个交叉点阵列模块对阻抗值的线性标度进行数字编码。

23.如权利要求11所述的装置,其中每个交叉点阵列模块包括两个或更多个非易失性存储器元件,所述非易失性存储器元件以神经网络节点输入到神经网络节点输出之间的并联连接布置。

24.如权利要求23所述的装置,其中交叉点阵列模块对电导值的线性标度进行数字编码。

25.如权利要求23或24所述的装置,其中交叉点阵列被配置为将电流转换成电压,并且交叉点阵列的每个输入端子被配置为接收电流并且交叉点阵列的每个输出端子被配置为输出电压。

26.如权利要求23或24所述的装置,其中交叉点阵列被配置为将电压转换成电流,并且交叉点阵列的每个输入端子被配置为接收电压并且交叉点阵列的每个输出端子被配置为输出电流。

27.如权利要求23至26中任一项所述的装置,还包括耦合到交叉点阵列的所述行信号线或每条行信号线的至少一个访问设备,其中该访问设备被配置为选择所述多个非易失性存储器元件中耦合到所述行信号线的一个非易失性存储器元件。

28.如权利要求27所述的装置,当从属于权利要求3时,其中写入电路系统被配置为通过以下方式驱动非易失性存储器:使用访问设备,选择所述多个非易失性存储器元件中的一个非易失性存储器元件;

取决于所生成的编程信号,驱动所选择的非易失性存储器元件。

29.如权利要求28所述的装置,其中每个非易失性存储器元件耦合到开关设备,并且写入电路系统被配置为:使用访问设备,选择所述多个非易失性存储器元件中的一个非易失性存储器元件;以及控制耦合到所选择的非易失性存储器元件的开关设备,以激活通过所选择的非易失性存储器元件的路径。

30.如前述权利要求中任一项所述的装置,其中与每个神经网络节点相关联的权重是负权重。

31.如前述权利要求中任一项所述的装置,其中第一阻抗状态是高阻抗状态。

32.如前述权利要求中任一项所述的装置,其中第一阻抗状态是高阻抗状态并且第二阻抗状态是低阻抗状态。

33.如前述权利要求中任一项所述的装置,其中非易失性存储器元件是非极性非易失性存储器元件。

34.如前述权利要求中任一项所述的装置,其中非易失性存储器元件是以下当中的任何一个:忆阻器、电阻随机存取存储器(ReRAM)、自旋转移力矩磁随机存取存储器(STT-MRAM),以及相变存储器(PCM)。

35.如前述权利要求中任一项所述的装置,其中非易失性存储器元件是相关电子开关(CES)。

36.如前述权利要求中任一项所述的装置,其中通信模块被配置为从在该装置外部训练的人工神经网络模型接收指定交叉点阵列的每个神经网络节点的权重的数据。

37.如前述权利要求中任一项所述的装置,其中通信模块被配置为接收指定交叉点阵列的每个神经网络节点的另外的权重的另外的数据,其中所述另外的权重是从在该装置外部训练的机器学习模型获得的。

38.如前述权利要求中任一项所述的装置,还包括数据存储装置,其耦合到通信模块并且被配置为存储接收到的数据。

39.如权利要求38所述的装置,其中该装置被配置为接收指示要在该装置中实现特定人工神经网络的指令。

40.如权利要求39所述的装置,其中控制电路系统被配置为:从数据存储装置中检索与接收到的指令中指示的人工神经网络对应的数据;以及使用检索出的数据为交叉点阵列的每个神经网络节点提取权重。

41.如前述权利要求中任一项所述的装置,

其中所述交叉点阵列是形成在人工神经网络中的第一层的第一交叉点阵列,其中第一交叉点阵列包括多个输入I1p和多个输出O1q,以及其中所述多个输出O1q被提供为人工神经网络中第二层的输入。

42.如前述权利要求中任一项所述的装置,其中该装置是物联网(IoT)设备。

43.一种在交叉点阵列中实现可重新配置的人工神经网络的方法,该交叉点阵列包括位于行信号线和列信号线的交叉点处的至少一个神经网络节点,该方法包括:接收指定交叉点阵列的每个神经网络节点的权重的数据;

将设置在每个神经网络节点处的多个非易失性存储器元件切换到所需的阻抗状态,以在每个神经网络节点处实现指定的权重;以及使用非易失性存储器元件,存储交叉点阵列的每个神经网络节点的权重。

44.一种实现可重新配置的人工神经网络的系统,该系统包括:如权利要求1至42中任一项所述的装置;以及

远程服务器,被配置为训练人工神经网络模型;

其中该装置被配置为从远程服务器接收指定该装置的每个神经网络节点的权重的数据。

说明书全文

人工神经网络

[0001] 本发明一般而言涉及人工神经网络,具体地涉及用于实现人工神经网络的非易失性存储器电路。
[0002] 非易失性存储器(NVM)是一类存储器,其中在移除供给单元格/元件的电源之后,存储器单元格或元件不会失去其状态。非易失性存储器设备的示例包括闪存、磁性计算机存储设备(例如,硬盘、软盘和磁带)和光盘。NVM设备的其它示例包括相变存储器(PCM/PCRAM)设备、电阻随机存取存储器(RRAM/ReRAM)设备和相关电子材料(CEM/CeRAM)设备。在相变存储器设备中,编程(写入)涉及加热存储器单元格以使其熔化(这引起电阻的改变)并冷却至或者导电结晶状态或非导电非晶状态。在电阻RAM设备中,编程涉及改变介电固态材料两端的电阻。CeRAM设备(全部或部分地)由相关电子材料(CEM)形成,其表现出由电子相关而不是固态结构相变引起的突然导电或绝缘状态转变。
[0003] NVM元件可以用于神经形态计算。
[0004] 广义地说,本文描述的技术在人工神经网络(ANN)中实现权重和输入值的点积计算。ANN由互连的人工神经元(或神经网络节点)的层形成,其中连接(或边)与数字/权重相关联。本文使用的术语“点积”是指与神经网络节点的每条内边(in-edge)或到该节点的连接相关联的权重与沿着那条内边的信号的量值(例如,电压、电流等)的乘积。在一些实现中,权重和/或输入可以具有负量值。在每个神经网络节点处执行的计算可以在两个不同的步骤中发生。第一步包括对权重和输入量值的乘积求和(点积或乘积累加)。第二步包括使用这个和作为神经网络节点的激活函数的输入。给定特定输入,激活函数定义节点的输出,并且可以是二元的(例如“激发”或“不激发”)。本技术提供用于ANN内的点积(乘积累加)计算的低功率和能量高效实现的硬件/电路系统。
[0005] 根据本技术的第一方面,提供了一种用于实现可重新配置的人工神经网络的装置,该装置包括:交叉点阵列,包括:至少一条行信号线和至少一条列信号线;至少一个神经网络节点,其中每个神经网络节点设置在行信号线和列信号线的交叉点处,并且其中每个神经网络节点具有相关联的权重;和多个可编程的非易失性存储器元件,设置在每个神经网络节点处,以存储相关联的权重,其中每个非易失性存储器元件在第一阻抗状态和第二阻抗状态之间可切换;通信模块,被配置为接收指定交叉点阵列的每个神经网络节点的权重的数据;以及控制电路系统,被配置为将设置在每个神经网络节点处的多个非易失性存储器元件切换到第一或第二阻抗状态,以在神经网络节点处实现(或编程)权重。
[0006] 根据本技术的第二方面,提供了一种在交叉点阵列中实现可重新配置的人工神经网络的方法,该交叉点阵列包括位于行信号线和列信号线的交叉点处的至少一个神经网络节点,该方法包括:接收指定交叉点阵列的每个神经网络节点的权重的数据;将设置在每个神经网络节点处的多个非易失性存储器元件切换到所需的阻抗状态,以在每个神经网络节点处实现指定的权重;以及使用非易失性存储器元件来存储交叉点阵列的每个神经网络节点的权重。
[0007] 根据本技术的第三方面,提供了一种实现可重新配置的人工神经网络的系统,该系统包括:如本文所述的装置;以及远程服务器,被配置为训练人工神经网络模型;其中该装置被配置为从远程服务器接收指定该装置的每个神经网络节点的权重的数据。
[0008] 在附图中通过示例的方式以图解方式图示了这些技术,其中:
[0009] 图1a示出了用于图像识别的示例神经网络的示意图;
[0010] 图1b示出了神经网络推理函数的示意图;
[0011] 图2示出了在装置中实现神经网络的系统的框图;
[0012] 图3示出了使用交叉点阵列实现的神经网络的电路图,其中每个神经网络节点包括由多个非易失性存储器元件形成的交叉点阵列模块;
[0013] 图4a示出了设置在每个神经网络节点处的示例2×2交叉点阵列模块的电路图;
[0014] 图4b示出了图4a的2×2交叉点阵列模块的等效电路表示;
[0015] 图5a示出了设置在每个神经网络节点处的示例4×4交叉点阵列模块的电路图;
[0016] 图5b示出了图5b的4×4交叉点阵列模块的扩展表示;
[0017] 图6示出了包括写入电路系统的示例4×4交叉点阵列模块的电路图;
[0018] 图7示出了示例3×3交叉点阵列的电路图,其中每个神经网络节点包括由并行非易失性存储器元件形成的交叉点阵列模块;
[0019] 图8是图示如何在神经网络中应用负权重的电路图;
[0020] 图9是图示在由串联布置的非易失性存储器元件形成的神经网络中实现(或应用/编程)权重的示例步骤的流程图;
[0021] 图10是图示在由并联布置的非易失性存储器元件形成的神经网络中实现(或应用/编程)权重的示例步骤的流程图;以及
[0022] 图11a示出了使用交叉点阵列实现的分层人工神经网络的电路图,并且图11b示出了图11a的示意性版本。
[0023] 广义地说,本技术的实施例提供可重新配置的基于硬件的人工神经网络,其中经由在神经网络外部执行的训练来获得人工神经网络的每个神经网络节点的权重。本技术对于在资源受限的设备(诸如通常具有有限处理和/或存储能力的物联网(IoT)设备或嵌入式设备)中实现人工神经网络特别有用。这种受约束的设备可能不具备训练人工神经网络的能力。因此,本技术提供了在设备(特别是受约束的设备)中实现人工神经网络的方式,而无需该设备在原位执行训练。通过远离设备(诸如在具有足够处理能力的云或远程服务器中)训练神经网络,获得人工神经网络的权重。
[0024] 本文不详细描述人工神经网络的概念。但是,提供简要的解释以帮助理解本技术。一般来说,人工神经网络(ANN)是一种处理设备(以软件、硬件或两者的组合实现),其包含数百、数千甚至数百万个称为“人工神经元”的处理单元(就像人脑中的神经元一样)。人工神经元协同工作以解决具体问题。ANN通常被组织在包括许多互连的人工神经元的层中。基本ANN由三层组成:一层“输入”单元,连接到一层“被隐藏”单元,其中被隐藏节点连接到一层“输出”单元。(在一些情况下,被隐藏单元层可以不存在)。图1a示出了示例人工神经网络的示意图。输入层的输入单元接收将由ANN处理(或者要在ANN的训练期间被学习/识别)的原始信息/数据。输出层中的输出单元位于ANN的相对侧,并指示(signal)ANN如何处理原始信息。在输入单元和输出单元之间是一层或多层被隐藏单元,其执行ANN的大部分。(在图1a中,示出了两个被隐藏层。)在完全连接的ANN中,每个被隐藏单元和每个输出单元在任一侧连接到层中的每个单元,但这仅仅是ANN的一种示例类型。一个单元和另一个单元之间的连接由数字/重量表示。权重可以是正的(例如,如果一个单元激励另一个单元),或者是负的(例如,如果一个单元抑制/禁止另一个单元)。一般而言,权重越高,一个单元对另一个单元的影响越大。
[0025] ANN常常用于图像和语音识别任务,这些任务通常是使用普通的基于规则的编程难以解决的任务。在图1a中所示的示例ANN中,ANN被用于执行图像识别,并且特别地,用于确定图像是否是狗。因此,输出层提供指示接收到的图像是否是(或包含)狗的图像的输出。输出可以是二元输出,例如“是”是1并且“否”是0,或者输出可以指示接收到的图像有多可能是狗的图像。在图1a的示例中,输入层接收猫的图像,并且由ANN处理以确定图像是否是狗。例如,ANN可以用于字母数字字符识别,并且可以存在针对每个可能字符(例如,a到z,以及0到9)的输出。
[0026] 在本技术的实施例中,人工神经网络可以被配置为在输入层处接收电压,并在输出层处输出电流。在图1a中,ANN中的图形(连接)表示权重,并且节点表示通过S形函数(sigmoid function)的加权输入的总和。输入节点的加权和是线性运算,而S形函数基本上是非线性的。人工神经网络的每个节点具有内边(即,指向节点的边)和外边(即,指离节点的边)。指向节点的每条边或者来自另一个节点,或者来自人工神经网络的输入。类似地,每个人工神经网络(ANN)或分层ANN内的每个层具有内边和外边。图1b示出了神经网络推理函数的示意图。在图1a和1b中所示的示例中,输入和输出节点都可以被认为是进行以下计算的数据值(见等式1):
[0027]
[0028] y=H(z)  等式1
[0029] 在矩阵公式中,上述计算(等式1)的线性计算可以写成如下:
[0030] Z=WTX  等式2
[0031] 在本技术中,如果ANN的输入节点(X)以电压V表达并且输出节点(Z)以电流I表达,那么矩阵W等于导纳矩阵。因此,为了关联输出电流和输入电压矩阵,有可能将等式2重写为:
[0032] I=YTV  等式3
[0033] 基于忆阻器或ReRAM的交叉点阵列体系架构可以用于神经形态计算。一般来说,该体系架构可以用于将表示电压的输入节点转换成表示电流的输出节点,和/或将表示电流的输入节点转换成表示电压的输出节点。在下文中,将理解的是,对于将电流转换成电压(或反之亦然)的引用仅用作说明性示例,并且本技术同样可以用于将电压转换成电流(或反之亦然)。输出电流通常通过使输入电压通过交叉点阵列中实现的电导矩阵来确定。通过利用诸如忆阻器和ReRAM之类的特定非易失性存储器元件的“模拟”性质来实现电导矩阵。模拟非易失性存储器元件本质上是丝状的(filamentary)。因此,取决于合适电压的施加,可以在高电阻状态(HRS)或低电阻状态(LRS)之间以精细步幅控制由模拟非易失性存储器元件提供的实际电阻值。但是,这些丝状非易失性存储器元件的电阻值通常存在固有的变化。因此,由丝状非易失性存储器元件形成的交叉点阵列往往需要在逐个元件的基础上在原位进行仔细和精确的调谐,以最小化目标导纳与测得的导纳之间的任何误差。因此,这种方法本质上固有地是“模拟的”。
[0034] 因而,由包括丝状电阻元件的交叉点阵列体系架构形成的ANN不能利用基于云的或远程神经网络训练,因为有必要在原位训练这些ANN,以考虑每个电阻元件之间的变化。因此,它们不适于在物联网(IoT)设备中使用,其中这些设备的受限处理、能量和存储器容量使得原位训练变得困难或不可能。此外,这些ANN可能不适合重用于不同的应用(例如,字符识别、语音识别等),因为每个应用将需要其自己的具体权重,并且将丝状模拟ANN从一个应用切换到另一个应用将需要ANN在原位进行再训练和调谐。
[0035] 由于它们的模拟性质,这种方法容易受到电阻值的变化的影响。中间电阻值的变化甚至可以大于HRS与LRS之间的总差异。
[0036] 使用多个非丝状(non-filamentary)非易失性存储器元件存储权重来形成本技术的人工神经网络。非丝状非易失性存储器元件克服了上述问题,并且可以使人工神经网络能够在诸如IoT设备之类的受约束设备中实现,而无需原位训练。这可以使人工神经网络能够快速有效地在IoT设备中实现,因为每个IoT设备可以简单地下载具体应用的权重。用于对权重进行编码并执行点积计算的本技术的交叉点阵列是全数字的,这使得ANN能够利用基于云的训练。(但是,如下面所解释的,ANN可以包括用于计算激活函数的电路系统,并且在实施例中,这个电路系统可以不是全数字的)。广义地说,指定具体应用的权重的数据(例如,数字字)可以由IoT设备下载并被编程到在IoT设备内提供的交叉点阵列中。这可以消除在每个IoT设备中进行昂贵且耗时的ANN训练的需要。全数字方法还可以提供对抗电阻变化的更大抗扰性,并因此提供适于实际应用的ANN。
[0037] 在本技术的实施例中,交叉点阵列的每个人工神经网络节点可以包括相关电子开关(CES)元件。CES元件由于其“非丝状”性质而与忆阻器和ReRAM独特地区别开来,这允许在制造之后存在(至少)两个不同且固定的阻抗状态。由于CES元件被限制到不同的阻抗状态,因此在已知的基于交叉点阵列的ANN中用CES元件替换忆阻器和ReRAM将不会产生本技术的优点,因为这些已知的ANN利用忆阻器的丝状性质来提供各种电阻状态(以及由此各个权重)。在本技术中,可以通过使用多个CES元件来创建电阻/阻抗状态的频谱。
[0038] 如上面所提到的,本技术的交叉点阵列的每个神经网络节点可以包括相关电子开关(CES)元件。在这个上下文中,CES元件可以表现出从导电状态(低阻抗和低电容状态)到绝缘(高阻抗和高电容状态)状态的突然导体/绝缘体过渡,或反之亦然,这是由于CEM中的电子相关性而不是固态结构相变(例如,如在相变存储器(PCM)设备中发生的晶体/非晶体改变或者如在电阻RAM设备中发生的细丝形成(filamentary formation))引起的。
[0039] 在实施例中,与熔化/凝固或细丝形成相比,CEM中的突然导体/绝缘体过渡可以响应于量子力学现象。CES元件中导电状态和绝缘状态之间的这种量子力学过渡可以在若干方面中的任一方面中理解。
[0040] 在实施例中,可以依据Mott过渡来理解绝缘状态和导电状态之间的量子力学过渡。例如,如果满足第一Mott过渡条件,那么CEM可以从绝缘状态切换到导电状态,而如果满足第二Mott过渡条件,那么可以从导电状态切换到绝缘状态。下面将更详细地描述不同的Mott过渡条件。
[0041] 在本技术的实施例的特定实现中,存储器电路可以包括:存储器阵列,包括至少一个CES元件;写入电路,用于取决于提供给存储器阵列(或提供给存储器阵列内的存储器块)的信号而将CES元件置于第一存储器状态或第二存储器状态,其中CES元件的阻抗在第二存储器状态下高于第一存储器状态下;以及读取电路,用于感测存储器阵列(或块)的存储器状态,并提供与存储器阵列(或块)的感测到的存储器状态对应的电信号。
[0042] 在一方面,处于第二阻抗状态的CES元件的阻抗可以比处于第一阻抗状态的CES元件的阻抗大100倍以上。
[0043] CES元件可以用作CES随机存取存储器(CeRAM)。CES元件包括可以至少部分地基于利用例如Mott过渡在存储器状态之间(例如,从绝缘状态到导电状态)过渡的CEM的至少一部分在多个预定可检测存储器状态之间过渡的材料。在这个上下文中,“存储器状态”意味着CES元件的可检测状态,其指示值、符号、参数或条件,这仅仅是提供了一些示例。
[0044] 在一个特定实现中,可以至少部分地基于在“读取操作”中在CES元件的一个或多个端子上检测到的信号的值来检测CES元件的存储器状态。
[0045] 在另一个特定实现中,可以通过控制施加到CES元件的偏置参数(例如,电压)和/或通过控制通过CES元件驱动的电流参数(例如电流密度J(A/μm2))来将CES元件置于特定存储器状态,以表示或存储特定的值、符号、参数或条件等。
[0046] 在实施例中,CEM包括开关区域(S),该区域被布置成与半导体上的(C/S/C)布置(例如,堆叠布置)中的导电区域(C)电接触(例如,夹在其间)。导电区域(C)可以包括任何合适的材料,并且可以包括过渡金属氧化物,并且还可以包括任何包括类金属特点的材料,包括例如多晶硅或掺杂半导体。在实施例中,导电区域(C)可以附加地或可替代地包括选自包括以下的组的材料:铝、镉、铬、钴、铜、金、铁、锰、汞、钼、镍、钯、铼、钌、银、锡、钛、钒和锌(可以与阳离子(诸如氧或其它类型的配体)链接)或其组合。
[0047] 根据实施例,开关区域(S)可以包括任何过渡金属氧化物(TMO)材料,诸如例如钙钛矿、Mott绝缘体、电荷交换绝缘体以及Anderson无序绝缘体。
[0048] 在特定实现中,开关区域(S)材料可以包括开关材料,诸如氧化镍、氧化钴、氧化铁、氧化钇和钙钛矿(诸如Cr掺杂的钛酸锶、钛酸镧)和锰酸盐族(包括镨钙、锰酸盐、和镧镧锰氧化物),这仅仅是提供了几个示例。特别地,结合具有不完全的d和f轨道外壳的元素的氧化物可以表现出足够的电阻开关特性,以用作开关区域(S)材料。在实施例中,可以在没有电铸的情况下制备CES元件。
[0049] 其它实现可以采用其它过渡金属化合物作为开关区域(S)材料而不背离要求保护的主题。例如,{M(chxn)2Br}Br2,其中M可以包括Pt、Pd或Ni,并且chxn包括1R、2R-环己烷二胺,并且可以使用其它此类金属络合物而不背离要求保护的主题。
[0050] 在一方面,CEM可以包括作为过渡金属氧化物(TMO)可变电阻材料的材料,但是应当理解的是,这些仅仅是示例性的,并且不旨在限制要求保护的主题。
[0051] 特定实现也可以采用其它可变电阻材料。虽然公开了氧化镍NiO作为上述一种特定的TMO,但是NiO材料也可以掺杂外部配体,这可以稳定可变电阻特性。特别地,本文公开的NiO可变电阻材料可以包括含碳配体,其可以由NiO(Cx)指示。在这里,本领域技术人员可以简单地通过平衡化合价来确定任何具体的含碳配体以及含碳配体与NiO的任何具体组合的x值。在另一个特定示例中,掺杂有外部配体的NiO可以被表达为NiO(Lx),其中Lx是配体元素或化合物,并且x指示一个单元的NiO的配体单元数。本领域技术人员可以简单地通过平衡化合价来确定任何具体配体以及配体与NiO或任何其它过渡金属的任何具体组合的x值。
[0052] 此外,端子可以包括与导电区域(C)相同的材料,使得导电区域(C)可以用作端子。在用于端子和导电区域(C)的材料不相同的实施例中,优选地匹配不同的材料以减少边界相互作用或表面缺陷的影响,否则会影响CES元件的性能。例如,材料应当匹配,以确保CEM和端子的电特性(例如,电导率)和/或化学特性(例如,热膨胀系数匹配)不会对CES元件的操作产生负面影响。
[0053] 通过在端子之间施加具体电压(Vapplied)并通过CEM驱动具体电流密度(Japplied),CES元件可以从导电(低阻抗和低电容)存储器状态(下文中称为“LIS”)过渡到绝缘(高阻抗和高电容)存储器状态(下文中称为“HIS”),或者可以根据不同的施加电压(Vapplied)和电流密度(Japplied)从HIS过渡到LIS。
[0054] 在这个上下文中,应当理解的是,LIS和HIS是相对术语,并且不特定于电导、阻抗或电容的任何特定数量或值。例如,当处于第一存储器状态时,CES元件可以比CES元件处于第二存储器状态时更具导电性(或更不绝缘)。
[0055] 此外,CES元件“诞生于”,由此在制造(例如,沉积)时,CES元件处于LIS。
[0056] 现在转向图2,其示出了用于在装置102中实现神经网络的系统100的框图。如上面所解释的,人工神经网络设置在装置102中并且使用至少一个交叉点阵列104形成。交叉点阵列104包括至少一条行信号线和至少一条列信号线,在行信号线和列信号线的交叉点处提供至少一个神经网络节点(神经元)。神经网络节点具有相关联的权重,其使用在每个神经网络节点处提供的多个可编程非易失性存储器元件来存储。经由在远程服务器110中执行的神经网络训练来获得每个神经网络节点的权重。权重可以被提供给装置102的通信模块110或者由装置102的通信模块110下载。装置102可以使用控制电路系统112来确定如何将接收到的权重编程到交叉点阵列104中,以便为特定应用(例如,语音识别、字符/图像识别等)实现人工神经网络。当交叉点阵列104已经基于接收到的权重编程时,输入106(例如,表示图像、声音等的电压、电流或其它信号)可以输入到装置102中。输入106由交叉点阵列104处理,并且生成至少一个输出108。
[0057] 因而,提供了一种用于实现可重新配置的人工神经网络的装置,该装置包括:交叉点阵列,包括:至少一条行信号线和至少一条列信号线;至少一个神经网络节点,其中每个神经网络节点设置在行信号线和列信号线的交叉点处,并且其中每个神经网络节点具有相关联的权重;多个可编程的非易失性存储器元件,设置在每个神经网络节点处,以存储相关联的权重,其中每个非易失性存储器元件在第一阻抗状态和第二阻抗状态之间可切换;通信模块,被配置为接收指定交叉点阵列的每个神经网络节点的权重的数据;以及控制电路系统,被配置为将设置在每个神经网络节点处的多个非易失性存储器元件切换到第一或第二阻抗状态,以在神经网络节点处实现权重。
[0058] 交叉点阵列可以用于执行第一步骤,即,对人工神经网络(ANN)的每个神经网络节点的权重和输入值/信号的点积计算求和。在实施例中,装置可以包括执行第二步骤(即,激活函数的计算)的另外的电路系统,该激活函数使用来自第一步骤的和作为用于神经网络节点的激活函数的输入。
[0059] 术语“非易失性存储器元件”在本文中可与术语“NVM元件”、“非易失性存储器设备”、“非易失性随机存取存储器”、“非易失性存储器单元格”、“非易失性存储器阵列”或“非易失性存储器”互换使用。在实施例中,非易失性存储器元件可以是非极性NVM元件,其中开关和导通可以在任何方向上发生(例如,双极开关),并且术语“非易失性存储器元件”在本文中可与术语“非极性NVM元件”互换使用。在实施例中,非易失性存储器元件可以是忆阻器、电阻随机存取存储器(ReRAM)、相变存储器(PCM)和/或自旋转移力矩磁随机存取存储器(STT-MRAM或STT-RAM),并且术语“非易失性存储器元件”在本文中用于指代这些类型的存储器中的任何一种。在实施例中,非易失性存储器元件是相关电子开关(CES),并且术语“非易失性存储器元件”可与术语“相关电子材料存储器”、“CeRAM”、“相关电子开关”、“CES”或“双极开关非易失性存储器元件”互换使用。
[0060] 在实施例中,装置的通信模块被配置为接收指定每个神经网络节点的权重的数据,并且被配置为:获得至少一个指定每个神经网络节点的权重的数据分组;从数据分组中提取每个神经网络节点的权重;并且其中控制电路系统被配置为:使用每个神经网络节点的权重,确定每个神经网络节点处的每个非易失性存储器元件要切换到第一阻抗状态还是第二阻抗状态;以及响应于该确定,生成用于每个非易失性存储器元件的编程信号。
[0061] 控制电路系统可以包括写入电路系统,该写入电路系统被配置为:接收为每个非易失性存储器元件生成的编程信号;以及取决于生成的编程信号,驱动每个非易失性存储器元件。
[0062] 图3示出了使用至少一个交叉点阵列10实现的人工神经网络(ANN)的电路图。交叉点阵列10包括至少一条行信号线18和至少一条列信号线20。在所示的示例中,交叉点阵列包括多行信号线18和多列信号线20。如前面所提到的,ANN包括输入层,因此,交叉点阵列10包括一个或多个输入节点14。每个输入节点14耦合到行信号线18。ANN包括输出层,因此,交叉点阵列包括一个或多个输出节点16,其中每个输出节点耦合到列信号线18。在实施例(现在示出)中,交叉点阵列10可以包括多个输入节点14和单个输出节点16。输出节点16的数量可以取决于由ANN实现的应用。例如,对于正在实现字母数字字符识别的ANN(即,每个字符一个输出节点),可能需要许多输出节点16。在另一个示例中,如果ANN正在实现具体的图像识别应用,例如面部识别,那么单个输出节点16就足够了。
[0063] 交叉点阵列10包括在行信号线18和列信号线20的每个交叉点处提供的神经网络节点12。在所示的示例中,交叉点阵列10是M×N阵列并且包括标记为R11至Rmn的多个神经网络节点12。在实施例中,M和N是不同的整数,并且在替代实施例中,M和N相等。在每个神经网络节点12处提供多个可编程的非易失性存储器元件,以存储与神经网络节点12相关联的权重。每个非易失性存储器元件可在第一阻抗状态和第二阻抗状态之间切换,并且选择哪个状态取决于要存储在神经网络节点12中的权重。在非易失性存储器元件是相关电子开关的情况下,在实施例中,可以只有两种可能的阻抗状态:高阻抗状态(HIS)或低阻抗状态(LIS)。每个神经网络节点12包括神经网络节点输入22(本文中也称为“输入边”或“内边”)和神经网络节点输出24(本文中也称为“输出边”或“外边”)。
[0064] 因此,在实施例中,交叉点阵列还可以包括:至少一个输入端子,以接收用于交叉点阵列的输入信号;至少一个输出端子,以提供通过使输入信号通过交叉点阵列的至少一个神经网络节点而生成的输出信号。神经网络节点可以接收输入信号,将神经网络节点的相关联的权重与输入信号相乘,并输出加权信号。
[0065] 可替代地,交叉点阵列可以包括:多行信号线和多列信号线;多个神经网络节点,其中每个神经网络节点设置在行信号线和列信号线的交叉点处,并且其中每个神经网络节点具有相关联的权重;以及设置在每个神经网络节点处的多个可编程的非易失性存储器元件,其中每个非易失性存储器元件在第一阻抗状态和第二阻抗状态之间可切换。
[0066] 交叉点阵列还可以包括:多个输入端子(或输入节点),每个输入端子被配置为接收交叉点阵列的输入信号;以及至少一个输出端(或输出节点),以提供通过使输入信号通过交叉点阵列的神经网络节点而生成的输出信号。交叉点阵列可以包括多个输出端子,每个输出端子提供输出信号。
[0067] 每个神经网络节点可以接收两个或更多个输入信号,将相关联的权重与每个输入信号相乘以生成加权的信号,并输出表示求和的加权信号的求和信号。乘法可以是权重和输入信号的点积计算。交叉点阵列的至少一个输出端子可以被配置为从多个神经网络节点中的一个或多个接收求和信号,并且组合该求和信号以提供输出信号。
[0068] 交叉点阵列10可以被配置为在每个输入节点14处接收电压(电压值),例如V1至Vm,并且可以被配置为在每个输出节点16处输出电流(电流值),例如I1至In。在替代实施例中,交叉点阵列10可以被配置为接收电流并输出电压。
[0069] 在实施例中,交叉点阵列10的每个神经网络节点12可以包括交叉点阵列模块(不是如图4a和4b、3中所示,并且在下面更详细地描述)。交叉点阵列模块包括N行信号线和M列信号线的阵列,在行和列信号线的每个交叉点处提供非易失性存储器元件。在每个交叉点阵列模块内,存在从神经网络节点输入22(内边)到神经网络节点输出24(外边)的直接路径,以及从神经网络节点输入22到神经网络节点输出24的至少一条间接路径。直接路径通过单个或最小数量的NVM元件,或者换句话说,通过交叉点阵列的选定单元格/部分。间接路径是通过交叉点阵列的未选择的单元格或部分的潜行泄漏路径。在这个实施例中,利用交叉点阵列模块中的直接和潜行泄漏路径来创建可以数字编码的一系列电阻(R)值。
[0070] 在实施例中,每个神经网络节点可以包括交叉点阵列模块,并且设置在每个神经网络节点处的多个可编程的非易失性存储器元件布置在该交叉点阵列模块中。
[0071] 因此,在实施例中,本技术提供了“分层的”完全连接的交叉点阵列体系架构,其可以实现电阻矩阵的多位数字编码。跨交叉点阵列10的潜行泄漏路径可以提供等效电阻值的线性增加,这可以使能电阻矩阵的全数字编码。下面参考图4a至7更详细地描述这个实施例。
[0072] 在替代实施例中,交叉点阵列10的每个神经网络节点12可以包括交叉点阵列模块(图3中未示出),该交叉点阵列模块包括以神经网络节点输入22到神经网络节点输出24之间的并联连接布置的两个或更多个非易失性存储器元件。在这个实施例中,每个神经网络节点12中的非易失性存储器元件的并联连接用于创建可以被数字编码的一系列电导(G)值。因此,在实施例中,本技术提供了一种多元件并联连接的交叉点阵列,其中非易失性存储器元件的并联连接可以提供导纳/电导矩阵的全数字编码。下面参考图8和9更详细地描述这个实施例。
[0073] 在实施例中,与每个神经网络节点相关联的权重是负权重。在实施例中,第一阻抗状态是高阻抗状态,并且第二阻抗状态是低阻抗状态。
[0074] 非易失性存储器元件可以是双极开关非易失性存储器元件。在实施例中,非易失性存储器元件是以下当中的任何一个:忆阻器、电阻随机存取存储器(ReRAM)、相变存储器(PCM)和自旋转移力矩磁随机存取存储器(STT-MRAM)。优选地,非易失性存储器元件是相关电子开关(CES)。
[0075] 装置的通信模块可以被配置为从在该装置外部训练的人工神经网络模型(例如,从远程服务器或云)接收指定交叉点阵列的每个神经网络节点的权重的数据。
[0076] 由于本技术的ANN可针对不同应用进行重新配置,因此通信模块可以被配置为接收指定交叉点阵列的每个神经网络节点的另外的权重的另外的数据,其中该另外的权重是从在装置外部训练的机器学习模型获得的。该另外的权重可以从在装置外部训练的另外的ANN模型或者从诸如隐马尔可夫模型(HMM)之类的其它统计模型获得。
[0077] 该装置可以包括数据存储装置,其耦合到通信模块并且被配置为存储接收到的数据。存储接收到的数据可以使装置能够更容易地在不同应用之间切换,因为每个ANN应用的权重可以在需要时从本地数据存储装置中检索。
[0078] 该装置可以被配置为接收指示将在该装置中实现特定人工神经网络的指令。响应于指令,控制电路系统可以被配置为:从数据存储装置中检索与接收到的指令中指示的人工神经网络对应的数据;以及使用检索出的数据为交叉点阵列的每个神经网络节点提取权重。
[0079] 全数字多位电阻矩阵
[0080] 如上面所提到的,交叉点阵列10的每个神经网络节点12可以包括交叉点阵列模块。图4a示出了在每个神经网络节点12处提供的示例交叉点阵列模块的电路图。在这个实施例中,交叉点阵列体系架构10用于通过利用交叉点阵列中的潜行泄漏路径来生成电阻值的线性标度。生成电阻值的线性标度可以使用于每个人工神经网络的实际电阻值(或加权)能够被数字编码并编程到交叉点阵列中。
[0081] 图4a中所示的交叉点阵列模块包括行信号线18'和列信号线20'的2×2阵列,其中非易失性存储器元件26a-26d设置在行和列信号线的每个交叉点处。图4a中示出的交叉点阵列模块仅仅是示例性的,并且在实施例中,可以包括多于两行信号线和/或多于两列信号线。在实施例中,行信号线和列信号线的数量可以不相等(即,交叉点阵列模块可以包括非方形阵列或行和列信号线)。在实施例中,交叉点阵列模块可以包括“n”行和“m”列信号线的阵列,其中n和m是整数,并且其中n和m可以相等或不同。我们将这种阵列称为n×m维交叉点阵列。
[0082] 在神经网络节点12的交叉点阵列模块内,存在从神经网络节点输入22到神经网络节点输出24的直接路径。直接路径通过非易失性存储器元件26a。在交叉点阵列模块中,存在从神经网络节点输入22到神经网络节点输出24的至少一条间接路径(潜行泄漏路径)。间接的潜行泄漏路径通过非易失性存储器元件26b,然后是非易失性存储器元件26c,然后通过非易失性存储器元件26d。换句话说,潜行泄漏路径通过非易失性存储器元件26b、26c和26d的串联连接。在这个实施例中,利用交叉点阵列模块中的直接和潜行泄漏路径来创建可以被数字编码的一系列电阻(R)值。
[0083] 在图4a中,在神经网络节点输入22和神经网络节点输出24之间测量通过交叉点阵列模块的等效电阻。在这个交叉点阵列模块中,仅输入22和输出24连接到交叉点阵列的其它部分,但是包括更多输入和输出的其它布置也是可能的。
[0084] 图4b示出了图4a的2×2交叉点阵列模块的等效电路表示。神经网络节点输入22和神经网络节点输出24之间的等效电阻在图4b中标记为Req,并且基本上是元组。如果非易失性存储器元件(例如,CES元件)处于低电阻状态(LRS或LIS),那么其电阻被标记为“R”。如果非易失性存储器元件处于高电阻状态(HRS或HIS),那么通过交叉点阵列模块的导电路径的电阻比LRS高至少两个数量级,因此近似为“无穷大”,或有效地开路。
[0085] 当使用的NVM元件是CES(相关电子开关)时,HRS和LRS分开至少两个数量级。在使用其它类型的NVM元件的实施例中,HRS与LRS之间的分离可以不那么大。在这种情况下,串联晶体管也可以用作“开路”电阻的代理。在以下等式中,变量“R”用于表示LRS电阻。
[0086] Req=R(当R01=LRS并且R00,R10,R11中的任何一个或全部
[0087]            =HRS时)  (a)
[0088] Req=3R(当R01=HRS并且R00=R10=R11=LRS时  )(b)
[0089]
[0090] 因此,Req={R,3R,∞}  等式4
[0091] 在本技术的实施例中,目标是实现电阻/阻抗值与数字编码表示之间的线性映射。因此,下面讨论的一些实施例不使用分数权重(即,如上面的等式4(c)中所示)。但是,在线性度要求不那么严格的替代实施例中,也可以使用分数权重。本技术利用结果所得的线性度作为设计和用途简化的手段(并且在实施例中,也可以使用分数权重)。
[0092] 因此,直接和潜行电阻路径已经使能了线性电阻标度。2×2交叉点阵列模块的电阻可以用单个位进行数字编码。(要注意的是,在实施例中,非线性电阻分离-0.75R-可以打折扣,因为它可能不是数字编码的。但是,在实施例中,可以利用(一个或多个)非线性电阻分离)。
[0093] 较大的交叉点阵列模块可以用于提供更大/更宽的电阻范围,从而提供多位电阻代码。图5示出了在每个神经网络节点12处提供的示例4×4交叉点阵列模块的电路图。图5中所示的交叉点阵列模块包括行信号线18'以及列信号线20'和21'的4×4阵列,在行和列信号线的每个交叉点处提供非易失性存储器元件。可以使用图4a的2×2交叉点阵列模块作为构建块来构造4×4交叉点阵列模块。虚线框示出了四个2×2交叉点阵列模块50a至50d。每个2×2构建块50a至50d以与上面参考图4a和4b描述的2×2交叉点阵列模块类似的方式
操作。例如,在构建块50b中,存在通过构建块50b通过非易失性存储器元件R01的直接路径,以及通过非易失性存储器元件R00、R10和R11的间接路径。
[0094] 从神经网络节点输入22到神经网络节点输出24通过交叉点阵列模块有两条直接路径。通过4×4交叉点阵列模块的一条直接路径是通过构建块50a中的非易失性存储器元件R01,而另一条直接路径是通过构建块50a中的非易失性存储器元件R00、R10和R11。因此,直接路径可以具有值R或3R。通过4×4交叉点阵列模块有许多间接的潜行泄漏路径,这取决于通过的构建块的数量。例如,可以通过仅通过构建块50b的R00、R10和R11来实现3R,而当通过构建块50b的等效电阻是R、通过50c的等效电阻是3R并且通过50d的等效电阻是R时,可以实现5R。因而,4×4交叉点阵列模块可以能够在神经网络节点输入22和神经网络节点输出24之间提供以下等效电阻:
[0095] Req={R,3R,5R,7R,9R,∞}  等式5
[0096] 如前所述,在这里“R”指示NVM元件中LRS电阻的值。
[0097] 因此,4×4交叉点阵列模块中的直接和潜行电阻路径已经使能了线性电阻标度,其可以用三位进行数字编码。(要注意的是,在实施例中,非线性电阻分离可以打折扣,因为它们可能不容易以数字形式编码。但是,在实施例中,可以利用(一个或多个)非线性电阻分离)。
[0098] 可能需要8x8交叉点阵列模块来提供完全填充的3位编码空间。在这种情况下,电阻标度将由以下值组成(其中“R”指示NVM元件中LRS电阻的值):
[0099] Req={R,3R,5R,7R,9R,11R,13R,15R,∞}  等式6
[0100] 图5的复合4×4交叉点阵列模块可以使用两个金属层构造(即,用于列信号线的一个金属层和用于行信号线的一个金属层),而不需要另外的金属层。如图5中所示,行信号线18'和偶数列信号线20'是连续的,而奇数列信号线21'是不连续的。不连续的列信号线21'用于使得能够写交叉点阵列模块中的每个非易失性存储器元件。
[0101] 在实施例中,每个神经网络节点的交叉点阵列模块可以包括由N行信号线和M列信号线形成的阵列,其中在N行信号线和M列信号线的每个交叉点处提供多个非易失性存储器元件中的一个。每个交叉点阵列模块可以包括:从神经网络节点输入到神经网络节点输出的直接路径;以及从神经网络节点输入到神经网络节点输出的至少一条间接路径。
[0102] 在特定实施例中,交叉点阵列模块可以用于对交叉点阵列中阻抗值的线性标度进行数字编码。
[0103] 神经网络节点输入到神经网络节点输出之间的至少一条间接路径可以由串联连接的两个或更多个非易失性存储器元件形成。
[0104] 交叉点阵列可以被配置为将电压转换成电流。在这种实施例中,交叉点阵列的每个输入端子可以被配置为接收电压,并且交叉点阵列的每个输出端子可以被配置为输出电流。
[0105] 图6示出了示例4×4交叉点阵列模块的电路图,该交叉点阵列模块包括用于将每个非易失性存储器元件驱动到所需阻抗状态(以存储人工神经网络所需的权重)的控制电路系统。控制电路系统可以包括用于选择列信号线的手段(例如,晶体管54、56)和用于将列信号线耦合在一起的手段(例如,短路晶体管52a-52d)。
[0106] 写耦合到奇数(不连续)列21'的非易失性存储器元件是通过首先将偶数列20'的非易失性存储器元件写入HRS(或HIS)来实现的,这实际上意味着它们处于“开路”状态。其次,奇数列21'短路到邻居偶数列20'(经由短路晶体管52a至52d),并且奇数列21'的非易失性存储器元件通过偶数列20'写入。短路晶体管52a至52d可以以最小的电压降级实现这一点。一旦耦合到奇数列21'的非易失性存储器元件已被写入/编程到所需的阻抗状态,奇数列21'就与偶数列20'断开。耦合到偶数列20'的非易失性存储器元件被再次写入,此时进入所需的阻抗状态。(通过选择适当的行和列信号线来选择特定的非易失性存储器元件)。
[0107] 通常通过将所有列信号线20'、21'拉低并用或者“置位”或者“复位”电压偏置行信号线18'来实现写入。由于受到具有串联的多个CES元件的限制的合规电流要求,防止了对潜行泄漏路径的意外写入。
[0108] 可以使用交叉点阵列模块中的第三金属层来路由短路晶体管52a至52d,使得它们可以存在于交叉点阵列“阴影”内并且不消耗附加的区域。因此,该区域的大部分可以由交叉点阵列支配。这种布置实现了基于CES的交叉点阵列的极其区域高效的实现。
[0109] 在实施例中,每个非易失性存储器元件可以耦合到开关晶体管58。在实施例中,不是将非易失性存储器元件驱动到HRS(或HIS),而是可以使用开关晶体管58来从交叉点阵列模块断开非易失性存储器元件,即,通过交叉点阵列模块停用特定路径。但是,这需要附加的电路系统。
[0110] 因此,在实施例中,每个交叉点阵列模块的N行信号线中的每一行由贯穿交叉点阵列模块的连续导电通道形成;并且每个交叉点阵列模块的M列信号线中的每一列包括:多条连续列信号线,其中每条连续列信号线由贯穿交叉点阵列模块的连续导电通道形成;以及多条不连续列信号线,其中每条不连续列信号线由多个空间上分离的导电通道形成。形成每条不连续列信号线的多个导电通道(例如,图6中的列信号线21')可以在单个金属层中形成。
[0111] 多条连续列信号线可以以交替布置与多条不连续列信号线交织。
[0112] 控制电路系统可以被配置为通过以下方式驱动与连续列信号线电连通的每个交叉点阵列模块的每个非易失性存储器元件:选择连续列信号线;以及取决于所生成的编程信号,驱动连接到所选择的连续行的每个非易失性存储器元件。
[0113] 控制电路系统可以被配置为通过以下方式驱动与不连续列信号线电连通的每个非易失性存储器元件:将连接到邻居连续列信号线的每个非易失性存储器写为第一阻抗状态;将该不连续列信号线连接到该邻居连续列信号线;取决于所生成的编程信号,驱动连接到该不连续行的每个非易失性存储器元件;并且将该不连续列信号线与该邻居连续列信号线断开。
[0114] 图7是图示将权重实现或编程到由串联布置的非易失性存储器元件形成的神经网络中的示例步骤的流程图。该处理开始于从远程服务器110接收交叉点阵列104的权重(步骤S90)。控制电路系统112可以使用接收到的权重来确定需要交叉点阵列104中的每个非易失性存储器(NVM)元件处于哪个阻抗状态(LIS或HIS)以在每个神经网络节点处实现接收到的权重(步骤S92)。这可以针对每个神经网络节点单独执行,即,针对神经网络节点处的交叉点阵列模块执行。在步骤S94处,将(神经网络节点的)交叉点阵列模块中的所有偶数列写为高阻抗状态。交叉点阵列模块中的每个奇数列连接到相邻偶数列以使奇数列短路(步骤S96)。选择行和奇数列(步骤S98),并且将耦合到所选择的行和列的非易失性存储器元件写入/编程到所需阻抗状态(步骤S100)。控制电路系统112可以检查是否已经写入了耦合到奇数列的所有非易失性存储器元件(步骤S102),如果没有,那么重复选择和写入处理,直到所有这些NVM元件都被写入。然后将奇数列与邻居偶数列断开(步骤S104)。现在可以通过选择行和偶数列一次一个地写入耦合到偶数列的NVM元素(步骤S106)。将所选择的NVM元件写入所需的阻抗状态(步骤S108)。控制电路112可以检查是否已经写入了耦合到偶数列的所有非易失性存储器元件(步骤S110),如果没有,那么重复选择和写入处理,直到所有这些NVM元件都被写入。然后该处理结束。要注意的是,在写入偶数列时,奇数列中的NVM元素不会受到扰动,因为它们与写入电路系统有效地断开。
[0115] 上述技术可以用于提供更大的交叉点阵列以增大电阻标度。例如,每个神经网络节点12可以包括8×8交叉点阵列模块,其可以将电阻标度增加到8级标度(即,Req=R,3R,5R,7R,9R,11R,13R,15R),从而实现完全填充的3位编码。类似地,32×32交叉点阵列模块可以实现16级标度和完全填充的4位编码。电阻标度中的每个电阻值与其邻居电阻值相等地分开2R。这可以使得能够减轻由CES元件工艺变化引起的任何影响。交叉点阵列可以由任何尺寸构成,并且可以简单地通过在适当尺寸的每个神经网络节点处使用交叉点阵列模块来进行所需的编码。例如,为了实现256×256人工神经网络,需要256×256交叉点阵列。如果需要3位电阻编码,那么每个神经网络节点包括8×8交叉点阵列模块。如果神经网络包括
256个输入和256个输出,那么结果所得的神经网络将具有总共216(256×256)个神经网络节点。每个神经网络节点(如前面所提到)需要8×8交叉点阵列模块,以便提供3位电阻编码。
因此,使用256×256交叉点阵列实现并提供3位编码的神经网络有效地包括1024×1024个NVM元件的阵列(即,1MB的存储器)。
[0116] 全数字多位电阻矩阵
[0117] 如上面参考图3所提到的,交叉点阵列10的每个神经网络节点12可以包括交叉点阵列模块,该交叉点阵列模块包括以神经网络节点输入22和神经网络节点输出24之间的并联连接布置的两个或更多个非易失性存储器元件。图8示出了示例3×3交叉点阵列60的电路图,其中每个神经网络节点12包括由并联的非易失性存储器元件形成的交叉点阵列模块。每个神经网络节点12中的非易失性存储器元件的并联连接用于创建可以被数字编码的一系列电导(G)值。
[0118] 因此,在实施例中,每个神经网络节点包括交叉点阵列模块,并且设置在每个神经网络节点处的多个可编程的非易失性存储器元件布置在交叉点阵列模块中。每个交叉点阵列模块包括布置在神经网络节点输入到神经网络节点输出之间的并联连接中的两个或更多个非易失性存储器元件。
[0119] 交叉点阵列模块可以对交叉点阵列中电导值的线性标度进行数字编码。交叉点阵列可以被配置为将电流转换成电压。在这种情况下,交叉点阵列的每个输入端子可以被配置为接收电流并且交叉点阵列的每个输出端子可以被配置为输出电压。
[0120] 交叉点阵列60由三列信号线20和三行信号线18形成。在每个神经网络节点12处,存在并联连接在神经网络节点输入22和神经网络节点输出24之间的至少两个非易失性存储器元件。在所示的示例中,在每个神经网络节点12处的每个交叉点阵列模块中存在两个非易失性存储器元件62a和62b。每个非易失性存储器元件62a、62b耦合到开关晶体管64a、64b。开关晶体管使特定的非易失性存储器元件能够与神经网络节点12的交叉点阵列模块连接或断开。
[0121] 为了存储特定ANN的权重,通过对行电压和列电压二者进行编程来寻址每个非易失性存储器元件。由于所有非易失性存储器元件是并联的,因此交叉点阵列的每一行耦合到访问设备,该访问设备使得能够从一行中的多个NVM元件中选择单个NVM元件,从而防止意外写入。访问设备通常仅用于在编程期间选择NVM元件。在实施例中,可以在同一行18中的多个神经网络节点12之间共享访问设备。
[0122] 因此,在实施例中,至少一个访问设备可以耦合到交叉点阵列的行信号线或每条行信号线,其中访问设备被配置为选择耦合到该行信号线的多个非易失性存储器元件中的一个。
[0123] 控制或写入电路系统可以被配置为通过以下方式来驱动非易失性存储器:使用访问设备选择多个非易失性存储器元件中的一个;取决于所生成的编程信号,驱动所选择的非易失性存储器元件。
[0124] 在实施例中,每个非易失性存储器元件可以耦合到开关设备,并且写入电路系统被配置为:使用访问设备选择多个非易失性存储器元件中的一个;控制耦合到所选择的非易失性存储器元件的开关设备,以激活通过所选择的非易失性存储器元件的路径。
[0125] 这个3×3交叉点阵列中NVM元件的并联布置提供了{R,R/2,R/3...,R/8}分开的等效电阻。这是一种非线性电阻标度。但是,等效电导标度如下线性增加{G,2G,3G..,8G}。因此,在这个实施例中,是以3位标度数字编码的电导率。
[0126] 在所示实施例中,ANN被配置为将电压转换成电流,使得输入节点14接收电压值并且输出节点16输出电流值。
[0127] 图9是图示将权重实现或编程到由并联布置的非易失性存储器元件形成的神经网络中的示例步骤的流程图。该处理开始于从远程服务器110接收交叉点阵列104的权重(步骤S200)。控制电路系统112可以使用接收到的权重来确定需要交叉点阵列104中的每个非易失性存储器(NVM)元件处于哪个阻抗状态(LIS或HIS)以在每个神经网络节点处实现接收到的权重(步骤S202)。这可以针对每个神经网络节点单独执行,即,针对神经网络节点处的交叉点阵列模块执行。在步骤S204处,选择交叉点阵列104的行和列。访问设备用于选择所选择的行中的多个并联NVM元件中的NVM元件之一(步骤S206)。在实施例中,如果需要将NVM元件编程到HRS状态,那么可以将其编程到HRS或者可以完全取消选择/停用。因此,在步骤S208处,控制电路系统可以确定是否要将所选择的NVM元件写为HRS,并且如果是,那么可以停用通过所选择的NVM元件的路径(步骤S210)。可替代地,控制电路系统可以将NVM元件写为所需状态(LRS或HRS)(步骤S212)。控制电路系统112可以检查交叉点阵列中的所有非易失性存储器元件是否都已被写入(步骤S214),如果没有,那么重复选择和写入处理,直到所有NVM元件都被写入或停用。然后该处理结束。
[0128] 图10是图示如何将负权重编程到使用交叉点阵列中的并联或串联连接的NVM元件实现的人工神经网络中的电路图。在这里,对于在神经网络节点处实现/编程的每个负权重,需要负电压。这可以通过在数模转换器(DAC)内使用负参考电压来完成。对于神经网络节点处的负权重,对提供神经网络节点的列信号线进行编程,使得利用无穷大权重或HRS对正信号进行编程。负输入设有所需的权重。因此,负输入用作从列中减去电流的方式。
[0129] 因此,在实施例中,写入电路系统可以被配置为通过以下方式驱动非易失性存储器:使用访问设备选择多个非易失性存储器元件中的一个;以及取决于所生成的编程信号,驱动所选择的非易失性存储器元件。在实施例中,每个非易失性存储器元件可以耦合到开关设备,并且写入电路系统可以被配置为:使用访问设备选择多个非易失性存储器元件中的一个;以及控制耦合到所选择的非易失性存储器元件的开关设备,以激活通过所选择的非易失性存储器元件的路径。
[0130] 因此,本技术使用具有两个不同电阻状态的NVM元件来提供人工神经网络。上述技术可以使用忆阻器、ReRAM和/或CES元件作为NVM元件。使用CES元件对于减轻引起电阻值的工艺变化可以特别有用。先前的方法易受电阻值的个体变化的影响,而在本技术中,连续的电阻(或电导)值之间存在至少200%的差异。
[0131] 本技术提供了一种人工神经网络,其可以简单地通过获得用于每个应用的权重并在交叉点阵列中实现它们而容易地用于不同的应用。NVM元件可以在运行中编程,因此,可以有可能针对不同的应用重新编程相同的神经网络。例如,本文描述的ANN可以用于低功率单关键字速度触发;用于安全摄像头的简单人脸检测;或者作为物理或虚拟按钮的替代的语音激活UI。
[0132] 本技术提供了权重存储(其可以是神经网络中的显著静态功率泄漏源)并且借助于将电压转换成电流来提供神经网络处理。在处理期间不发生主动切换,这导致能量高效的ANN。
[0133] 在实施例中,本技术的ANN可以用于进一步调谐ANN权重。例如,交叉点阵列可以耦合到硬件反馈模块,该硬件反馈模块可以潜在地用于优化每个神经网络节点的权重。这可以通过测量交叉点阵列中的电流(例如,在每个神经网络节点输出处)并将测得的电流反馈回ANN以调谐存储在每个神经网络节点中的权重来实现。
[0134] 在实施例中,本技术的ANN可以包括多个交叉点阵列,其中每个交叉点阵列提供ANN的一层。例如,第一交叉点阵列可以实现将电压转换成电流的电导矩阵,并且第二交叉点阵列可以实现将电流转换成电压的电阻矩阵。第一交叉点阵列的输出可以提供第二交叉点阵列的输入,使得ANN跨越两层将电压转换成电流再转换成电压。
[0135] 在实施例中,该装置可以包括多个交叉点阵列,其中每个交叉点阵列提供多层(或分层)人工神经网络中的一层。图11a示出了使用交叉点阵列实现的分层人工神经网络的电路图,并且图11b示出了图11a的示意图。
[0136] 广义地说,本文描述的技术在人工神经网络(ANN)中实现权重和输入值的点积计算。如上面所提到的,人工神经网络(ANN)或分层ANN内的每个ANN层具有至少一条内边(即,到ANN中的输入)和至少一条外边(即,ANN的输出)。在ANN的(一条或多条)内边和(一条或多条)外边之间是多个神经网络节点。每个神经网络节点都有自己的内边和外边。本文使用的术语“点积”是指与ANN的每条内边相关联的权重与将特定边连接到神经网络节点的输入电压的量值相乘。一般而言,每个神经网络节点可以具有被多个这样的输入驱动的多条这样的边。每个神经网络节点处的计算可以在两个不同的步骤中发生。第一步包括对权重和输入量值的乘积求和(点积或乘积累加),如图1b中所示。第二步包括使用该和作为神经网络节点的激活函数的输入。激活函数是计算的非线性部分,并且可以被认为是“挤压函数”。给定特定输入,神经网络节点的激活函数定义节点的输出。在一些情况下,激活函数可以是二元的,使得节点可以被激发或不被激发。激活或挤压函数可以采取若干形式,诸如经整流的线性单元(ReLU)、双曲正切(sigmoid)函数、Heaviside阶跃函数、分段线性函数等。在最简单的情况下,挤压函数可以是二元函数:如果权重和输入的乘积之和小于零,那么神经网络节点输出“0”(或低电压),否则输出“1”(或高电压)。
[0137] 本技术提供了ANN内的点积(乘积累加)计算的低功率和能量高效实现。图11a和11b示出了包括两层的ANN的概括示意图:输入层(包括输入I0...I3)和输出层(包括输出O20...O23)。一般而言,可以存在多个神经网络节点的被隐藏层。在不失一般性的情况下,图
11a和11b示出了双层ANN,以说明如何使用本技术的交叉点阵列来提供多层ANN。交叉点阵列获取输入值(例如,输入I0...I3),并使用由阵列的每个神经网络节点处提供的非易失性存储器元件存储的权重来执行点积计算。
[0138] 到ANN的输入(例如,输入I0...I3)可以作为电压值或电流值提供。对于电压输入,交叉点阵列使用由每个节点处提供的NVM元件存储的权重将输入转换成中间输出(O*)。对于电流输入,中间输出(O*)是电压值。这些输出(O*)作为输入提供给由图11a中的三角形表示的实现激活函数(即,挤压函数,或计算的非线性部分)的电路系统。在最简单的情况下,这种挤压或激活函数可以是二元函数,例如阶跃函数,如上面所解释的。ANN中第一层的最终输出在图11a中表示为O<1,2,3,4>,并且这些输出形成到ANN中第二层的输入,如图所示。
[0139] 在实施例中,交叉点阵列可以形成人工神经网络的每个层。可替代地,交叉点阵列可以形成人工神经网络的一个或多个(但不一定是全部)层。在每种情况下,在作为输入供给人工神经网络的后续层之前,将一个交叉点阵列的输出馈送到实现激活函数计算的电路中。
[0140] 因此,在实施例中,装置的交叉点阵列是在人工神经网络中形成第一层的第一交叉点阵列,其中第一交叉点阵列包括多个输入I1p和多个输出O1q。该装置可以包括在人工神经网络中形成第二层的第二交叉点阵列,其中第二交叉点阵列包括多个输入I2r和至少一个输出O2s。在这个实施例中,该装置可以包括ANN的每层之间的另外的电路系统,以实现每层的每条输出边的激活函数。
[0141] 第一交叉点阵列的输出O1q可以耦合到第二交叉点阵列的输入I2r。在实施例中,第一交叉点阵列对电导值的线性标度进行数字编码,并且第二交叉点阵列对阻抗值的线性标度进行数字编码。在实施例中,第一交叉点阵列将电压转换成电流,并且第二交叉点阵列将电流转换成电压。
[0142] 如前面所提到的,该装置可以是受约束的资源设备,诸如物联网(IoT)设备。
[0143] 本技术提供了一种在交叉点阵列中实现可重新配置的人工神经网络的方法,该交叉点阵列包括位于行信号线和列信号线的交叉点处的至少一个神经网络节点,该方法包括:接收指定交叉点阵列的每个神经网络节点的权重的数据;将设置在每个神经网络节点处供的多个非易失性存储器元件切换到所需的阻抗状态,以在每个神经网络节点处实现指定的权重;以及使用非易失性存储器元件,存储交叉点阵列的每个神经网络节点的权重。
[0144] 本技术提供了一种实现可重新配置的人工神经网络的系统,该系统包括:如本文所述的装置;远程服务器,被配置为训练人工神经网络模型;其中该装置被配置为从远程服务器接收指定该装置的每个神经网络节点的权重的数据。
[0145] 本领域技术人员将认识到是,虽然前述内容已经描述了被认为是最佳模式以及在适当的情况下执行本技术的其它模式,但是本技术不应当限于优选实施例的本描述中所公开的具体配置和方法。本领域技术人员将认识到的是,本技术具有广泛的应用,并且实施例可以进行广泛的修改而不脱离所附权利要求中限定的任何发明构思。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用