掌桥专利:专业的专利平台
掌桥专利
首页

电子装置及其操作方法

文献发布时间:2023-06-19 19:28:50


电子装置及其操作方法

相关申请的交叉引用

本申请要求于2021年10月7日向韩国知识产权局提交的申请号为10-2021-0133461的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。

技术领域

本公开的各个实施例总体上涉及一种电子装置,并且更具体地,涉及一种电子装置以及操作该电子装置的方法。

背景技术

在神经网络中,可以使用通过简化生物神经元的功能而获得的人工神经元,并且这些人工神经元可以通过具有连接权重的连接线彼此联接。连接权重是神经网络的参数。连接权重可以是连接线的特定值,并且可以指示连接强度。神经网络可以通过使用人工神经元来执行人类认知动作或学习过程。人工神经元也可以被称为节点。

神经网络可以包括多个层。例如,神经网络可以包括输入层、隐藏层和输出层。输入层可以接收用于执行学习的输入数据并将学习数据传送到隐藏层,输出层可以基于从隐藏层中的节点接收到的信号来生成神经网络的输出数据。隐藏层可以设置在输入层与输出层之间,并且可以将从输入层传送的学习数据改变为容易预测的值。输入层中包括的节点和隐藏层中包括的节点可以通过具有连接权重的连接线彼此联接,隐藏层中包括的节点和输出层中包括的节点可以通过具有连接权重的连接线彼此联接。输入层、隐藏层和输出层中的每一个可以包括多个节点。

神经网络可以包括多个隐藏层。包括多个隐藏层的神经网络被称为深度神经网络,深度神经网络的训练被称为深度学习。隐藏层中包括的节点被称为隐藏节点。下文中,可以理解的是,训练神经网络是为了允许神经网络学习神经网络的参数。进一步地,训练后的神经网络可以被理解为已经应用所学习参数的神经网络。

此处,可以使用预设损失函数作为指标来训练神经网络。损失函数可以是用于允许神经网络通过学习来确定最优权重参数的指标。可以训练神经网络,以将使用预设损失函数获得的结果值最小化。

这种神经网络是指对生物大脑进行建模的计算架构。近来,随着神经网络技术的发展,在各种类型的电子系统中,基于一种或多种神经网络模型从输入数据中提取有效信息的技术研究已经积极展开。卷积运算占据了神经网络模型所需运算的相当一部分。

另一方面,模数转换器(ADC)可以是用于将模拟信号转换为数字信号的装置。这种ADC可以用于实施神经网络模型。例如,神经网络模型可以通过模拟信号处理方案在矩阵与向量之间执行乘法累加(MAC)运算。在这种情况下,ADC可以用于将MAC运算的结果转换为数字信号。

发明内容

本公开的各种实施例涉及一种可以通过根据输入数据调整模数转换器的输入范围来减少模数转换器的量化运算中出现的错误的电子装置和操作该电子装置的方法。

本公开的实施例可以提供一种电子装置。该电子装置可以包括交叉开关阵列(crossbar array),该交叉开关阵列包括:多个第一存储器单元,分别存储多个电导值;多个第二存储器单元,每个第二存储器单元存储在多个电导值之中确定的最大电导值;多条行线,联接到多个第一存储器单元和多个第二存储器单元,并将多个输入电压供应给多个第一存储器单元和多个第二存储器单元;多条第一列线,联接到多个第一存储器单元,并被配置成分别输出使用多个输入电压和多个电导值生成的多个输出电流;以及第二列线,联接到多个第二存储器单元,并被配置成输出使用多个输入电压和多个第二存储器单元中的每一个中存储的最大电导值生成的最大输出电流。该电子装置可以包括:多个模数转换器,分别联接到多条第一列线,多个模数转换器中的每一个接收参考电压和与多个输出电流中的每一个相对应的模拟信号电压,并被配置成基于参考电压来生成与模拟信号电压相对应的数字信号,参考电压根据最大输出电流生成。多个模数转换器中的每一个基于参考电压来确定允许模拟信号电压的最大值。

本公开的实施例可以提供一种电子装置。该电子装置可以包括交叉开关阵列,该交叉开关阵列包括:多个第一存储器单元,分别存储多个电导值;多个第二存储器单元,每个第二存储器单元存储多个电导值之中的最大电导值;多条行线,联接到多个第一存储器单元和多个第二存储器单元,并将多个输入电压供应给多个第一存储器单元和多个第二存储器单元;多条第一列线,联接到多个第一存储器单元,并被配置成分别输出使用多个输入电压和多个电导值生成的多个输出电流;以及第二列线,联接到多个第二存储器单元,并被配置成输出使用多个输入电压和多个第二存储器单元中的每一个中存储的最大电导值生成的最大输出电流。该电子装置可以包括:多个模数转换器,分别联接到多条第一列线,多个模数转换器中的每一个接收参考电压和与多个输出电流中的每一个相对应的模拟信号电压,并被配置成通过将与参考电压相对应的增益应用于模拟信号电压来将模拟信号电压转换为与模拟信号电压相对应的数字信号,参考电压根据最大输出电流生成。

本公开的实施例可以提供一种操作电子装置的方法,该电子装置包括交叉开关阵列,该交叉开关阵列包括多条行线、多条第一列线、第二列线、联接到多条行线和多条第一列线的多个第一存储器单元和联接到多条行线和第二列线的多个第二存储器单元。该方法可以包括:通过多条行线来接收多个输入电压;基于多个第二存储器单元中的每一个中存储的最大电导值和多个输入电压来生成最大输出电流,最大电导值对应于多个第一存储器单元中存储的多个电导值中的最大电导值;将最大输出电流转换为参考电压;并且基于参考电压来确定输入到与多条第一列线分别联接的多个模数转换器中的每一个的模拟信号电压的所允许的最大值。

附图说明

图1A至图1D示出了根据本公开的实施例的神经网络。

图2A示出了根据本公开的实施例的电子装置。

图2B示出了根据本公开的另一实施例的电子装置。

图3示出了根据本公开的实施例的交叉开关阵列。

图4示出了根据本公开的实施例的交叉开关阵列。

图5A至图5D示出了交叉开关阵列的存储器单元。

图6A至图6C示出了图4的交叉开关阵列的运算。

图7示出了根据本公开的实施例的模数转换器。

图8示出了图7的模数转换器的运算。

图9A至图9E示出了根据本公开的实施例的模数转换器的输入范围。

图10示出了根据本公开的实施例的电子装置。

图11A至图11D示出了根据本公开的实施例的图10的第二列线。

图12A至图12D示出了根据本公开的实施例的模数转换器的运算。

图13示出了根据本公开的另一实施例的电子装置。

图14和图15是示出根据本公开的实施例的电压缓冲器的示图。

图16示出了根据本公开的又一实施例的电子装置。

图17A和图17B示出了根据本公开的实施例的数字信号控制器。

图18A和图18B示出了根据本公开的实施例的数字信号控制器的运算。

图19示出了根据本公开的实施例的使用多个电子装置的神经网络运算。

图20是示出根据本公开的实施例的操作电子装置的方法的流程图。

图21是示出根据本公开的另一实施例的操作电子装置的方法的流程图。

图22是示出根据本公开的实施例的通过多条第一列线来输出多个输出电流的方法的流程图。

图23是示出根据本公开的实施例的通过第二列线来输出最大输出电流的方法的流程图。

图24是示出根据本公开的实施例的通过模数转换器来输出数字信号的方法的流程图。

图25是示出根据本公开的实施例的执行数字信号处理操作的方法的流程图。

图26示出了根据本公开的实施例的计算系统。

图27示出了图26的神经网络处理器。

图28示出了图27的控制器。

图29示出了图27的计算电路。

图30示出了图29的子阵列。

图31示出了根据本公开的实施例的具有分层结构的交叉开关阵列。

图32示出了根据本公开的实施例的神经网络处理器。

图33示出了根据本公开的实施例的第一神经元与第二神经元之间的连接关系。

图34是示出图33的突触中包括的忆阻器的运算特性的曲线图。

图35和图36示出了在图33的第一神经元与第二神经元之间流动的电流量的特性以及在典型的STDP运算期间尖峰发生次数之间的差与突触权重的变化之间的关系。

图37示出了根据本公开的实施例的神经网络处理器。

图38示出了根据本公开的实施例的图37的突触阵列中包括的多个突触中的一个。

图39示出了根据本公开的实施例的图37的第二神经元。

具体实施方式

本说明书或申请中引入的本公开的实施例中的特定结构或功能描述被示例成描述根据本公开的概念的实施例。根据本公开的概念的实施例可以以各种形式实践,并且不应当被解释为限于本说明书或申请中描述的实施例。

图1A至图1D示出了根据本公开的实施例的神经网络。

参照图1A,神经网络可以是深度神经网络(DNN)或n层神经网络。深度神经网络(DNN)或n层神经网络可以对应于卷积神经网络(CNN)、循环神经网络(RNN)、深度信念网络(DBN)、受限玻尔兹曼机(RBM)等。例如,在该实施例中,神经网络可以被实施为但不限于卷积神经网络(CNN)。

虽然图1A示出了卷积神经网络(CNN)包括多个卷积层,但是除了多个卷积层之外,卷积神经网络(CNN)可以进一步包括池化层、全连接层等。

神经网络可以被实施为具有多个层的架构,这些层包括输入数据、特征图和输出数据。在神经网络中,利用被称为权重的过滤器对输入数据执行第一卷积运算,并输出特征图作为第一卷积运算的结果。可以将此时所生成的输出特征图作为输入特征图利用权重来执行第二卷积运算,并且因此可以输出新的特征图作为第二卷积运算的结果。作为重复执行这种卷积运算的结果,可以输出通过神经网络识别输入数据的特征的最终结果作为输出数据。

参照图1B,可以解释神经网络中输入特征图与输出特征图之间的关系。

在神经网络的任意层中,第一特征图FM1可以对应于输入特征图,第二特征图FM2可以对应于输出特征图。每个特征图可以指示表示输入数据的各个特征的数据集。第一特征图FM1和第二特征图FM2中的每一个可以具有二维(2D)矩阵形式的元素或三维(3D)矩阵形式的元素,并且可以在每个元素中定义像素值。在3D矩阵中,第一特征图FM1和第二特征图FM2中的每一个具有宽度W(或被称为“列”)、高度H(或被称为“行”)和深度D。此处,深度D可以对应于通道的数量。因此,多个行、多个列和多个通道可以形成第一特征图FM1和第二特征图FM2中的每一个的3D矩阵。

可以对第一特征图FM1和权重执行卷积运算,并且作为卷积运算的结果,可以生成第二特征图FM2。该权重可以用于利用第一特征图FM1执行卷积运算,并且因此可以过滤第一特征图FM1中包括的特征。该权重可以用于在以滑动窗口方式沿第一特征图FM1移动滑动窗口的同时利用第一特征图FM1的窗口(或称为“图块窗口(tiles)”)来执行卷积运算。也就是说,第一特征图FM1的窗口通过沿第一特征图FM1移动滑动窗口来生成。第一特征图FM1的窗口部分彼此重叠,并且因此这些窗口可以被称为“重叠窗口”。在每个移动操作期间,可以将权重乘以并添加到第一特征图FM1中的重叠窗口中的每一个的像素值中的每一个。由于对第一特征图FM1和权重进行卷积,因此可以生成第二特征图FM2的一个通道。虽然在图1B中示出了一个权重,但是实际上可以将多个权重单独与第一特征图FM1进行卷积,并且因此可以生成具有多个通道的第二特征图FM2。

另一方面,第二特征图FM2可以对应于下一层的输入特征图。例如,第二特征图FM2可以用作下一层的输入特征图,例如,池化(或二次采样)层的输入特征图。参照图1C,神经网络可以包括输入层IL、多个隐藏层HL1和HL2以及输出层OL。虽然图1C中示出了两个隐藏层,但是隐藏层的数量可以根据实施例而变化。在图1C中,可以解释参照图1A与图1B描述的层之间的关系。

输入层IL可以包括两个输入节点x1和x2,并且输入数据IDATA可以被输入到输入节点x1和x2中的每一个。另一方面,输入层IL中包括的输入节点的数量可以根据实施例而变化。

隐藏层HL1可以包括三个隐藏节点h11、h12和h13,并且隐藏层HL2可以包括三个隐藏节点h21、h22和h23。另一方面,每个隐藏层中包括的隐藏层的数量不限于3个,可以根据实施例而变化。

输出层OL可以包括两个输出节点y1和y2,并且可以输出处理输入数据IDAT的结果作为输出数据ODATA。另一方面,输出层OL中包括的输出节点的数量可以根据实施例而变化。

图1C中所示的神经网络的架构可以包括节点之间的连接线(或分支),每个连接线由分别在两个连续层中的两个节点之间的直线来指示,虽然附图中未示出,但还可以包括在各个分支中使用的权重。在这种情况下,一个层中的节点可以不彼此联接,并且两个连续层中包括的节点可以彼此联接。

参照图1C,节点(例如,h11)可以接收先前节点(例如,x1)的输出,对先前节点(例如,x1)的输出执行运算,并将运算结果输出到后续节点(例如,h21)。此处,节点(例如,h11)可以通过将输入值应用于例如非线性函数的特定函数来计算待输出的值。

通常,神经网络的架构是预先确定的,并且与节点之间的连接线(或分支)相对应的权重可以使用数据,即其已知的标签(答案),来确定为具有合适的值。已经通过这种方式来获知的多条数据,即标签,被称为“学习数据”,并且确定权重的过程被称为“学习”。进一步地,一组可独立学习的结构和权重可以假设为“模型”,用于允许确定其权重的模型以预测输入数据所属的类别并输出其预测值的过程可以被称为“测试”过程。

图1D示出了由图1C所示的节点之中的一个节点ND执行的运算。假设n个输入a1、a2、……、an被提供给节点ND。

在实施例中,节点ND可以通过以下方式生成一个输出值:将n个输入a1、a2、……、an分别乘以n个权重w1、w2、……、wn,对乘法结果求和,将偏差b与求和值相加,并将添加了偏差b的求和值应用于特定函数σ。此处,特定函数σ可以是激活函数。

当图1C所示的神经网络中包括的一个层包括m个节点ND时,可以使用以下等式(1)来获取一个层的输出值:

W*A=Z(1)

在等式(1)中,“W”可以表示一个层中包括的所有连接线的权重,并且可以按照m*n矩阵的形式来实施。“A”可以表示由一个层接收的n个输入a1、a2、……、an,并且可以按照n*1矩阵的形式来实施。“Z”可以表示从一个层输出的m个输出,并且可以按照m*1矩阵的形式来实施。

在图1A至图1D中,为了便于描述,仅示出了神经网络的示意性架构。然而,本领域技术人员将理解的是,不同于所示架构,神经网络可以使用比附图中所示更多或更少的层、特征图或权重来实施,并且其大小可以以各种形式来改变。

图2A示出了根据本公开的实施例的电子装置200a。

电子装置200a可以是用于实施参照图1A至图1D描述的神经网络的装置。

参照图2A,电子装置200a可以包括交叉开关阵列210、多个电流电压转换器(IVC)220和多个模数转换器(ADC)230。

交叉开关阵列210可以包括以矩阵形式布置的多个存储器单元,每个存储器单元包括电阻式元件。这里,每个存储器单元可以是电阻式存储器单元。多个存储器单元中的每一个可以联接到多条行线中的一条和多条列线中的一条。随后将参照图3和图4描述交叉开关阵列210的详细结构。

交叉开关阵列210存储多个权重数据。例如,可以使用多个存储器单元中的每一个中包括的电阻式元件的电阻的变化来将多个权重数据存储在多个存储器单元中。进一步地,交叉开关阵列210可以基于多个输入电压Vin和多个权重数据来生成多个输出电流Iout。

例如,多个输入电压Vin可以通过多条行线来输入到交叉开关阵列210。多个权重数据可以通过多条列线被提供到多个存储器单元并存储在多个存储器单元中。

在实施例中,电子装置200a可以被包括在各种类型的电子装置中,诸如个人计算机(PC)、服务器装置、移动装置和嵌入式装置。电子装置200a可以对应于例如智能电话、平板装置、增强现实(AR)装置、物联网(IoT)装置、自动驾驶汽车、机器人或医疗装置中包括的硬件组件。电子装置200a可以使用神经网络来执行语音识别、图像识别、图像分类等。也就是说,电子装置200a可以对应于安装在上述电子装置中的专用硬件(HW)加速器,并且可以但不限于被用作用于驱动神经网络的专用模块的神经处理单元(NPU)、张量处理单元(TPU)、神经引擎、TrueNorth或Loihi的硬件加速器。

在实施例中,电子装置200a可以被用于驱动任意神经网络系统,诸如人工神经网络(ANN)系统、卷积神经网络(CNN)系统、深度神经网络(DNN)系统或深度学习系统和/或机器学习系统。

例如,诸如图像分类服务、基于生物特征信息的用户身份验证服务、高级驾驶辅助系统(ADAS)服务、语音助手服务和自动语音识别(ASR)服务的各种类型的服务和应用可以由电子装置200a运行和处理。在这种情况下,交叉开关阵列210中存储的数据可以是构成神经网络的多个层中包括的多个权重数据,并且多个输出电流Iout和多个信号电压Vsig可以表示由神经网络执行的乘法累加(MAC)运算的结果。换句话说,电子装置200a可以同时执行数据存储操作和计算操作。

乘法累加运算可以由多个应用使用。例如,当给出音频信号或视频信号时,用户可能需要对音频信号或视频信号进行滤波,对相应信号执行快速傅立叶变换(FFT),或者以其它方案处理模拟信号或数字信号。在这些示例中,乘法累加运算可以用于执行这种处理。考虑到乘法累加运算在离散时间信号处理或离散空间信号处理中的广泛使用,这种处理优化可能是用于提高数字信号处理效率的理想方案。

虽然没有详细示出,但是交叉开关阵列210可以基于用于选择多条行线中的至少一条的行线选择信号和用于驱动多条行线中的至少一条的行线驱动电压来驱动多条行线。

虽然没有详细示出,但是交叉开关阵列210可以基于用于选择多条列线中的至少一条的列线选择信号和用于驱动多条列线中的至少一条的列线驱动电压来驱动多条列线。

交叉开关阵列210中包括的每个存储器单元可以对应于神经网络的突触或连接线,并且可以存储一个权重数据。因此,交叉开关阵列210中存储的m*n个权重数据可以对应于以如上文参照图1A至图1D所述的一个层中包括的m*n矩阵的形式来实施的权重矩阵,即,上述等式(1)中的W。

通过多条行线施加的输入电压Vin可以对应于如图1A至1D所示的由一个层接收的n个输入a1、a2、...、an,并且可以对应于以n*1矩阵的形式来实施的输入矩阵,即上述等式(1)中的A。

从多条列线输出的输出电流Iout可以对应于如图1A至1D所示的从一个层输出的m个输出,并且可以对应于以m*1矩阵的形式来实施的输出矩阵,即上述等式(1)中的Z。

换句话说,在具有m*n矩阵形式的多个权重数据被存储在多个存储器单元中以实施交叉开关阵列210的状态下,当通过多条行线输入对应于输入数据的输入电压Vin时,通过多条列线输出的输出电流Iout可以是在神经网络中执行的乘法累加运算的结果。当神经网络的所有多个层全部通过这种方式来实施时,可以实施同时执行数据存储操作和计算操作的电子装置200a。

多个电流电压转换器(IVC)220可以联接在交叉开关阵列210与多个模数转换器230之间。多个电流电压转换器220可以将多个输出电流Iout转换成多个模拟信号电压Vsig。换句话说,电子装置200a可以使用交叉开关阵列210和多个电流电压转换器220来对多个输入电压Vin和多个权重数据执行乘法累加运算,并且可以基于乘法累加运算的结果来分别生成待输入到多个模数转换器230的各个模拟信号电压Vsig。多个电流电压转换器220中的每一个可以被实施为跨阻抗放大器(TIA,Trans-Impedance Amplifier)。

多个模数转换器230可以接收各个模拟信号电压Vsig,并且可以将模拟信号电压Vsig分别转换为多个数字信号DS。

图2B示出了根据本公开的另一实施例的电子装置200b。

参照图2B,电子装置200b可以包括交叉开关阵列210、多个电流电压转换器(IVC)220和一个模数转换器(ADC)230'。

因为图2B的交叉开关阵列210和多个电流电压转换器220具有与图2A相同的配置,所以将省略对其的重复描述。

在图2B所示的实施例中,多条列线可以共享一个模数转换器230'。在这种情况下,优点在于可以减少模数转换器的数量,因此与采用多个模数转换器的实施例相比,模数转换器的占用面积可以减小。

在下文中,为了便于描述,将在假设电子装置包括多个模数转换器的情况下进行描述。然而,这仅是示例,并且下面将描述的电子装置的配置和运算同样可以应用于共享一个模数转换器的电子装置。

图3示出了根据本公开的实施例的交叉开关阵列210。图3所示的交叉开关阵列210可以对应于图2A和图2B中的每一个的交叉开关阵列210。

为了便于描述,图3示出了4条列线和3条行线,但是列线的数量和行线的数量可以不限于此。

参照图3,交叉开关阵列210可以包括沿行方向相继布置的行线。而且,交叉开关阵列210可以包括沿列方向相继布置的列线。进一步地,交叉开关阵列210可以包括设置在行线和列线的交叉点处的多个存储器单元CELL。行线和列线的数量、形状、导电材料等可以根据实施例而变化。

例如,行线可以沿垂直于列线的方向布置。行线和列线可以形成格子或交叉开关。在列线和行线的交叉点处,行线可以设置在列线上方并且可以与列线紧密接触。在实施例中,行线和列线可以在每个交叉点处具有矩形、正方形、圆形或椭圆形截面或更复杂的截面,并且列线可以根据实施例而变化。而且,列线和行线可以具有不同的宽度或直径以及不同的交叉开关比或偏心率。

在交叉点处,存储器单元CELL可以被配置成将列线和行线彼此联接。在实施例中,存储器单元CELL可以包括列线与行线之间的物理接触。在其它实施例中,存储器单元CELL可以不包括列线与行线之间的物理接触。

此外,交叉开关阵列210可以具有将图3所示的阵列竖直堆叠多次的堆叠结构。

图4示出了根据本公开的实施例的交叉开关阵列210。图4所示的交叉开关阵列210可以对应于图2A、图2B和图3中的每一个的交叉开关阵列210。

为了便于描述,图4示出了3条列线和3条行线,但是列线的数量和行线的数量可以不限于此。

参照图4,交叉开关阵列210可以包括以矩阵形式布置的多个存储器单元CELL,每个存储器单元包括电阻式元件。电阻式元件具有随着施加到其的写入电压而变化的电阻值,并且多个存储器单元CELL可以使用这种电阻变化来存储数据。

在实施例中,每个存储器单元CELL可以基于电阻式元件的电导值来存储数据,并且电导值可以对应于电阻式元件的导电状态。存储器单元CELL可以指示各个逻辑值并通过更新电导值来存储各个数据位。

而且,电阻式元件可以被用于指示多个位。例如,具有第一电导值的电阻式元件可以指示逻辑值“0”。具有第二电导值的电阻式元件可以指示逻辑值“1”。通过改变电阻式元件的电导值,可以将不同数据存储在存储器单元CELL中。可以通过将电压施加到与存储器单元CELL联接的列线和行线来执行电导值的改变。

在实施例中,每个存储器单元CELL可以被实施成包括任意存储器单元,诸如相变随机存取存储器(PRAM)单元、电阻式随机存取存储器(RRAM)单元、磁性RAM(MRAM)单元或铁电随机存取存储器(FRAM)单元。多个存储器单元CELL中的每一个可以联接到多条行线中的一条和多条列线中的一条。

交叉开关阵列210将多个权重数据存储在多个存储器单元CELL中。此处,多个权重数据可以分别对应于多个存储器单元CELL的电导值G11、G12、G13、G21、G22、G23、G31、G32和G33。例如,可以使用多个存储器单元CELL中包括的每一个中的电阻式元件的电阻的变化来将多个权重数据存储在多个存储器单元CELL中。

进一步地,交叉开关阵列210可以对多个输入电压和多个权重数据执行乘法累加运算。例如,多个输入电压可以通过多条行线来输入到交叉开关阵列210。

交叉开关阵列210可以输出作为乘法累加运算的结果的多个输出电流。例如,可以通过多条列线来输出多个输出电流。

图5A至图5D示出了交叉开关阵列的存储器单元。

参照图5A,存储器单元CELL可以联接到一条行线和一条列线。

存储器单元CELL可以具有电阻式元件。

存储器单元CELL可以使用电阻式元件来存储对应于一个权重数据的电导值G11。例如,存储器单元CELL可以通过列线接收电导值G11,并且可以在其中存储电导值G11。

存储器单元CELL可以通过行线来接收输入电压Vin。存储器单元CELL可以通过对输入电压Vin和电导值G11执行乘法运算来输出输出电流Ir。

参照图5B,在实施例中,存储器单元CELL中包括的电阻式元件可以被实施为忆阻器。忆阻器是存储器和寄存器的组合词,并且是记忆所有先前状态的存储器元件。因为即使在电力供应中断时忆阻器也存储紧接在电力中断之前流过其中的电流方向和电流量,所以当电力供应恢复时可以恢复忆阻器之前的状态。诸如忆阻器的电阻式元件可以使用电阻电平以指示诸如1或0的特定逻辑值。当忆阻器被用作存储器单元CELL的电阻式元件时,通过施加诸如具有不同值或不同极性的电压脉冲的激活能量,使得忆阻器处于与诸如1的逻辑值相关的低电阻状态,从而累加数字运算。而且,具有不同极性或不同值的电压脉冲可能使得忆阻器处于与诸如“0”的另一逻辑值相关的高电阻状态。

忆阻器可以具有被称为忆阻的电子元件的特性。忆阻器可以具有开关电压,因此流经忆阻器并且生成低于开关电压的电压的电流可不改变忆阻器的状态。当电压的施加被阻断并且电荷的流动停止时,忆阻器可以记住其最后的电阻,而当电荷的流动恢复时,忆阻器可以具有在忆阻器最后被激活时的电阻。忆阻器可以是可变电阻器装置。忆阻器可以具有随着施加到其的写入电压而变化的电阻值,并且包括忆阻器的存储器单元CELL可以使用这种电阻变化来存储数据。

在图5C中,字线WL和位线BL可以对应于图4的行线,并且源极线SL可以对应于图4的列线。

存储器单元CELL可以包括单元晶体管CT和电阻式元件RE。此处,电阻式元件RE可以被实施为忆阻器。存储器单元CELL可以联接到到多条字线WL中的一条、多条位线BL中的一条和多条源极线SL中的一条。例如,单元晶体管CT可以包括联接到源极线SL的第一电极、联接到字线WL的栅极电极以及第二电极。电阻式元件RE可以联接到并设置在单元晶体管CT的第二电极与位线BL之间。

例如,当向字线WL施加电源电压、向位线BL施加写入电压、向源极线施加接地电压时,可以将数据“1”存储在存储器单元CELL中。进一步地,当向字线WL施加电源电压、向位线BL施加接地电压、向源极线SL施加写入电压时,可以将数据“0”存储在存储器单元CELL中。此外,当向字线WL施加电源电压、向位线BL施加读取电压、向源极线SL施加接地电压时,可以读取存储器单元CELL中存储的数据。

参照图5D,存储器单元CELL可以包括单元晶体管CT和相变材料元件PCM。单元晶体管CT可以具有联接到地的漏极端子、联接到行线的栅极端子以及联接到相变材料元件PCM的源极端子。相变材料元件PCM可以具有联接到单元晶体管CT的源极端子的第一端子和联接到列线的第二端子。相变材料元件PCM可以使用其电阻值的变化来存储数据。

另一方面,虽然在上述实施例中已经描述了交叉开关阵列210以二维(2D)阵列结构来形成的情况,但是实施例不限于此。根据另一实施例,交叉开关阵列210可以以三维(3D)阵列结构来形成。根据实施例,还可以改变存储器单元的结构。

图6A至图6C示出了图4的交叉开关阵列210的运算。

参照图6A,交叉开关阵列210可以存储对应于多个权重数据的多个电导值G11至G33。

例如,交叉开关阵列210中包括的多个存储器单元CELL可以分别存储多个电导值G11至G33。

在实施例中,交叉开关阵列210可以通过多条列线来接收由多个电导值G11至G33组成的矩阵。此处,矩阵的大小可以等于由多个存储器单元CELL组成的交叉开关阵列210的大小。

参照图6B,交叉开关阵列210可以对多个输入电压V1至V3和多个权重数据G11至G33执行乘法累加运算。

例如,交叉开关阵列210可以通过多条行线来接收与输入数据相对应的多个输入电压V1至V3。如图5A和5B所示,交叉开关阵列210可以对存储器单元CELL中存储的电导值G11至G33以及输入电压V1至V3执行乘法运算。例如,联接到多条列线之中的第一列线的存储器单元可以对第一输入电压V1和电导值G11执行乘法运算,对第二输入电压V2和电导值G21执行乘法运算,并且对第三输入电压V3和电导值G31执行乘法运算。例如,联接到多条列线之中的第二列线的存储器单元可以对第一输入电压V1和电导值G12执行乘法运算,对第二输入电压V2和电导值G22执行乘法运算,并且对第三输入电压V3和电导值G32执行乘法运算。例如,联接到多条列线之中的第三列线的存储器单元可以对第一输入电压V1和电导值G13执行乘法运算,对第二输入电压V2和电导值G23执行乘法运算,并且对第三输入电压V3和电导值G33执行乘法运算。

而且,交叉开关阵列210可以对各条列线的电导值G11至G33和输入电压V1至V3的乘法运算的结果执行累加运算。例如,对于多条列线之中的第一列线,针对对第一输入电压V1和电导值G11的乘法运算的结果、对第二输入电压V2与电导值G21的乘法运算的结果、以及对第三输入电压V3与电导值G31的乘法运算的结果执行累加运算。因此,作为乘法累加运算的结果,第一列线可以输出第一输出电流I1(=V1xG11+V2xG21+V3xG31)。例如,对于多条列线之中的第二列线,针对对第一输入电压V1和电导值G12的乘法运算的结果、对第二输入电压V2与电导值G22的乘法运算的结果、以及对第三输入电压V3与电导值G32的乘法运算的结果执行累加运算。作为乘法累加运算的结果,第二列线可以输出第二输出电流I2(=V1xG12+V2xG22+V3xG32)。例如,对于多条列线之中的第三列线,针对对第一输入电压V1和电导值G13的乘法运算的结果、对第二输入电压V2与电导值G23的乘法运算的结果、以及对第三输入电压V3与电导值G33的乘法运算的结果执行累加运算。作为乘法累加运算的结果,第三列线可以输出第三输出电流I3(=V1xG13+V2xG23+V3xG33)。

参照图6C,交叉开关阵列210可以通过对由电导值G11至G33组成的矩阵和由输入电压V1至V3组成的向量执行乘法运算来输出输出电流I1至I3。

图7示出了根据本公开的实施例的模数转换器。图7所示的模数转换器可以对应于图2A的模数转换器230。

参照图7,模数转换器230可以包括电压提供器231、比较器232和编码器233。模数转换器230可以联接到上述交叉开关阵列210。

电压提供器231可以接收参考电压Vref。电压提供器231可以根据参考电压Vref和模数转换器230中设置的分辨率(resolution)来确定多个比较电压Vc。此处,分辨率可以指示构成从模数转换器230输出的数字信号DS的位的数量。分辨率也可以被称为分辨能力。电压提供器231可以将多个比较电压Vc提供给比较器232。

比较器232可以将多个比较电压Vc中的每一个与模拟信号电压Vsig进行比较,并且可以将比较结果提供给编码器233。这种比较结果可以是指示模拟信号电压Vsig是大于还是小于多个比较电压Vc中的每一个的信息。

编码器233可以基于比较器232的比较结果来输出对应于模拟信号电压Vsig的数字信号DS。

图8示出了根据本公开的实施例的图7的模数转换器。

虽然图8示出了模数转换器230的分辨率为2位,但是根据实施例,模数转换器230的分辨率可以设置为多于或少于两位。

参照图8,电压提供器231可以包括串联连接在被供应参考电压Vref的电压供应端子与接地端子之间的多个电阻器R。电压提供器231可以使用多个电阻器R来确定多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref。电压提供器231可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref提供给比较器232。

比较器232可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref中的每一个与模拟信号电压Vsig进行比较。

例如,比较器232可以将模拟信号电压Vsig与比较电压1/2Vref进行比较。

当模拟信号电压Vsig大于比较电压1/2Vref时,比较器232可以将模拟信号电压Vsig与比较电压3/4Vref进行比较。当模拟信号电压Vsig大于比较电压3/4Vref时,比较器232可以将相应比较结果提供给编码器233。在这种情况下,参照图9A,编码器233可以基于相应比较结果来输出具有“11”的数字信号DS。不同于此,当模拟信号电压Vsig小于比较电压3/4Vref时,比较器232可以将相应比较结果提供给编码器233。在这种情况下,参照图9A,编码器233可以基于相应比较结果来输出具有“10”的数字信号DS。

另一方面,当模拟信号电压Vsig小于比较电压1/2Vref时,比较器232可以将模拟信号电压Vsig与比较电压1/4Vref进行比较。当模拟信号电压Vsig大于比较电压1/4Vref时,比较器232可以将相应比较结果提供给编码器233。在这种情况下,参照图9A,编码器233可以基于相应比较结果来输出具有“01”的数字信号DS。不同于此,当模拟信号电压Vsig小于比较电压1/4Vref时,比较器232可以将相应比较结果提供给编码器233。在这种情况下,参照图9A,编码器233可以基于相应比较结果来输出具有“00”的数字信号DS。

图9A至图9E示出了根据实施例的图7的模数转换器230的输入范围。

模数转换器230的输入范围可以是防止模数转换器230过载的最大动态范围。在实施例中,术语“输入范围”可以被指定为“量化范围”。

图9A和图9B示出了模数转换器230的分辨率为2位。然而,根据实施例,模数转换器的分辨率可以被设置为另一值。

参照图9A,模数转换器230的输入范围可以指示从为“0”的最小值到参考电压Vref的最大值的范围。

而且,如上面参照图7和图8所述,模数转换器230可以根据参考电压Vref和分辨率来确定多个比较电压。例如,当分辨率为2位时,模数转换器230可以输出指示数字值为“00”、“01”、“10”和“11”中的任意一个的数字信号。因为模数转换器230可以输出数字信号,每个数字信号对应于四个数字值中的一个,所以可以在输入范围内确定分别识别四个数字值的多个比较电压。即,输入范围被多个比较电压划分为四个区段,四个区段分别对应于四个数字值。

例如,模数转换器230可以确定多个比较电压,包括参考电压Vref、大小对应于参考电压Vref的3/4的电压(即,3/4Vref)、大小对应于参考电压Vref的1/2的电压(即,1/2Vref)、大小对应于参考电压Vref的1/4的电压(即,1/4Vref)和为0的电压。在这种情况下,当存在位于参考电压Vref与大小对应于参考电压Vref的3/4的电压(即,3/4Vref)之间的模拟信号电压Vsig时,模数转换器230可以输出指示“11”的数字信号。进一步地,当存在位于大小对应于参考电压Vref的3/4的电压(即,3/4Vref)与大小对应于参考电压Vref的1/2的电压(即,1/2Vref)之间的模拟信号电压Vsig时,模数转换器230可以输出指示“10”的数字信号。此外,当存在位于大小对应于参考电压Vref的1/2的电压(即,1/2Vref)与大小对应于参考电压Vref的1/4的电压(即,1/4Vref)之间的模拟信号电压Vsig时,模数转换器230可以输出指示“01”的数字信号。此外,当存在位于大小对应于参考电压Vref的1/4的电压(即,1/4Vref)与为0的电压之间的模拟信号电压Vsig时,模数转换器230可以输出指示“00”的数字信号。

参照图9B,不同于图9A的实施例,模数转换器230的输入范围可以是从对应于参考电压Vref的负值的最小值到对应于参考电压Vref的正值的最大值的范围。

而且,如上面参照图7和图8所述,模数转换器230可以根据参考电压Vref和分辨率来确定多个比较电压。例如,当分辨率为2位时,模数转换器230可以输出指示为“00”、“01”、“10”和“11”中的任意一个的数字信号。因为模数转换器230可以输出分别对应于四种情况的数字信号,所以可以在输入范围内确定识别四种情况的多个比较电压。

例如,模数转换器230可以确定多个比较电压,包括参考电压Vref、大小与参考电压Vref的1/2相对应的电压(即,1/2Vref)、为0的电压、大小与参考电压Vref的1/2相对应的负电压(即,-1/2Vref)、以及负参考电压-Vref。在这种情况下,当存在位于参考电压Vref与大小对应于参考电压Vref的1/2的电压(即,1/2Vref)之间的模拟信号电压Vsig时,模数转换器230可以输出指示“11”的数字信号。此外,当存在位于大小对应于参考电压Vref的1/2的电压(即,1/2Vref)与为0的电压之间的模拟信号电压Vsig时,模数转换器230可以输出指示“10”的数字信号。此外,当存在位于为0的电压与大小对应于参考电压Vref的1/2的负电压(即,-1/2Vref)之间的模拟信号电压Vsig时,模数转换器230可以输出指示“01”的数字信号。进一步地,当存在位于大小对应于参考电压Vref的1/2的负电压(即,-1/2Vref)与负参考电压-Vref之间的模拟信号电压Vsig时,模数转换器230可以输出指示“00”的数字信号。

下文中,为了便于描述,将在假设输入范围的最小值为0的情况下进行描述。然而,这仅是示例,并且下面将描述的电子装置的配置和运算同样可以应用于输入范围的最小值为参考电压Vref的负值(即,-Vref)的情况。

详细地,图9C示出了根据本公开的实施例的输入到模数转换器230的模拟信号电压的分布。在图9C中,由实线指示的波形图可以表示与第一输入数据相对应的模拟信号电压的分布A,并且由虚线指示的波形图可以表示与第二输入数据相对应的模拟信号电压的分布B。

在实施例中,交叉开关阵列210可以接收与输入数据相对应的输入电压,并且可以通过对输入电压和交叉开关阵列210中存储的电导值执行乘法累加运算来输出模拟信号电压。此处,模拟信号电压的分布可能因输入数据而异。

例如,与第一输入数据相对应的模拟信号电压的分布A可以具有作为最大值的幅度V1。不同于此,与第二输入数据相对应的模拟信号电压的分布B可以具有作为最大值的幅度V2。也就是说,模拟信号电压可以具有的最大值可能随着相应的输入数据而变化。

图9D是示出落入根据本公开的实施例的模数转换器230的输入范围内的模拟信号电压的曲线图。

在图9D的曲线图中,纵轴表示模拟信号电压的幅度,横轴表示时间。

参照图9D,模数转换器230的输入范围可以被设置为从0到参考电压Vref的范围。

在实施例中,模拟信号电压可以落入模数转换器230的输入范围内。例如,模拟信号电压的最大值可以小于参考电压Vref。在这种情况下,在对模拟信号电压的量化操作中出现错误的概率可能较低。

图9E是示出超出根据本公开的实施例的模数转换器230的输入范围的模拟信号电压的曲线图。

在图9E的曲线图中,纵轴表示模拟信号电压的幅度,横轴表示时间。

参照图9E,模数转换器230的输入范围可以被设置为从0到参考电压Vref的范围。

在实施例中,模拟信号电压可以超出模数转换器230的输入范围。例如,模拟信号电压的最大值可以大于参考电压Vref。在这种情况下,在对模拟信号电压的量化操作中出现错误的概率可能较高。

如上所述,模数转换器230可以利用预设分辨率来量化输入范围内的电压周期。此处,当使用交叉开关阵列210进行乘法累加运算的结果落入模数转换器230的输入范围内时,图2A或图2B所示的电子装置200a或200b可以减少由于量化操作而出现的错误。例如,神经网络可以使用学习数据来执行学习。此处,当根据学习数据基于参考电压来确定模数转换器230的输入范围时,由于与应用训练后的神经网络的各种类型的服务相对应的输入数据分布发生改变,因此由量化操作导致的错误可能增加。因此,需要一种用于根据输入数据来确定模数转换器230的输入范围的方案。

图10示出了根据本公开的实施例的电子装置1000a。

参照图10,电子装置1000a可以包括交叉开关阵列1010、多个电流电压转换器(IVC)1020和多个模数转换器(ADC)1030。

在图10中,多个电流电压转换器1020和多个模数转换器1030可以分别对应于图2A和图2B的多个电流电压转换器220和多个模数转换器230。因此,将省略对多个电流电压转换器1020和多个模数转换器1030的重复描述。

交叉开关阵列1010可以包括多条行线、多条第一列线、第二列线和多个存储器单元CELL。

虽然图10示出了3条行线和3条第一列线,但是可以根据实施例以各种方式来应用行线的数量和列线的数量。

多个存储器单元CELL的第一部分中包括的每个存储器单元可以联接到多条行线中的相应一条和多条第一列线中的相应一条。多个存储器单元CELL的第二部分中包括的每个存储器单元可以联接到多条行线的相应一条和第二列线中。

多条行线可以接收对应于输入数据的多个输入电压。在图10中,输入电压V1至V3可以提供给与各条行线联接的多个存储器单元CELL。

多条第一列线中的每一条可以联接到与多条行线联接的多个存储器单元CELL。联接到多条第一列线的多个存储器单元CELL的第一部分可以存储分别对应于多个权重数据的多个电导值G11至G33。第一列线可以以与上面参照图2A描述的多条列线相同的方式来实施。

在实施例中,交叉开关阵列1010可以对多个输入电压V1至V3和多个电导值G11至G33执行乘法累加运算,并且分别通过多条第一列线来输出多个输出电流I1至I3。详细地,可以对多个输入电压V1至V3和多个电导值G11至G33执行乘法运算。此后,可以对多条第一列线中的每一条的乘法运算的结果执行累加运算。因此,作为对多个输入电压V1至V3和多个电导值G11至G33执行乘法累加运算的结果,多条第一列线可以分别输出多个输出电流I1至I3。

第二列线可以联接到与多条行线联接的多个存储器单元CELL的第二部分。在实施例中,联接到第二列线的每个存储器单元CELL可以存储最大电导值Gmax。此处,最大电导值Gmax可以对应于具有多个电导值G11至G33之中的最大大小的电导值。例如,当第22电导值G22具有最大大小时,最大电导值Gmax可以被确定为与第22电导值G22相同。

另一方面,虽然在上述示例中描述了联接到第二列线的所有存储器单元CELL全部存储最大电导值Gmax的假设,但是实施例不限于此。在另一实施例中,联接到第二列线的存储器单元CELL中的每一个可以存储从联接到多条行线中的相应一条的存储器单元中存储的电导值之中选择的最大电导值,多条行线联接到与第二列线联接的每个存储器单元CELL。例如,联接并设置在第一行线与第二列线之间的存储器单元CELL的电导值可以对应于联接到并设置在第一行线与多条第一列线之间的存储器单元CELL中存储的电导值G11、G12和G13之中具有最大大小的电导值。联接到并设置在第二行线与第二列线之间的存储器单元CELL的电导值可以对应于联接到并设置在第二行线与多条第一列线之间的存储器单元CELL中存储的电导值G21、G22和G23之中具有最大大小的电导值。联接到并设置在第三行线与第二列线之间的存储器单元CELL的电导值可以对应于联接到并设置在第三行线与多条第一列线之间的存储器单元CELL中存储的电导值G31、G32和G33之中具有最大大小的电导值。

下文中,为了便于描述,将在联接到第二列线的所存储器单元CELL全部存储相同的最大电导值Gmax的假设下进行描述。

在实施例中,第二列线可以基于对多个输入电压V1至V3和最大电导值Gmax执行乘法累加运算的结果来输出最大输出电流Imax。详细地,对多个输入电压V1至V3中的每一个和联接到第二列线的存储器单元CELL中的每一个中存储的最大电导值Gmax执行乘法运算。此后,对各个乘法运算的结果执行累加运算。第二列线可以输出作为对多个输入电压V1至V3和最大电导值Gmax执行乘法累加运算的结果的最大输出电流Imax。

多个电流电压转换器1020中的每一个可以联接到多条第一列线中的相应一条或第二列线。

在实施例中,多个电流电压转换器1020可以分别联接到多条第一列线和第二列线,可以将来自多条第一列线的多个输出电流I1至I3转换成多个模拟信号电压Vsig,并且可以将来自第二列线的最大输出电流Imax转换为参考电压Vref。例如,多个电流电压转换器1020之中的联接到多条第一列线中的任意一个的电流电压转换器1020可以将多个输出电流I1至I3中的相应一个转换成多个模拟信号电压Vsig中的相应一个。进一步地,多个电流电压转换器1020之中的联接到第二列线的电流电压转换器1020可以将最大输出电流Imax转换为参考电压Vref。

此外,多个电流电压转换器1020可以分别联接到多个模数转换器1030,并且可以将多个模拟信号电压Vsig和参考电压Vref提供给多个模数转换器1030。例如,多个电流电压转换器1020之中的联接到多条第一列线中的一条的IVC 1020可以将多个模拟信号电压Vsig中的相应一个提供给与其联接的模数转换器1030。而且,多个电流电压转换器1020之中的联接到第二列线的IVC 1020可以将参考电压Vref提供给多个模数转换器1030。

多个模数转换器1030可以分别联接到多条第一列线。

在实施例中,多个模数转换器1030可以将多个模拟信号电压Vsig分别转换成多个数字信号DS。

例如,多个模数转换器1030中的每一个可以接收与多个输出电流I1至I3之中的从第一列线中的相应一条输出的输出电流相对应的模拟信号电压Vsig。此外,多个模数转换器1030可以从联接到第二列线的IVC 1020接收参考电压Vref。

另外,多个模数转换器1030中的每一个可以基于根据参考电压Vref确定的输入范围来将模拟信号电压Vsig转换为数字信号DS。在实施例中,如图9A所示,多个模数转换器1030中的每一个可以将参考电压Vref确定为输入范围的最大值,并且可以将0值确定为输入范围的最小值。

在另一实施例中,如图9B所示,多个模数转换器1030可以将参考电压Vref的负值确定为输入范围的最小值,并且可以将参考电压Vref的正值确定为输入范围的最大值。此处,输入范围的最大值可以对应于输入到多个模数转换器1030的模拟信号电压Vsig的最大值。进一步地,输入范围的最小值可以对应于输入到多个模数转换器1030的模拟信号电压Vsig的最小值。

在实施例中,多个模数转换器1030可以基于参考电压Vref和各个模拟信号电压Vsig之间的比较结果来输出各个数字信号DS。例如,多个模数转换器1030可以根据参考电压Vref和预设分辨率确定多个比较电压。多个模数转换器1030可以输出基于多个比较电压与模拟信号电压Vsig之间的比较结果而确定的数字信号DS。

在实施例中,当模拟信号电压Vsig的大小大于参考电压Vref的大小时,多个模数转换器1030可以将模拟信号电压Vsig的大小改变为与参考电压Vref的大小相同。多个模数转换器1030可以基于参考电压Vref和大小改变后的模拟信号电压Vsig之间的比较结果来输出数字信号DS。

在实施例中,多个模数转换器1030可以将与参考电压Vref相对应的增益施加到模拟信号电压Vsig,并且然后将被施加增益的模拟信号电压Vsig转换成数字信号DS。例如,多个模数转换器1030可以使用自动增益控制(AGC)技术来优化将模拟信号电压Vsig转换成数字信号DS的操作。因此,多个模数转换器1030可以减少在将模拟信号电压Vsig转换为数字信号DS的操作中可能出现的错误。

在实施例中,多个模数转换器1030可以基于多个比较电压和被施加与参考电压Vref相对应的增益的模拟信号电压Vsig之间的比较结果来输出数字信号DS。

而且,多个模数转换器1030可以根据参考电压Vref来控制增益,然后基于增益来优化模数转换器1030的输入范围。在实施例中,当模拟信号电压Vsig的大小大于参考电压Vref的大小时,多个模数转换器1030可以控制增益,使得被施加增益的模拟信号电压Vsig的大小小于或等于参考电压Vref的大小。

另一方面,虽然在上述实施例中已经描述了将自动增益控制技术应用于模数转换器1030的情况,但是实施例不限于此。例如,电子装置可以进一步包括用于缓冲输入到模数转换器1030的模拟信号电压Vsig的电压缓冲器。稍后将参照图13详细地描述该配置。

因此,根据本公开的实施例,参考电压Vref可以根据输入数据来确定,并且模数转换器1030的输入范围基于参考电压Vref而改变,因此可以减少量化操作中出现的错误。

图11A至图11D示出了根据本公开的实施例的第二列线。

图11A的交叉开关阵列1010a示出了图10的交叉开关阵列1010的示例。

参照图11A,交叉开关阵列1010a可以包括联接到第二列线的多个存储器单元1101a至1103a。此处,多个存储器单元1101a至1103a可以是电阻式存储器单元。例如,多个存储器单元1101a至1103a可以包括电阻式元件。存储器单元1101a至1103a中包括的电阻式元件可以被实施为忆阻器。电阻式元件可以具有随着施加到其的写入电压而变化的电阻值,并且存储器单元1101a至1103a中的每一个可以使用这种电阻变化来存储数据。

多个存储器单元1101a至1103a中的每一个可以存储最大电导值Gmax。

例如,交叉开关阵列1010a可以存储多个电导值G11至G33和最大电导值Gmax。

例如,联接到交叉开关阵列1010a的多条第一列线的多个存储器单元CELL可以分别存储多个电导值G11至G33。联接到第二列线的多个存储器单元1101a至1103a中的每一个可以存储最大电导值Gmax。

在实施例中,交叉开关阵列1010a可以通过包括多条第一列线和第二列线的多条列线来接收具有矩阵的形式的多个电导值G11至G33和最大电导值Gmax。

图11B的交叉开关阵列1010b示出了图10的交叉开关阵列1010的示例。

参照图11B,交叉开关阵列1010b可以包括联接到第二列线的多个存储器单元1101b至1103b。

例如,多个存储器单元1101b至1103b可以包括多个电阻器,每个电阻器具有固定的电导值。多个电阻器的电导值可以彼此相等,并且可以大于交叉开关阵列1010b中存储的电导值G11至G33。例如,多个电阻器的电导值可以是最大电导值Gmax。在实施例中,多个电阻器的电导值可以在交叉开关阵列1010b的设计阶段设置。

例如,交叉开关阵列1010b可以通过多条第一列线来接收具有矩阵的形式的多个电导值G11至G33。联接到多条第一列线的多个存储器单元CELL可以分别存储多个电导值G11至G33。

联接到第二列线的多个存储器单元1101b至1103b中的每一个可以具有最大电导值Gmax。

图11C的多个存储器单元1101至1103可以分别对应于图11A的多个存储器单元1101a至1103a。多个存储器单元1101a到1103a的描述可以同样应用于图11C的多个存储器单元1101到1103。

参照图11C,多个存储器单元1101至1103中的每一个可以存储最大电导值Gmax。

联接到第二列线的多个存储器单元1101至1103可以分别从与其联接的多条行线接收多个输入电压V1至V3。存储器单元1101至1103中的每一个可以对输入电压V1至V3中的相应一个和最大电导值Gmax执行乘法运算。例如,第一存储器单元1101可以接收第一输入电压V1。第一存储器单元1101可以对第一输入电压V1和最大电导值Gmax执行乘法运算。进一步地,第二存储器单元1102可以接收第二输入电压V2。第二存储器单元1102可以对第二输入电压V2和最大电导值Gmax执行乘法运算。进一步地,第三存储器单元1103可以接收第三输入电压V3。第三存储器单元1103可以对第三输入电压V3和最大电导值Gmax执行乘法运算。

此后,第二列线可以针对对多个存储器单元1101至1103执行的乘法运算的结果执行累加运算。例如,第二列线可以针对对第一输入电压V1和最大电导值Gmax的乘法运算的结果、对第二输入电压V2与最大电导值Gmax的乘法运算的结果、以及对第三输入电压V3与最大电导值Gmax的乘法运算的结果执行累加运算。第二列线可以输出作为累加运算的结果的最大电流Imax。

联接到第二列线的IVC 1020可以将最大输出电流Imax转换为参考电压Vref。

图11D的交叉开关阵列1010c示出了图10的交叉开关阵列1010的示例。

不同于图11A和图11B所示的交叉开关阵列1010a和1010b,图11D的交叉开关阵列1010c可以具有联接到第二列线的多个存储器单元1101c、1102c和1103c中分别存储的不同的电导值Gmax1、Gmax2和Gmax 3。

在实施例中,交叉开关阵列1010c可以通过包括多条第一列线和第二列线的多条列线来接收具有矩阵的形式的多个电导值G11至G33、Gmax1、Gmax2和Gmax3。

交叉开关阵列1010c可以存储多个电导值G11至G33、Gmax1、Gmax2和Gmax3。

联接到多条第一列线的多个存储器单元CELL可以分别存储多个电导值G11至G33。

联接到第二列线的多个存储器单元1101c至1103c可以分别存储电导值Gmax1、Gmax2和Gmax3。例如,联接到并设置在第一行线与第二列线之间的存储器单元1101c可以存储电导值Gmax1,电导值Gmax1对应于联接到并设置在第一行线与多条第一列线之间的存储器单元CELL中存储的电导值G11、G12和G13之中的、具有最大大小的电导值。联接到并设置在第二行线与第二列线之间的存储器单元1102c可以存储电导值Gmax2,电导值Gmax2对应于联接到并设置在第二行线与多条第一列线之间的存储器单元CELL中存储的电导值G21、G22和G23之中的、具有最大大小的电导值。联接到并设置在第三行线与第二列线之间的存储器单元1103c可以存储电导值Gmax3,电导值Gmax3对应于联接到并设置在第三行线与多条第一列线之间的存储器单元CELL中存储的电导值G31、G32和G33之中的、具有最大大小的电导值。

图12A至图12D示出了根据本公开的实施例的模数转换器1030的运算。模数转换器1030可以对应于图10的模数转换器1020。

模数转换器1030可以包括电压提供器1031、比较器1032和编码器1033。

图12A至图12D所示的电压提供器1031、比较器1032和编码器1033可以以与图7和图8所示的电压提供器231、比较器232和编码器233相同的方式来实施。

进一步地,图12A至图12D所示的模数转换器1030的分辨率可以是2位。

参照图12A,电压提供器1031可以从联接到第二列线的电流电压转换器接收10mV的参考电压Vref。在实施例中,电压提供器1031可以根据参考电压Vref和2位分辨率来确定多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref。电压提供器1031可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref提供给比较器1032。

比较器1032可以接收10mV的模拟信号电压Vsig。

比较器1032可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref与模拟信号电压Vsig进行比较。比较器1032可以将比较结果提供给编码器1033。

编码器1033可以基于比较结果来输出与10mV的模拟信号电压Vsig相对应的数字信号DS。因为根据比较结果确定10mV的模拟信号电压Vsig大于比较电压3/4Vref,所以模拟信号电压Vsig可以是位于比较电压Vref和比较电压3/4Vref之间的电压,即,其在最接近模数转换器1030的输入范围的最大值Vref的第一电压区段中。因此,参照图9A,编码器1033可以将由2位表示的值之中的最大值“11”作为数字信号DS输出。

参照图12B,电压提供器1031可以从联接到第二列线的电流电压转换器接收10mV的参考电压Vref。在实施例中,电压提供器1031可以根据参考电压Vref和2位分辨率来确定多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref。电压提供器1031可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref提供给比较器1032。

比较器1032可以接收6mV的模拟信号电压Vsig。

比较器1032可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref与模拟信号电压Vsig进行比较。比较器1032可以将比较结果提供给编码器1033。

编码器1033可以基于比较结果来输出与6mV的模拟信号电压Vsig相对应的数字信号DS。因为根据比较结果,6mV的模拟信号电压Vsig小于比较电压3/4Vref并且大于比较电压1/2Vref,所以模拟信号电压Vsig可以是位于比较电压3/4Vref与比较电压1/2Vref之间的电压,即,其在模数转换器1030的输入范围的第二电压区段中。因此,参照图9A,编码器1033可以输出“10”作为数字信号DS。

参照图12C,电压提供器1031可以从联接到第二列线的电流电压转换器接收5mV的参考电压Vref。在实施例中,电压提供器1031可以根据参考电压Vref和2位分辨率来确定多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref。电压提供器1031可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref提供给比较器1032。

比较器1032可以接收5mV的模拟信号电压Vsig。

比较器1032可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref与模拟信号电压Vsig进行比较。比较器1032可以将比较结果提供给编码器1033。

编码器1033可以基于比较结果来输出与5mV的模拟信号电压Vsig相对应的数字信号DS。因为根据比较结果,5mV的模拟信号电压Vsig大于比较电压3/4Vref,所以模拟信号电压Vsig可以是位于比较电压Vref与比较电压3/4Vref之间的电压,即,其在最接近模数转换器1030的输入范围的最大值的第一电压区段中。因此,参照图9A,编码器1033可以将由2位表示的值之中的最大值“11”作为数字信号DS输出。

图12A和图12C示出了模拟信号电压Vsig具有彼此不同的电压电平,但其数字信号彼此相等。因此,根据本公开的实施例,因为基于与输入数据相对应的输入电压计算最大输出电流Imax,并且与最大输出电流Imax相对应的电压被设置为参考电压Vref,所以模数转换器的输入范围根据输入数据来确定。

参照图12D,电压提供器1031可以从联接到第二列线的电流电压转换器接收10mV的参考电压Vref。在实施例中,电压提供器1031可以根据参考电压Vref和2位分辨率来确定多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref。电压提供器1031可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref提供给比较器1032。

比较器1032可以接收11mV的模拟信号电压Vsig。因为模拟信号电压Vsig的大小大于参考电压Vref的大小,所以比较器1032可以将模拟信号电压Vsig的大小改变为与参考电压Vref的大小相同。

比较器1032可以将多个比较电压Vref、3/4Vref、1/2Vref和1/4Vref与大小改变后的模拟信号电压Vsig进行比较。比较器1032可以将比较结果提供给编码器1033。

编码器1033可以基于比较结果来输出与11mV的模拟信号电压Vsig相对应的数字信号DS。因为根据比较结果,11mV的模拟信号电压Vsig大于比较电压3/4Vref,所以模拟信号电压Vsig可以是位于比较电压Vref与比较电压3/4Vref之间的电压,即,其在最接近模数转换器1030的输入范围的最大值Vref的第一电压区段中。因此,参照图9A,编码器1033可以输出“11”作为数字信号DS。

图12D示出了模拟信号电压Vsig具有比参考电压Vref更大的电压电平,但是模数转换器1030可以调整模拟信号电压Vsig的大小,使得模拟信号电压Vsig落入根据参考电压Vref确定的输入范围内。

图13示出了根据本公开的另一实施例的电子装置1000b。

参照图13,与图10所示的电子装置1000a相比,电子装置1000b进一步包括多个电压缓冲器1040。在图13中,交叉开关阵列1010、多个电流电压转换器(IVC)1020和多个模数转换器(ADC)1030与图10中的交叉开关阵列1010、多个电流电压转换器(IVC)1020和多个模数转换器(ADC)1030相同,因此省略其描述。

多个电压缓冲器1040中的每一个可以联接到并设置在多个电流电压转换器1020中的相应一个与多个ADC 1030中的相应一个之间。多个电压缓冲器1040中的每一个可以联接到多条第一列线中的相应一条。

在实施例中,多个电压缓冲器1040中的每一个可以从与其联接的第一列线接收模拟信号电压Vsig。例如,多个电压缓冲器1040可以分别从与其联接的各个IVC 1020接收多个模拟信号电压Vsig。

在实施例中,多个电压缓冲器1040中的每一个可以缓冲模拟信号电压Vsig,并且可以输出缓冲后的模拟信号电压Vsig'。在模拟信号电压Vsig被输入到ADC 1030的过程中,噪声可能被包含在模拟信号电压Vsig中。多个电压缓冲器1040中的每一个可以通过缓冲模拟信号电压Vsig来消除包含在模拟信号电压Vsig中的噪声。

在实施例中,多个电压缓冲器1040可以基于参考电压Vref来确定输出电压的最大值。此处,输出电压可以是缓冲后的模拟信号电压Vsig'。例如,多个电压缓冲器1040可以从联接到第二列线的IVC 1020接收参考电压Vref。

多个电压缓冲器1040中的每一个可以将参考电压Vref的大小与相应模拟信号电压Vsig的大小进行比较。当模拟信号电压Vsig的大小不大于参考电压Vref的大小时,多个电压缓冲器1040中的每一个可以根据电压增益来输出缓冲后的模拟信号电压Vsig'。另一方面,当模拟信号电压Vsig的大小大于参考电压Vref的大小时,多个电压缓冲器1040中的每一个可以将具有与参考电压Vref相同大小的缓冲后的模拟信号电压Vsig'输出到多个ADC 1030中的相应一个。也就是说,当模拟信号电压Vsig的大小大于参考电压Vref的大小时,缓冲后的模拟信号电压Vsig'的大小可以等于参考电压Vref的大小。

多个ADC 1030可以分别从多个电压缓冲器1040接收缓冲后的模拟信号电压Vsig'。进一步地,多个ADC 1030可以从联接到第二列线的IVC 1020接收参考电压Vref。多个ADC 1030可以基于参考电压Vref和缓冲后的模拟信号电压Vsig之间的比较结果来输出各个数字信号DS。

因此,根据本公开的实施例,每个ADC 1030的输入范围可以附加地由相应电压缓冲器1040控制,因此可以通过使用相应电压缓冲器1040确定ADC 1030的输入范围来减少在ADC 1030的量化操作中出现的错误。

图14和图15是示出根据本公开的实施例的电压缓冲器1040a及其操作的示图。

图14所示的电压缓冲器1040a可以表示图13所示的电压缓冲器1040的示例。

参照图14,电压缓冲器1040a可以使用源极跟随器来实施。电压缓冲器1040a可以包括串联连接在电源与接地端子之间的MOS晶体管和电阻器Rs。

例如,电压缓冲器1040a可以以如下结构来配置:联接到电源的公共端子联接到MOS晶体管的漏极的公共漏极。此处,参考电压Vref可以被设置为由电源提供的电源电压。

参照图15,当输入到MOS晶体管的栅极的模拟信号电压Vsig小于阈值电压Vth时,MOS晶体管截止,因此输出电压Vout(或Vsig')可为0。当输入到电压缓冲器1040a的模拟信号电压Vsig等于或大于阈值电压Vth时,可以在电流流经电阻器Rs的同时输出与模拟信号电压Vsig相对应的输出电压Vout(或Vsig')。当模拟信号电压Vsig等于或大于参考电压Vref时,输出电压Vout(或Vsig')可以等于参考电压Vref。

另一方面,电压缓冲器1040a的电压增益可以具有接近“1”的值,但是根据实施例可以将其设置为各种值中的一种。

例如,当模拟信号电压Vsig的大小不大于阈值电压Vth的大小时,MOS晶体管截止,因此电压缓冲器1040a可以不输出任何电压。也就是说,输出电压Vout(或Vsig')为0V。

另一方面,当模拟信号电压Vsig的大小等于或大于阈值电压Vth的大小并且不大于参考电压Vref的大小时,MOS晶体管导通,因此输出电压Vout(或Vsig')可以具有与模拟信号电压Vsig的大小相对应的电压电平。

当模拟信号电压Vsig的大小大于参考电压Vref的大小时,输出电压Vout(或Vsig')可以具有与参考电压Vref相同的大小。

也就是说,从电压缓冲器1040a输出的输出电压Vout(或Vsig')的最大值可以设置为参考电压Vref。因此,即使高于参考电压Vref的模拟信号电压Vsig被施加到电压缓冲器1040a,输出电压Vout(或Vsig')的大小也可以不大于参考电压Vref的大小。

例如,当电压缓冲器1040a接收到10mV的参考电压Vref时,从电压缓冲器1040a输出的最大值可以是10mV。当电压缓冲器1040a接收到10mV的模拟信号电压Vsig时,因为模拟信号电压Vsig的大小大于阈值电压Vth的大小并且不大于参考电压Vref的大小,所以电压缓冲器1040a可以输出其中电压缓冲器1040a的电压增益被施加到模拟信号电压Vsig的输出电压Vout(或Vsig')。

在另一示例中,当电压缓冲器1040a接收到10mV的参考电压Vref时,从电压缓冲器1040a输出的最大值可以是10mV。当电压缓冲器1040a接收到5mV的模拟信号电压Vsig时,因为模拟信号电压Vsig的大小大于阈值电压Vth的大小并且不大于参考电压Vref的大小,所以电压缓冲器1040a可以输出其中电压增益被施加到模拟信号电压Vsig的输出电压Vout(或Vsig')。

在又一示例中,当电压缓冲器1040a接收到10mV的参考电压Vref时,从电压缓冲器1040a输出的最大值可以是10mV。当电压缓冲器1040a接收到11mV的模拟信号电压Vsig时,因为模拟信号电压Vsig的大小大于参考电压Vref的大小,所以电压缓冲器1040a可以输出最大值为10mV的输出电压Vout(或Vsig')。

图16示出了根据本公开的又一实施例的电子装置1000c。

参照图16,与图13所示的电子装置1000b相比,电子装置1000c进一步包括数字信号处理器1050。在图16中,交叉开关阵列1010、多个电流电压转换器(IVC)1020、多个模数转换器(ADC)1030和多个电压缓冲器1040由于与图13中的交叉开关阵列1010、多个电流电压转换器(IVC)1020、多个模数转换器(ADC)1030和多个电压缓冲器1040相同,因此省略其描述。

数字信号处理器1050可以联接到多个ADC 1030。另一方面,虽然图16示出了一个数字信号处理器1050,但是电子装置1000c中包括的数字信号处理器的数量可以根据实施例而变化。

数字信号处理器1050可以根据多个输入数据来接收从多个ADC1030输出的多个数字信号DS。此处,可以基于多个输入范围来获得多个数字信号DS。多个输入范围分别根据多个参考电压来确定。在实施例中,可以基于在不同时间点输入的多个输入数据和最大电导值来生成多个参考电压。

而且,数字信号处理器1050可以接收与参考电压Vref相对应的数字参考信号Dref。例如,ADC 1030'可以联接到并设置在第二列线与数字信号处理器1050之间。ADC1030'可以接收参考电压Vref,并且可以将参考电压Vref转换为数字参考信号Dref。ADC1030'可以将数字参考信号Dref提供给数字信号处理器1050。

在实施例中,数字信号处理器1050可以基于数字信号DS和数字参考信号Dref来输出数字运算信号DS'。此处,数字运算信号DS'可以是具有与先前正态分布范围相对应的分布范围的数字信号。此处,先前正态分布范围可以是与多个数字信号DS相对应的多个模拟信号电压Vsig的正态分布范围。也就是说,先前正态分布范围可以表示在由ADC 1030将模拟信号电压转换为Vsig数字信号DS之前由模拟信号电压Vsig的连续值形成的范围。

在实施例中,数字信号处理器1050可以对数字信号DS和数字参考电压Dref执行乘法运算,并输出作为乘法运算的结果的数字运算信号DS'。

在实施例中,数字信号处理器1050可以在不同时间点基于多个参考电压和从施加多个参考电压的多个ADC 1030输出的数字运算信号DS来输出多个数字信号DS'。

例如,数字信号处理器1050可以对多个数字信号DS中的任意一个和与用于生成一个数字信号DS的参考电压Vref相对应的数字参考信号Dref执行乘法运算。数字信号处理器1050可以输出作为乘法运算的结果的数字运算信号DS'。

在实施例中,电子装置1000c可以使用多个数字运算信号DS'来执行数字信号处理操作。此处,数字信号处理操作可以是对数字信号执行诸如噪声消除、滤波、错误去除、错误检测和计算的任务中的任意一种的操作。

图17A和图17B示出了根据本公开的实施例的数字信号处理器。图17A所示的数字信号处理器可以对应于图16所示的数字信号处理器1050,因此可以参照图16来描述数字信号处理器1050。

参照图17A,数字信号处理器1050可以对从ADC 1030输出的数字信号DS和数字参考信号Dref执行乘法运算,并且可以输出作为乘法运算的结果的数字运算信号DS'。

在实施例中,ADC 1030的输出值可以由以下等式(2)表示:

在等式(2)中,ADC Out可以表示ADC 1030的输出值,Vsig可以表示输入到ADC1030的模拟信号电压,Vref可以表示参考电压,并且bit可以表示分辨率。

参照等式(2),ADC 1030的输出值与参考电压Vref成反比。此处,参考电压Vref可以随着输入到交叉开关阵列1010的输入数据而变化。也就是说,每当输入数据变化时,施加到ADC 1030的参考电压Vref也可以变化。因此,为了在施加不同参考电压的数字信号DS之间执行运算,需要对数字信号DS进行校正。

例如,参照图17B,当参考电压Vref为10mV并且模拟信号电压Vsig为10mV时,如(a)所示ADC 1030可以输出“11”作为数字信号DS。例如,当参考电压Vref为5mV并且模拟信号电压Vsig为5mV时,如(b)所示ADC 1030可以输出“11”作为数字信号DS。如上所述,由于参考电压Vref随着输入数据而变化,所以即使模拟信号电压Vsig彼此不同,ADC 1030的输出值也可以彼此相等。

在这种情况下,为了使用基于不同参考电压Vref输出的数字信号DS来执行数字信号处理操作,需要将数字信号DS校正成具有先前正态分布范围。

因此,数字信号处理器1050可以通过将数字信号DS乘以数字参考电压Dref来输出数字运算信号DS'。

例如,数字运算信号DS'可以由下面的等式(3)表示:

DS'=DS×Drref (3)

详细地,数字信号DS可以是从被施加与参考电压Vref相对应的增益的相应ADC1030输出的信号。因此,可以通过将数字信号DS乘以施加到ADC 1030的增益的倒数来校正数字信号DS。等式(3)中表述了该运算,其中可以通过将数字参考信号Dref乘以数字信号DS来将增益的倒数乘以数字信号DS。因此,数字运算信号DS'可以具有在将增益施加到模数转换器1030之前的信号值。

图18A和图18B示出了根据本公开的实施例的图16的数字信号处理器1050的运算。

参照图18A,可以通过多条行线输入与第一输入数据相对应的多个输入电压V1'至V3'。可以对多个输入电压V1'至V3'和联接到第二列线的存储器单元1101、1102和1103中的每一个中存储的最大电导值Gmax执行乘法累加运算,并且可以输出作为乘法累加运算的结果的最大输出电流Imax'。最大输出电流Imax'可以由联接到第二列线的IVC 1020转换成参考电压Vref'。参考电压Vref'可以由ADC 1030'转换成数字参考信号Dref_1。

数字信号处理器1050可以接收数字参考信号Dref_1。进一步地,数字信号处理器1050可以从多条第一列线中的一个接收数字信号DS_1。此处,数字信号DS_1可以对应于通过对多个输入电压V1'至V3'和联接到多条第一列线中的一条的存储器单元中存储的电导值执行乘法累加运算来生成的模拟信号电压。数字信号处理器1050可以对数字信号DS_1和数字参考信号Dref_1执行乘法运算,并且可以输出数字运算信号DS'_1。

参照图18B,可以通过多条行线输入与第二输入数据相对应的多个输入电压V1”至V3”。此处,可以在已经输入第一输入数据之后将第二输入数据输入到多条行线。可以对多个输入电压V1”至V3”和联接到第二列线的存储器单元1101、1102和1103中的每一个中存储的最大电导值Gmax执行乘法累加运算,并且可以输出作为乘法累加运算的结果的最大输出电流Imax”。最大输出电流Imax”可以由联接到第二列线的IVC 1020转换成参考电压Vref”。参考电压Vref”可以由ADC 1030'转换成数字参考信号Dref_2。

数字信号处理器1050可以接收数字参考信号Dref_2。进一步地,数字信号处理器1050可以从多条第一列线中的一条接收数字信号DS_2。此处,数字信号DS_2可以对应于通过对多个输入电压V1”至V3”和多条第一列线中的一条中包括的存储器单元中存储的电导值执行乘法累加运算来输出的模拟信号电压。数字信号处理器1050可以对数字信号DS_2和数字参考信号Dref_2执行乘法运算,并且可以输出数字运算信号DS'_2。

在实施例中,图16的电子装置1000c可以使用针对第一输入数据输出的数字运算信号DS'_1和针对第二输入数据输出的数字运算信号DS'_2来执行数字信号处理操作。

图19示出了根据本公开的实施例的使用多个电子装置1000-1至1000-n的神经网络运算。

参照图19,多个电子装置1000-1至1000-n中的每一个可以对应于图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个。

多个电子装置1000-1至1000-n可以是用于实施神经网络中包括的各个层的装置。例如,当神经网络中包括n个层时,多个电子装置1000-1至1000-n可以分别实施n个层。

多个电子装置1000-1至1000-n中的每一个可以使用交叉开关阵列来对输入数据执行乘法累加运算。多个电子装置1000-1至1000-n中的每一个可以使用多个ADC输出乘法累加运算的结果作为数字信号。作为后续电子装置的输入数据,数字信号可以被输入到后续电子装置。

在实施例中,多个电子装置1000-1至1000-n中的每一个可以进一步包括多个数模转换器(DAC)。多个电子装置1000-1至1000-n中的每一个可以使用多个DAC将从先前电子装置输入的数字信号转换成多个输入电压。下文中,如上所述,多个电子装置1000-1至1000-n可以通过重复执行乘法累加运算来最终输出与输入数据相对应的输出数据。

在实施例中,在将任意一个电子装置输出的数字信号提供给后续电子装置之前,可以对数字信号执行数字信号处理操作。

例如,第一电子装置1000-1可以通过多个ADC来输出数字信号。而且,第一电子装置1000-1可以对数字信号执行数字信号处理操作。在实施例中,可以使用上面参照图16、图17A、图17B、图18A和图18B描述的数字信号处理器1050来执行数字信号处理操作。下文中,可以将已经执行数字信号处理操作的数字信号提供给第二电子装置1000-2。第二电子装置1000-2可以使用DAC来将数字信号转换成多个输入电压。此后,第二电子装置1000-2可以对多个输入电压执行乘法累加运算。

因此,可以通过多个电子装置1000-1至1000-n的操作来执行神经网络运算。

图20是示出根据本公开的实施例的操作电子装置的方法的流程图。

图20所示的方法可以由图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个来执行。下文中,虽然为了便于描述而描述了操作图16的电子装置1000c的方法,但是该方法可以同样应用于图10的电子装置1000a和图13的电子装置1000b。

参照图16和图20,在步骤S2001,电子装置1000c可以分别通过多条行线来接收多个输入电压V1至V3。

在步骤S2003,电子装置1000c可以基于最大电导值Gmax和多个输入电压V1至V3来生成最大输出电流Imax,并且通过第二列线输出最大输出电流Imax。最大电导值Gmax可以是在联接到多条第一列线的多个存储器单元中存储的电导值G11至G33之中的具有最大大小的电导值。例如,电子装置1000c可以通过对最大电导值Gmax和多个输入电压V1至V3执行乘法累加运算来生成最大输出电流Imax。

在步骤S2005,电子装置1000c可以将最大输出电流Imax转换为参考电压Vref。例如,电子装置1000c可以使用联接到第二列线的电流电压转换器(IVC)1020来将最大输出电流Imax转换为参考电压Vref。

在步骤S2007,电子装置1000c可以基于参考电压Vref来确定多个ADC 1030的输入范围的最大值。在实施例中,电子装置1000c可以将参考电压Vref确定为多个ADC 1030的输入范围的最大值。在另一实施例中,电子装置1000c可以通过将与参考电压Vref相对应的增益施加到多个ADC 1030来确定输入范围的最大值。

图21是示出根据本公开的另一实施例的操作电子装置的方法的流程图。

图21所示的方法可以由图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个来执行。下文中,虽然为了便于描述而描述了操作图16的电子装置1000c的方法,但是该方法可以同样应用于图10的电子装置1000a和图13的电子装置1000b。

参照图16和图21,在步骤S2101,电子装置1000c可以分别通过多条行线来接收多个输入电压V1至V3。

在步骤S2103,电子装置1000c可以基于最大电导值Gmax和多个输入电压V1至V3来生成最大输出电流Imax,并且通过第二列线输出最大输出电流Imax。最大电导值Gmax可以是在联接到多条第一列线的多个存储器单元中分别存储的多个电导值G11至G33之中的具有最大大小的电导值。例如,电子装置1000c可以通过对最大电导值Gmax和多个输入电压V1至V3执行乘法累加运算来生成最大输出电流Imax。

在步骤S2105,电子装置1000c可以将最大输出电流Imax转换为参考电压Vref。例如,电子装置1000c可以使用联接到第二列线的电流电压转换器(IVC)1020来将最大输出电流Imax转换为参考电压Vref。

在步骤S2107,电子装置1000c可以将参考电压Vref确定为多个ADC 1030的输入范围的最大值。

在步骤S2109,电子装置1000c可以基于多个输入电压V1至V3和多个存储器单元中存储的多个电导值G11至G33生成多个输出电流I1至I3,并分别通过多条第一列线来输出多个输出电流I1至I3。例如,电子装置1000c可以通过对多个输入电压V1至V3和多个电导值G11至G33执行乘法累加运算来生成多个输出电流I1至I3。

在步骤S2111,电子装置1000c可以将多个输出电流I1至I3转换成多个模拟信号电压Vsig。例如,电子装置1000c可以使用分别联接到多条第一列线的电流电压转换器1020来将多个输出电流I1至I3转换成多个模拟信号电压Vsig。在实施例中,电子装置1000c可以使用多个电压缓冲器1040来缓冲模拟信号电压Vsig,并且可以将缓冲后的模拟信号电压Vsig'提供给多个ADC 1030。

在步骤S2113,电子装置1000c可以使用多个ADC 1030将多个模拟信号电压Vsig或缓冲后的模拟信号电压Vsig'转换成多个数字信号DS,多个ADC 1030的输入范围的最大值已被确定为参考电压Vref。

图22是示出根据本公开的实施例的通过多条第一列线来输出多个输出电流的方法的流程图。

图22所示的方法可以由图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个来执行。下文中,虽然为了便于描述而描述了操作图16的电子装置1000c的方法,但是该方法可以同样应用于图10的电子装置1000a和图13的电子装置1000b。

而且,图22所示的方法可以是实现图21的步骤S2109的方法。

参照图16和图22,在步骤S2201,电子装置1000c可以将多个电导值G11至G33存储在联接到多条第一列线的多个存储器单元中。此处,多个电导值G11至G33可以对应于多个权重数据。

在步骤S2203,电子装置1000c可以对多个输入电压V1至V3和多个电导值G11至G33执行乘法累加运算。例如,电子装置1000c可以对多个输入电压V1至V3和多个电导值G11至G33执行乘法运算。此后,电子装置1000c可以对乘法运算的结果执行累加运算。

在步骤S2205,电子装置1000c可以基于乘法累加运算的结果来生成多个输出电流I1至I3。

图23是示出根据本公开的实施例的通过第二列线来输出最大输出电流的方法的流程图。

图23所示的方法可以由图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个来执行。下文中,虽然为了便于描述而描述了操作图16的电子装置1000c的方法,但是该方法可以同样应用于图10的电子装置1000a和图13的电子装置1000b。

而且,图23所示的方法可以是实现图21的步骤S2103的方法。

参照图16和图23,在步骤S2301,电子装置1000c可以将最大电导值Gmax存储在联接到第二列线的多个存储器单元的每一个中。

在步骤S2303,电子装置1000c可以对多个输入电压V1至V3和最大电导值Gmax执行乘法累加操作。例如,电子装置1000c可以对多个输入电压V1至V3和最大电导值Gmax执行乘法运算。此后,电子装置1000c可以对乘法运算的结果执行累加运算。

在步骤S2305,电子装置1000c可以基于乘法累加运算的结果来生成最大输出电流Imax。

图24是示出根据本公开的实施例的通过模数转换器来输出数字信号的方法的流程图。

图24所示的方法可以由图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个来执行。下文中,虽然为了便于描述而描述了操作图16的电子装置1000c的方法,但是该方法可以同样应用于图10的电子装置1000a和图13的电子装置1000b。

而且,图24所示的方法可以是实现图21的步骤S2113的方法。

参照图16和图24,在步骤S2401,电子装置1000c可以基于参考电压Vref来确定ADC1030的输入范围的最大值。在实施例中,ADC 1030的输入范围的最小值可以是0或参考电压Vref的负值,即-Vref。

在步骤S2403,电子装置1000c可以基于参考电压Vref和ADC 1030的分辨率来确定多个比较电压。例如,当分辨率为2位时,ADC 1030可以输出指示为“00”、“01”、“10”和“11”中的任意一个的数字信号。因此,电子装置1000c可以确定用于识别输入范围内的四种类型的数字信号的多个比较电压。

在步骤S2405,电子装置1000c可以基于多个比较电压与模拟信号电压Vsig之间的比较结果来生成数字信号DS。

图25是示出根据本公开的实施例的执行数字信号处理操作的方法的流程图。

图25所示的方法例如可以由图16所示的电子装置1000c来执行。

参照图16和图25,在步骤S2501,电子装置1000c可以通过多条第一列线来生成数字信号DS。

在步骤S2503,电子装置1000c可以生成与参考电压Vref相对应的数字参考信号Dref。例如,电子装置1000c可以使用联接到第二列线的ADC 1030'将参考电压Vref转换为数字参考信号Dref。

在步骤S2505,电子装置1000c可以对通过多条第一列线生成的数字信号DS和数字参考信号Dref执行乘法运算。

在步骤S2507,电子装置1000c可以基于乘法运算的结果来生成数字运算信号DS'。

在步骤S2509,电子装置1000c可以使用数字运算信号DS'来执行数据信号处理操作。

图26示出了根据本公开的实施例的计算系统2000。

参照图26,计算系统2000可以使用神经网络来实时分析输入数据,从输入数据中提取有效信息,并且基于所提取的信息确定安装计算系统2000的电子装置或控制电子装置的组件的情况。例如,计算系统2000可以应用于无人机、高级驾驶辅助系统(ADAS)、智能电视、智能电话、医疗器械、移动装置、图像显示装置、测量装置、物联网(IoT)装置等,并且可以安装在除了这些示例之外的各种类型的电子装置中的任意一种中。

计算系统2000可以包括中央处理单元(CPU)2100、随机存取存储器(RAM)2200、神经网络处理器2300、输入/输出(I/O)装置2400和存储器2500。计算系统2000可以进一步包括一个或多个其它通用组件,诸如多格式编解码器(MFC,Multi-Format Codec)、视频模块(例如,相机接口、联合图像专家小组(JPEG,Joint Photographic Experts Group)处理器、视频处理器、混合器等)、3D图形内核、音频系统、显示驱动器、图形处理单元(GPU)或数字信号处理器(DSP)等。CPU 2100、RAM 2200、神经网络处理器2300、输入/输出装置2400和存储器2500可以通过通信总线2600发送/接收数据。

在实施例中,计算系统2000的组件,即,CPU 2100、RAM 2200、神经网络处理器2300、输入/输出装置2400和存储器2500可以集成到单个半导体芯片中,并且计算系统2000可以被实施为例如片上系统(SoC)。然而,实施例不限于此。在另一实施例中,计算系统2000可以使用多个半导体芯片来实施。在实施例中,计算系统2000可以是安装在移动装置中的应用处理器。

CPU 2100可以控制计算系统2000的全部操作。CPU 2100可以具有单核结构或带有多个内核的多核结构。CPU 2100可以处理或运行RAM 2200和存储器2500中存储的程序和/或数据。例如,CPU 2100可以通过运行存储器2500中存储的程序来控制计算系统2000的功能。

RAM 2200可以临时存储程序、数据或指令。例如,存储器2500中存储的程序和/或数据可以在CPU 2100的控制下或根据启动代码而临时加载到RAM 2200中。RAM 2200可以使用诸如动态RAM(DRAM)或静态RAM(SRAM)的存储器来实施。

输入/输出装置2400可以从外部系统接收用户的输入或输入数据,并且可以输出通过计算系统2000处理的数据结果。输入/输出装置2400可以被实施为触摸屏面板、键盘、任意各种类型的传感器等。在实施例中,输入/输出装置2400可以收集关于计算系统2000的信息。例如,输入/输出装置2400可以包括各种类型的传感装置中的至少一种,诸如成像装置、图像传感器、光探测和测距(LiDAR)传感器、超声波传感器和红外传感器,或者可以从这种装置接收传感信号。

存储器2500可以是用于存储数据的存储装置,并且可以存储例如操作系统(OS)、各种类型的程序和各种类型的数据。存储器2500可以是但不限于DRAM。存储器2500可以包括易失性存储器和非易失性存储器中的至少一种。非易失性存储器的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FRAM)。易失性存储器的示例包括动态RAM(DRAM)、静态RAM(SRAM)和同步DRAM(SDRAM)。而且,在实施例中,存储器2500可以被实施为诸如硬盘驱动器(HDD)、固态驱动器(SSD)、紧凑型闪存(CF)、安全数字(SD)、微型安全数字(微型SD)、迷你安全数字(迷你SD)、极速卡(xD,extreme digital)、记忆棒等存储装置。

神经网络处理器2300可以包括神经网络,训练神经网络(或允许神经网络执行学习),基于接收到的输入数据执行运算,或者基于运算结果生成信息信号或重新训练神经网络。神经网络可以包括但不限于各种类型的神经网络中的任意一种,诸如卷积神经网络(CNN)、区域卷积神经网络(R-CNN)、区域选取网络(RPN,Region Proposal Network)、循环神经网络(RNN)、深度神经网络(DNN)、基于堆叠的深度神经网络(S-DNN)、状态空间动态神经网络(S-SDNN)、反卷积网络、深度信念网络(DBN)、受限玻尔兹曼机(RBN)、全卷积网络、长短期记忆(LSTM)网络和分类网络。

神经网络处理器2300可以是用于神经网络的专用硬件加速器自身或是包括专用硬件加速器的装置,并且可以使用图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个来实施。

虽然附图中未示出,但是计算系统2000可以进一步包括传感器模块。

传感器模块可以收集围绕安装计算系统2000的电子装置的信息。传感器模块可以感测或接收来自电子装置的外部的信号,并且可以将所感测或所接收的信号转换为数据。信号可以包括图像信号、音频信号、磁信号、生物特征信号、触摸信号等。对于这种操作,传感器模块可以包括各种类型的传感装置中的至少一种,诸如麦克风、成像装置、图像传感器、光探测和测距(LiDAR)传感器、超声波传感器、红外传感器、生物传感器、触摸传感器等。

传感器模块可以将转换后的数据作为输入数据提供给神经网络处理器2300。例如,传感器模块可以包括可以捕获电子装置的外部环境的图像并生成视频流的图像传感器,并且可以顺序地将视频流中的连续数据帧作为输入数据提供给神经网络处理器2300。然而,实施例不限于此。传感器模块可以向神经网络处理器2300提供各种类型的数据。

图27示出了图26的神经网络处理器2300。

参照图27,神经网络处理器2300可以包括控制器2310、缓冲器2320和计算电路2330。在实施例中,控制器2310、缓冲器2320、计算电路2330可以通过通信总线彼此通信。

在实施例中,神经网络处理器2300可以被实施为单个半导体芯片,例如,片上系统(SoC)。然而,实施例不限于此。在另一实施例中,神经网络处理器2300可以使用多个半导体芯片来实施。

控制器2310可以控制神经网络处理器2300的全部运算。控制器2310可以控制缓冲器2320和计算电路2330的操作。例如,控制器2310可以设置和管理与例如卷积运算的神经网络运算相关的参数,以使计算电路2330正常地运行神经网络的层。

控制器2310可以被实施为硬件、软件(或固件)或者硬件和软件的组合。在实施例中,控制器2310可以被实施为被设计成执行前述功能的硬件逻辑。在实施例中,控制器2310可以被实施为至少一个处理器,例如CPU、微处理器等,并且可以运行包括构成上述功能的指令的程序。

缓冲器2320可以存储权重数据。可以将缓冲器2320中存储的权重数据提供给计算电路2330。而且,当权重数据被更新时,缓冲器2320可以存储更新后的权重数据,并且可以将更新后的权重数据提供给计算电路2330。

缓冲器2320可以被实施为随机存取存储器(RAM),例如SRAM、DRAM等。

进一步地,缓冲器2320可以与外部装置交换数据。缓冲器2320可以存储由外部装置提供的权重数据并将权重数据提供给计算电路2330。缓冲器2320可以将由计算电路2330提供的输出信息提供给外部装置。

计算电路2330可以包括多个处理元件PE。计算电路2330可以执行卷积运算,例如,逐元素乘法累加(MAC)运算。多个处理元件PE可以存储由缓冲器2320提供的权重数据,接收输入数据,并且对输入数据和权重数据执行乘法累加运算。计算电路2330可以将乘法累加运算的结果提供给缓冲器2320或控制器2310。在实施例中,每个处理元件PE可以使用图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个来实施。

在实施例中,控制器2310可以控制缓冲器2320和计算电路2330,以使与输入数据相对应的多个输入电压通过多条行线输入到计算电路2330。

而且,控制器2310可以控制缓冲器2320和计算电路2330,以使多个电导值被存储在与计算电路2330的多条第一列线联接的多个存储器单元中。

进一步地,控制器2310可以控制计算电路2330,以使对多个输入电压和多个电导值执行乘法累加运算。计算电路2330可以对多个输入电压和联接到每个第一列线的存储器单元中存储的多个电导值执行乘法运算。此外,计算电路2330可以对针对每个第一列线执行乘法运算的结果执行累加运算。作为对多个输入电压和多个电导值的乘法累加运算的结果,计算电路2330可以输出多个输出电流。

此外,控制器2310可以控制缓冲器2320和计算电路2330,以使最大电导值被存储在联接到计算电路2330的第二列线的多个存储器单元中。此处,最大电导值可以是在联接到多条第一列线的多个存储器单元中存储的多个电导值之中的具有最大大小的电导值。

另外,控制器2310可以控制计算电路2330,以使对多个输入电压和最大电导值执行乘法累加运算。计算电路2330可以对多个输入电压和最大电导值执行乘法运算。另外,计算电路2330可以对针对第二列线执行乘法运算的结果执行累加运算。作为对多个输入电压和最大电导值的乘法累加运算的结果,计算电路2330可以输出最大输出电流。

另外,控制器2310可以控制计算电路2330,以使多个输出电流被转换成多个模拟信号电压。控制器2310可以控制计算电路2330,以使最大输出电流被转换成参考电压。

另外,控制器2310可以控制计算电路2330,以使多个模拟信号电压转换为多个数字信号。计算电路2330可以基于根据参考电压确定的输入范围来将多个模拟信号电压转换成多个数字信号。在这种情况下,可以将参考电压确定为输入范围的最大值。在实施例中,计算电路2330可以基于参考电压与多个模拟信号电压之间的比较结果来输出多个数字信号。例如,计算电路2330可以基于参考信号和预设分辨率来确定多个比较电压。输入范围可以被多个比较电压划分成几个区段,几个区段分别对应于几个不同数字值。计算电路2330可以基于多个比较电压和多个模拟信号电压之间的比较结果来输出多个数字信号,多个数字信号中的每一个具有多个不同数字值中的一个。

在实施例中,控制器2310可以控制计算电路2330,以使多个数字信号被转换成具有先前正态分布范围的多个数字运算信号。此处,先前正态分布范围可以对应于多个模拟信号电压的正态分布范围。在实施例中,计算电路2330可以对多个数字信号和与参考电压相对应的数字参考信号执行乘法运算。使用模数转换器将参考电压转换为数字参考信号。作为乘法运算的结果,计算电路2330可以输出具有先前正态分布范围的多个数字运算信号。另外,计算电路2330可以使用具有先前正态分布范围的数字运算信号来执行数字信号处理操作。

图28示出了图27的控制器2310。

参照图28,控制器2310可以包括处理器2311、激活函数电路2312、层控制器2313、压缩/解压引擎2314和输入/输出(I/O)接口2315。

处理器2311可以控制控制器2310的全部操作。

激活函数电路2312可以将激活函数应用于由图27的计算电路2330提供的乘法累加运算的结果。

层控制器2313可以控制计算电路2330中的多个处理元件PE之间的数据传输。

压缩/解压引擎2314可以对由图26的CPU 2100提供的数据执行解压操作并且对待提供给CPU 2100的数据执行压缩操作。

I/O接口2315可以执行与CPU 2100与控制器2310之间的数据输入/输出相关的接口操作。

在实施例中,激活函数电路2312和I/O接口2315可以以现场可编程门阵列(FPGA)来实施,并且处理器2311、层控制器2313和压缩/解压引擎2314可以以专用集成电路(ASIC)来实施。

图29示出了图27的计算电路2330。

参照图29,计算电路2330可以包括多个处理元件PE。多个处理元件PE中的每一个可以对输入数据和权重数据执行乘法累加运算。例如,多个处理元件PE可以独立地操作,并且可以同时执行乘法累加运算。因此,可以对多个输入数据并行执行乘法累加运算。在实施例中,神经网络中包括的一个层可以使用一个处理元件PE来实施。在实施例中,每个处理元件PE可以使用图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个来实施。

在实施例中,多个处理元件PE中的每一个可以包括多个子阵列SA。多个子阵列SA可以对输入数据和权重数据执行乘法累加运算。例如,多个子阵列SA可以独立地操作,并且可以同时执行乘法累加运算。因此,可以对多个输入数据并行执行乘法累加运算。在实施例中,神经网络中包括的一个层可以使用一个处理元件PE或一个子阵列SA来实施。在实施例中,每个子阵列SA可以使用图10的电子装置1000a、图13的电子装置1000b和图16的电子装置1000c中的任意一个来实施。

图30示出了图29的子阵列SA。

参照图30,子阵列SA可以包括交叉开关阵列2331、行驱动电路2332、列驱动电路2333、多个电流电压转换器(IVC)2334和多个模数转换器(ADC)2335。在实施例中,可以将行驱动电路2332指定为行选择器,并且可以将列驱动电路2333指定为列选择器。

交叉开关阵列2331可以包括以矩阵形式布置的多个电阻式存储器单元,每个存储器单元包括电阻式元件。多个电阻式存储器单元中的每一个可以联接到多条行线中的一条和多条列线中的一条。

交叉开关阵列2331可以存储多个权重数据,例如,多个权重。例如,多个电阻式存储器单元可以使用多个电阻式存储器单元的每一个中包括的电阻式元件的电阻的变化来存储多个权重。交叉开关阵列2331可以接收与输入数据相对应的多个输入电压并且基于多个输入电压和多个权重来生成多个电流。例如,多个输入电压可以通过多条行线而输入到交叉开关阵列2331。

行驱动电路2332可以联接到交叉开关阵列2331的多条行线。虽然附图中未详细示出,但是行驱动电路2332可以基于用于选择多条行线中的至少一个的行选择信号来驱动多条行线。进一步地,行驱动电路2332可以基于用于驱动多条行线中的至少一条的行驱动电压来驱动多条行线。

列驱动电路2333可以联接到交叉开关阵列2331的多条列线。虽然附图中未详细示出,但是列驱动电路2333可以基于用于选择多条列线中的至少一条的列选择信号来驱动多条列线。进一步地,列驱动电路2333可以基于用于驱动多条列线中的至少一条的列驱动电压来驱动多条列线。

多个电流电压转换器2334可以将从交叉开关阵列2331输出的多个电流转换成多个模拟信号电压。例如,多个电流电压转换器2334中的每一个可以被实施为包括电流镜。多个电流电压转换器2334可以对应于图2A和图2B所示的电流电压转换器220。

多个ADC 2335可以将多个模拟信号电压转换成多个数字信号。多个ADC 2335可以对应于图2A和图2B中所示的ADC 230。

图31示出了根据本公开的实施例的具有分层结构的交叉开关阵列。

参照图31,神经网络处理器2300可以包括控制器2310、缓冲器2320和多个交叉开关阵列2331-1至2331-n。神经网络处理器2300可以被配置成使得控制器2310、缓冲器2320和多个交叉开关阵列2331-1至2331-n被单独堆叠和封装。控制器2310、缓冲器2320和多个交叉开关阵列2331-1至2331-n可以彼此电连接,并且对于这种连接,神经网络处理器2300可以包括用于将控制器2310、缓冲器2320和多个交叉开关阵列2331-1至2331-n彼此电连接的导电方式。在实施例中,作为导电方式,可以应用硅过孔(TSV)。

在实施例中,缓冲器2320可以存储由多个交叉开关阵列2331-1至2331-n执行的操作的结果。缓冲器2320可以包括易失性存储器单元或非易失性存储器单元。

控制器2310可以与图26的CPU 2100通信,可以从CPU 2100接收请求和权重,并且可以将与请求和权重相对应的命令提供给多个交叉开关阵列2331-1至2331-n。

控制器2310可以响应于CPU 2100提供的请求而生成命令,并且可以通过针对各个交叉开关阵列2331-1至2331-n独立形成的命令TSV来向多个交叉开关阵列2331-1至2331-n提供命令。

控制器2310可以将权重存储在多个交叉开关阵列2331-1至2331-n中,可以将输入数据提供给多个交叉开关阵列2331-1至2331-n,并且可以从多个交叉开关阵列2331-1到2331-n接收最终数据。

可以将输入数据和权重提供给多个交叉开关阵列2331-1至2331-n中的至少一个,并且可以将来自多个交叉开关阵列2331-1至2331-n中的至少一个的最终数据提供给另一交叉开关阵列或控制器2310。

图32示出了根据本公开的实施例的神经网络处理器3200。

图32的神经网络处理器3200可以被实施为图26的神经网络处理器2300的一个组件。

参照图32,神经网络处理器3200可以包括交叉开关阵列3210、多个第一神经元3220和多个第二神经元3230。交叉开关阵列3210可以被称为“突触阵列”。多个第一神经元3220中的每一个可以被称为“前突触神经元”,并且多个第二神经元3230中的每一个可以被称为“后突触神经元”。

交叉开关阵列3210可以包括多个突触3211,多个突触3211可以通过多条行线RL联接到多个第一神经元3220并且可以通过多条列线CL联接到多个第二神经元3230。

交叉开关阵列3210可以存储构成神经网络系统的层中包括的权重,并且可以基于权重和输入数据来执行运算。在交叉开关阵列3210中,权重可以被存储在多个突触3211中。

图33示出了根据本公开的实施例的第一神经元、第二神经元和联接到第一神经元与第二神经元的突触之间的连接关系。图33所示的突触可以对应于图32的交叉开关阵列3210中包括的多个突触3211中的一个。

在图33中,第一神经元3220通过行线RL联接到突触3211,而第二神经元3230通过列线CL联接到突触3211。

突触3211可以包括具有可变电阻值的忆阻器3213和被施加至少两个输入信号的晶体管3212。忆阻器3213的电阻值可以根据将至少两个输入信号施加到晶体管3212的时间之间的差而变化。

忆阻器3213的电阻值可能随着输入信号被施加到晶体管3212的时间之间的差导致的电压变化而变化。例如,忆阻器3213的电阻值可以随着第一输入信号与第二输入信号之间的时间差导致的电压变化而变化。第一输入信号可以是被施加到晶体管3212的栅极端子的信号。进一步地,第二输入信号可以是基于被施加到晶体管3212的源极端子的膜电压的信号。第一输入信号可以从第一神经元3220传送,而第二输入信号可以从第二神经元3230传送。

流经忆阻器3213的电流的方向可以取决于第一输入信号与第二输入信号被施加到晶体管3212的时间之间的差。例如,当第一输入信号比第二输入信号更早被输入到晶体管3212时,电流可以从晶体管3212流到忆阻器3213。另一方面,当第一输入信号比第二输入信号更晚被输入到晶体管3212时,电流可能以与先前方向相反的方向从忆阻器3213流到晶体管3212。

流经忆阻器3213的电流方向和电流量可以取决于第一输入信号与第二输入信号被施加到晶体管3212的时间之间的差导致的电压差。例如,当施加第一输入信号与第二输入信号的时间之间的差较大并且因此第一输入信号与第二输入信号难以相互影响时,在输入第一输入信号的同时晶体管3212导通,并且电流因为参考电压Vref大于空闲电压Vrest而从忆阻器3213流到晶体管3212。参考电压Vref被施加到忆阻器3213的一端,并且空闲电压Vrest从第二神经元3230被施加到晶体管3212。在这种情况下,因为忆阻器3213的两端的电压差(Vref-Vrest)小于改变忆阻器3213的特性的阈值电压,所以忆阻器3213处于高电阻状态(HRS),并且仅有少量接近“0”的电流可以流经忆阻器3213。

当输入第一输入信号与第二输入信号的时间之间的差在第一输入信号与第二输入信号相互影响的范围内并且因此第一输入信号的输入略早于第二输入信号的输入时,在输入第一输入信号的同时晶体管3212导通。在这种情况下,当晶体管3212的源极端子上的电压Vb满足Vb>Vref的关系时,电流从晶体管3212流到忆阻器3213。此处,当忆阻器3213的两端之间的电压差(Vb-Vref)大于改变忆阻器3213的特性的阈值电压时,忆阻器3213可以改变为低电阻状态(LRS)。当忆阻器3213处于低电阻状态(LRS)时,大量电流可能流经忆阻器3213;否则忆阻器3213可以保持高电阻状态(HRS)。

当第一输入信号与第二输入信号被输入的时间之间的差在该范围内,并且因此第一输入信号和第二输入信号被输入的时间相近或者第一输入信号的输入稍晚于第二输入信号的输入时,在输入第一输入信号的同时晶体管3212导通。在这种情况下,当晶体管3212的源极端子上的电压Vb满足Vb

当第一输入信号的输入远远晚于第二输入信号的输入时,即,当第一输入信号的输入与第二输入信号的输入在时间上出现较大的时间差并且因此第一输入信号和第二输入信号难以相互影响时,因为参考电压Vref变得大于空闲电压Vrest,所以电流从忆阻器3213流到晶体管3212。此处,因为忆阻器3213的两端之间的电压差(Vref-Vrest)小于改变忆阻器3213的特性的阈值电压,忆阻器3213可以处于高电阻状态(HRS)。可以根据第一输入信号和第二输入端子是否相互影响来确定较大的时间差。

忆阻器3213的第一端可以联接到晶体管3212的漏极端子,并且其第二端可以联接到提供参考电压Vref的电压源。忆阻器3213的沟道可以串联联接到晶体管3212的沟道。忆阻器3213和晶体管3212可以被施加不同电压,晶体管3212可以是NMOS晶体管。

突触3211可以进一步包括联接到晶体管3212的栅极端子以向晶体管3212提供第一输入信号的第一节点以及联接到晶体管3212的源极端子以向晶体管3212提供第二输入信号的第二节点。突触3211可以通过第一节点联接到第一神经元3220,并且可以通过第二节点联接到第二神经元3230。此处,可以通过第一节点从第一神经元3220向突触3211提供第一电压Va,并且可以通过第二节点从第二神经元3230向突触3211提供第二电压Vb。

第一神经元3220可以包括触发尖峰或脉冲的积分和触发(I&F)尖峰神经元3221。第二神经元3230可以包括I&F尖峰神经元3231。当通过突触3211接收的电流量大于预设阈值时,第一神经元3220和第二神经元3230中的每一个可以触发尖峰或脉冲。

第二神经元3230可以生成基于空闲电压Vrest触发的尖峰。第二神经元3230可以进一步包括电容器3232。

图33的结构可以实施尖峰时序依赖可塑性(STDP,Spike-Timing-DependentPlasticity)运算。

图34是示出图33的突触中包括的忆阻器的运算特性的曲线图。

参照图34,可以描述忆阻器的操作特性。忆阻器可以是能够记忆已经流经多少电流的无源元件,并且可以记忆电荷量并根据所记忆的电荷量改变其电阻值。换句话说,忆阻器的电阻值可以根据电流的流动和电荷量而改变。

在图34的曲线图中,可以看出的是,当提供给忆阻器的电压未达到±0.8V时,电流几乎不流经忆阻器。然而,可以看出的是,当供电电压超过±0.8V时,大量电流突然流经忆阻器。此处,电流量突然改变的电压可以被认为是忆阻器的阈值电压,并且可以对应于图34中的±0.8V。

供应给忆阻器的电压没有达到阈值电压并且因此电流几乎不流经忆阻器的电阻状态可以被认为是高电阻状态(HRS)。另一方面,供应给忆阻器的电压超过阈值电压并且因此电流突然流经忆阻器的电阻状态可以被认为是低电阻状态(LRS)。

图35和图36示出了在图33的第一神经元与第二神经元之间流动的电流量以及在典型的STDP运算期间尖峰发生次数之间的差与突触权重的变化之间的关系。

图35示出了后突触尖峰与前突触脉冲的发生时间之间的差与在该时间差期间流动的电流量之间的关系。可以看出的是,发生时间之间的差与电流量之间的关系具有类似于图36的特性。

当突触中触发的尖峰以电子波形建模时,突触权重中的变化可以通过在第一神经元中触发的脉冲波形(下文中被称为“前突触脉冲”)与在第二神经元中触发的尖峰波形(下文中被称为“后突触尖峰”)之间的减法来表示。

图37示出了根据本公开的另一实施例的神经网络处理器3700。

图37的神经网络处理器3700可以被实施为图26的神经网络处理器2300的一个组件。

参照图37,神经网络处理器3700可以包括交叉开关阵列3710、多个第一神经元3720和多个第二神经元3730。交叉开关阵列3710可以被称为“突触阵列”。多个第一神经元3720中的每一个可以被称为“前突触神经元”,并且多个第二神经元3730中的每一个可以被称为“后突触神经元”。

交叉开关阵列3710可以包括多个突触3711,多个突触3711可以通过多条行线RL联接到多个第一神经元3720并且可以通过多条列线CL和多条选择线SL联接到多个第二神经元3730。

交叉开关阵列3710可以将构成神经网络系统的层中的每一个中包括的权重存储在多个突触3711中,并且可以基于权重和输入数据来执行运算。

图38示出了根据本公开的实施例的图37的突触阵列中包括的多个突触中的一个。

参照图38,第一神经元3720通过行线RL联接到突触3711,并且第二神经元3730通过列线CL和多个选择线SL联接到突触3711。

突触3711可以包括彼此串联联接的开关晶体管3713和忆阻器3715。开关晶体管3713可以包括诸如MOS晶体管的3端子选择器或诸如二极管的2端子选择器。开关晶体管3713的栅极电极可以通过选择线SL电连接到第二神经元3730,开关晶体管3713的漏极可以通过行线RL电连接到第一神经元3720,并且开关晶体管3713的源极可以电连接到忆阻器3715的第一端子。忆阻器3715的第二端子可以通过列线CL电连接到第二神经元3730。

参照图37和图38,可以通过行线RL从第一神经元3720向突触3711提供行信号。当突触3711的开关晶体管3713导通时,可以将行信号提供给忆阻器3715。行信号可以被用于以各种模式来训练忆阻器3715,使得可以调整忆阻器3715的电阻状态。根据忆阻器3715处于读取模式的电阻状态,可以将行信号转换为电流值。也就是说,忆阻器3715的电阻状态可以响应于行信号而改变,或者根据忆阻器3715的电阻状态的电流值可以响应于行信号而被输出到列线CL。也就是说,突触3711的权重可以被输出到列线CL。

图39示出了根据本公开的实施例的图37的第二神经元。

参照图39,第二神经元3730可以包括彼此串联的求和电路3731、可变电阻式元件(电阻器)3732和比较器3733。

突触3711的输出端子可以通过列线CL联接到求和电路3731的输入端子,求和电路3731的输出端子可以通过第一节点N1联接到可变电阻式元件3732的第一电极,可变电阻式元件3732的第二电极可以通过第二节点N2联接到比较器3733的输入端子。第二神经元3730可以进一步包括第一反馈线3734和第二反馈线3735,第一反馈线3734将比较器3733的输出端子电连接到可变电阻式元件3732,第二反馈线3735将比较器3733的输出端子电连接到突触3711。第一反馈线3734可以电连接到第二节点N2,并且第二反馈线3735可以连接到选择线SL。可选地,第二反馈线3735可以是选择线SL的一部分。

求和电路3731可以对联接到相同列线CL的多个突触3711的权重求和,并且将求和结果提供给可变电阻式元件3732。

可变电阻式元件3732的电阻值或电导率可以通过求和电路3731的输出和/或比较器3733的输出来改变。例如,可变电阻式元件3732的电阻值可以通过求和电路3731的输出来减小(设置操作),并且可以通过比较器3733的输出来增加(重置操作)。例如,当通过对求和电路3731的求和获得的突触电流较低时,可变电阻式元件3732可以具有较高电阻电平。因此,可以向比较器3733提供低电平电流和低电平突触权重。另一方面,当从求和电路3731输出的突触电流较高时,可变电阻式元件3732可以具有较低电阻水平。因此,可以向比较器3733提供高电平电流和高电平突触权重。

当可变电阻式元件3732的输出高于参考电压时,比较器3733可以输出电信号。也就是说,可以对比较器3733执行触发。触发后的比较器3733可以输出输出信号Sout。输出信号Sout的一部分可以被划分为第一反馈信号Sb1和第二反馈信号Sb2。

从比较器3733的输出信号Sout划分的第一反馈信号Sb1可以被提供给可变电阻式元件3732并被用于初始化可变电阻式元件3732。比较器3733的输出端子可以通过第二反馈线3735和/或选择线SL电连接到图37的突触3711的开关晶体管3713的栅极电极。也就是说,从比较器3733的输出信号Sout划分的第二反馈信号Sb2可以被提供给开关晶体管3713的栅极电极。因此,第二反馈信号Sb2可以被提供给开关晶体管3713的栅极电极并被用于设置/重置忆阻器3715。例如,第二反馈信号Sb2可以被用于执行尖峰时序依赖可塑性(STDP)运算以改变突触3711的权重。

根据本公开的实施例,提供了一种可以通过根据输入数据调整模数转换器(ADC)的输入范围来减少量化运算中出现的错误的电子装置和操作该电子装置的方法。

进一步地,根据本公开的实施例,通过根据输入数据调整ADC的输入范围,可以提高神经网络运算的准确性,并且可以降低模数转换器(ADC)的实施成本。

虽然已经参照本公开的某些示例性实施例示出和描述了本公开,但是本领域技术人员将理解的是,在不脱离由所附权利要求及其等同方案所限定的本公开的精神和范围的情况下,可以进行形式和细节上的各种改变。因此,本公开的范围不应限于上述示例性实施例,而是应当不仅由所附权利要求书确定而且还应由其等同方案确定。

技术分类

06120115920667