神经突触单元电路、神经网络电路和信息处理系统的制作方法

文档序号:16137006发布日期:2018-12-01 01:07阅读:166来源:国知局
本公开的实施例涉及一种神经突触单元电路、神经网络电路、信息处理系统和信息处理方法。
背景技术
在神经形态
技术领域
,可以通过构建类似人类大脑结构的计算架构来大幅提高计算机的数据处理能力和机器学习能力。与基于通用中央处理器(cpu)的串行软件实现方式相比,通过电路器件和硬件系统模拟生物神经活动的实现方式允许大量的并行计算,具有高运算速度、低功耗等优点,成为神经形态
技术领域
的重要研究方向。忆阻器具有集成度高、功耗低、连续阻变、非挥发性和兼容cmos工艺等特性,被广泛应用于神经网络电路中。由忆阻器构造的交叉阵列广泛应用于多层神经网络、自适应谐振网络以及卷积神经网络中,可以实现神经网络的权重调节。技术实现要素:本公开至少一实施例提供一种神经突触单元电路,包括第一权重电路和第二权重电路,所述第一权重电路包括第一阻变电路和第一开关电路,所述第一阻变电路和第一位线端以及所述第一开关电路电连接,所述第一开关电路和第一字线端、所述第一阻变电路以及源线端电连接;所述第二权重电路包括第二阻变电路和第二开关电路,所述第二阻变电路和第二位线端以及所述第二开关电路电连接,所述第二开关电路和第二字线端、所述第二阻变电路以及所述源线端电连接。例如,在本公开一实施例提供的神经突触单元电路中,所述神经突触单元被配置为在进行计算操作时,施加至所述第一位线端的第一位线电压大于施加至所述源线端的源线电压,且施加至所述第二位线端的第二位线电压小于所述源线电压。例如,在本公开一实施例提供的神经突触单元电路中,所述第一阻变电路包括第一忆阻器,所述第一开关电路包括第一晶体管,所述第一忆阻器的第一极和所述第一位线端连接,所述第一忆阻器的第二极和所述第一晶体管的第一极连接,所述第一晶体管的栅极和所述第一字线端连接,所述第一晶体管的第二极和所述源线端连接;所述第二阻变电路包括第二忆阻器,所述第二开关电路包括第二晶体管,所述第二忆阻器的第一极和所述第二位线端连接,所述第二忆阻器的第二极和所述第二晶体管的第一极连接,所述第二晶体管的栅极和所述第二字线端连接,所述第二晶体管的第二极和所述源线端连接。例如,在本公开一实施例提供的神经突触单元电路中,所述第一忆阻器和所述第二忆阻器包括阻值渐变型器件。本公开至少一实施例还提供一种神经网络电路,包括多个呈阵列排布的如本公开的实施例提供的任一神经突触单元电路,所述阵列包括多行和多列。例如,在本公开一实施例提供的神经网络电路中,每一行神经突触单元电路对应设置一条第一位线和一条第二位线,所述第一位线和对应行神经突触单元电路中的所述第一阻变电路电连接,所述第二位线和对应行神经突触单元电路中的所述第二阻变电路电连接;每一列神经突触单元电路对应设置一条第一字线、一条第二字线以及一条源线,所述第一字线和对应列神经突触单元电路中的所述第一开关电路电连接,所述第二字线和对应列神经突触单元电路中的所述第二开关电路电连接,所述源线和对应列神经突触单元电路中的所述源线端电连接。例如,在本公开一实施例提供的神经网络电路中,每一行神经突触单元电路对应设置一条第一位线、一条第二位线、一条第一字线以及一条第二字线,所述第一位线和对应行神经突触单元电路中的所述第一阻变电路电连接,所述第二位线和对应行神经突触单元电路中的所述第二阻变电路电连接,所述第一字线和对应行神经突触单元电路中的所述第一开关电路电连接,所述第二字线和对应行神经突触单元电路中的所述第二开关电路电连接;每一列神经突触单元电路对应设置一条源线,所述源线和对应列神经突触单元电路中的所述源线端电连接。例如,在本公开一实施例提供的神经网络电路中,每一行神经突触单元电路对应设置一条第一位线和一条第二位线,所述第一位线和对应行神经突触单元电路中的所述第一阻变电路电连接,所述第二位线和对应行神经突触单元电路中的所述第二阻变电路电连接;每一列神经突触单元电路对应设置一条字线以及一条源线,所述字线和对应列神经突触单元电路中的所述第一开关电路以及所述第二开关电路电连接,所述源线和对应列神经突触单元电路中的所述源线端电连接。例如,在本公开一实施例提供的神经网络电路中,每一行神经突触单元电路对应设置一条第一位线、一条第二位线以及一条字线,所述第一位线和对应行神经突触单元电路中的所述第一阻变电路电连接,所述第二位线和对应行神经突触单元电路中的所述第二阻变电路电连接,所述字线和对应行神经突触单元电路中的所述第一开关电路以及所述第二开关电路电连接;每一列神经突触单元电路对应设置一条源线,所述源线和对应列神经突触单元电路中的所述源线端电连接。本公开至少一实施例还提供一种信息处理系统,包括本公开的实施例提供的任一神经网络电路控制电路、驱动电路和输出电路。所述控制电路被配置为在进行计算操作时,根据输入的待处理数据向所述驱动电路发送控制信号;所述驱动电路被配置为根据所述控制信号向所述神经网络电路提供驱动电压;所述输出电路被配置为对所述神经网络电路的输出结果进行处理。例如,在本公开一实施例提供的信息处理系统中,在所述神经网络电路包括m行神经突触单元电路的情形下,所述待处理数据包括1*m的一维矩阵数据,m为大于1的整数。例如,在本公开一实施例提供的信息处理系统中,所述输出电路包括采样保持电路和模数转换电路;所述采样保持电路被配置为采集所述神经网络电路输出的模拟电流,所述模数转换电路被配置为将所述模拟电流转换为数字电流。例如,在本公开一实施例提供的信息处理系统中,所述输出电路包括采样保持电路和模数转换电路;所述采样保持电路被配置为采集所述神经网络电路输出的模拟电流并将所述模拟电流转换为模拟电压,所述模数转换电路被配置为将所述模拟电压转换为数字电压。本公开的实施例还提供一种信息处理方法,用于本公开的实施例提供的信息处理系统,该方法包括:根据待处理数据向所述驱动电路发送控制信号;根据所述控制信号向所述神经网络电路提供驱动电压;以及对所述神经网络电路的输出结果进行处理。例如,本公开一实施例提供的信息处理方法还包括:根据预设权重矩阵对所述神经网络电路进行初始化。例如,在本公开一实施例提供的信息处理方法中,所述根据预设权重矩阵对所述神经网络电路进行初始化包括:对所述神经网络电路中的每个神经突触单元电路进行置位和/或复位操作;以及检测所述神经网络电路中的每个神经突触单元电路的电导值是否和所述预设权重矩阵中对应的权重值相同。例如,本公开一实施例提供的信息处理方法还包括:如果所述神经网络电路中的每个神经突触单元电路的电导值和所述预设权重矩阵中对应的权重值不同,则继续进行所述置位和/或所述复位操作,直到所述神经网络电路中的每个神经突触单元电路的电导值和所述预设权重矩阵中对应的权重值相同。附图说明为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。图1为一种神经突触单元电路的示意图;图2为一种由图1中所示的神经突触单元电路构成的神经网络电路的示意图;图3为本公开一实施例提供的一种神经突触单元电路的示意图;图4为本公开一实施例提供的一种神经突触单元电路的电路图;图5为本公开一实施例提供的一种神经网络电路的示意图;图6为本公开一实施例提供的另一种神经网络电路的示意图;图7为本公开一实施例提供的又一种神经网络电路的示意图;图8为本公开一实施例提供的再一种神经网络电路的示意图;图9为本公开一实施例提供的一种信息处理系统的示意框图;图10为本公开一实施例提供的一种信息处理系统的示意图;图11为本公开一实施例提供的另一种信息处理系统的示意图;图12为本公开一实施例提供的一种信息处理方法的示意图;图13为本公开一实施例提供的另一种信息处理方法的示意图;以及图14为本公开的实施例提供的一种阻值渐变型器件的结构示意图。具体实施方式为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。图1示出了一种神经突触单元电路,如图1所示,该神经突触单元电路采用1t1r结构,即包括一个晶体管m1(例如可以采用金属氧化物半导体(cmos)场效应晶体管(fet))和一个忆阻器r1。晶体管m1的栅极和字线端wl连接,例如,晶体管m1可以通过字线端wl和字线连接以接收控制晶体管m1导通或关闭的控制电压;晶体管m1的源极和源线端sl连接,例如,晶体管m1可以通过源线端sl和源线连接以接收复位电压;晶体管m1的漏极和忆阻器r1的第二极(例如负极)连接,忆阻器r1的第一极(例如正极)和位线端bl连接,例如,忆阻器r1可以通过位线端bl和位线连接以接收置位电压。字线的作用是对晶体管m1的栅极施加相应电压,从而控制晶体管的导通或关闭。在对忆阻器r1进行操作时,例如进行置位操作或复位操作,均需要先开启晶体管m1,即需要通过字线端wl对晶体管m1的栅极施加导通电压。在晶体管m1导通后,例如,可以通过在源线端sl和位线端bl向忆阻器r1施加电压,以改变忆阻器r1的阻态。例如,可以通过位线端bl施加置位电压,以使得该忆阻器r1处于低阻态;又例如,可以通过源线端sl施加复位电压,以使得该忆阻器r1处于高阻态。需要说明的是,在本公开的实施例中,通过字线端wl和位线端bl同时施加电压,使得忆阻器r1的电阻值越来越小,即忆阻器r1从高阻态变为低阻态,将使得忆阻器r1从高阻态变为低阻态的操作称为置位操作;通过字线端wl和源线端sl同时施加电压,使得忆阻器r1的电阻值越来越大,即忆阻器r1从低阻态变为高阻态,将使得忆阻器r1从低阻态变为高阻态的操作称为复位操作。以下各实施例与此相同,不再赘述。图2示出了一种神经网络电路,该神经网络电路由多个如图1中所示的神经突触单元电路构成,例如多个神经突触单元电路构成一个m行n列的阵列。图2中bl<1>、bl<2>……bl<m>分别表示第一行、第二行……第m行的位线,每一行的神经突触单元电路中的忆阻器和该行对应的位线连接;图2中wl<1>、wl<2>……wl<n>分别表示第一列、第二列……第n列的字线,每一列的神经突触单元电路中的晶体管的栅极和该列对应的字线连接;图2中sl<1>、sl<2>……sl<n>分别表示第一列、第二列……第n列的源线,每一列的神经突触单元电路中的晶体管的源极和该列对应的源线连接。图2所示的m行n列的神经网络电路可以表示一个m行n/2列大小的神经网络权重矩阵。例如在进行计算操作时,由于需要两个神经突触单元电路结合来表示神经网络权重矩阵中的一个有正负的权重值,所以需要将与偶数列以及奇数列神经突触单元电路连接的源线上输出的电流做差。例如,假设一个神经网络电路输出的矩阵数据有n个元素,则需要设置2n个输出电路用于检测电流,并且还需要额外设置n个加法器电路用于对电流做差值运算。本公开至少一实施例提供一种神经突触单元电路,包括第一权重电路和第二权重电路。第一权重电路包括第一阻变电路和第一开关电路,第一阻变电路和第一位线端以及第一开关电路电连接,第一开关电路和第一字线端、第一阻变电路以及源线端电连接;第二权重电路包括第二阻变电路和第二开关电路,第二阻变电路和第二位线端以及第二开关电路电连接,第二开关电路和第二字线端、第二阻变电路以及源线端电连接。本公开至少一实施例还提供对应于上述神经突触单元电路的神经网络电路、信息处理系统以及信息处理方法。本公开的实施例提供的神经突触单元电路可以表示神经网络权重矩阵中的一个有正负的权重值,由该神经突触单元电路构成的神经网络电路更容易映射实际的神经网络权重矩阵,从而可以节约电路资源消耗。本公开的至少一实施例提供一种神经突触单元电路100,如图3所示,该神经突触单元电路100包括第一权重电路110和第二权重电路120。该第一权重电路110包括第一阻变电路111和第一开关电路112,第一阻变电路111和第一位线端bl1以及第一开关电路112电连接,第一开关电路112和第一字线端wl1、第一阻变电路111以及源线端sl电连接。第二权重电路120包括第二阻变电路121和第二开关电路122,第二阻变电路121和第二位线端bl2以及第二开关电路122电连接,第二开关电路122和第二字线端wl2、第二阻变电路121以及源线端sl电连接。例如,在采用图3中所示的神经突触单元电路100表示一个权重值时,第一权重电路110可以表示权重值的正权重部分,第二权重电路120可以表示权重值的负权重部分,通过调整第一阻变电路111和第二阻变电路121可以分别调整正权重和负权重的大小,从而可以表示一个任意大小的有正负的权重值,例如,该权重值是神经网络权重矩阵中的一个权重值。例如,在进行初始化操作时,可以通过第一字线端wl1向第一开关电路112施加导通电压以开启第一开关电路112,然后通过第一位线端bl1和源线端sl向第一阻变电路111施加电压(例如置位电压或复位电压)以调整第一阻变电路111的电导值,从而使得第一阻变电路111的电导值可以表示一个权重值的正权重部分。类似地,可以通过第二字线端wl2向第二开关电路122施加导通电压以开启第二开关电路122,然后通过第二位线端bl2和源线端sl向第二阻变电路121施加电压(例如置位电压或复位电压)以调整第二阻变电路121的电导值,从而使得第二阻变电路121的电导值可以表示一个权重值的负权重部分。例如,在进行计算操作时,可以使得施加至第一位线端bl1的第一位线电压大于施加至源线端sl的源线电压,且施加至第二位线端bl2的第二位线电压小于源线电压。采用这种配置方式,流过第一权重电路110的电流如图中i1所示,流过第二权重电路120的电流如图中i2所示,则在源线端sl检测电流时,检测到的电流icell满足等式:icell=i1-i2,所以第一权重电路110可以表示一个权重值的正权重部分,第二权重电路120可以表示一个权重值的负权重部分。需要说明的是,本公开的实施例不限于上述配置方式,例如在进行计算操作时,还可以使得施加至第一位线端bl1的第一位线电压小于施加至源线端sl的源线电压,且施加至第二位线端bl2的第二位线电压大于源线电压。在这种情形下,第一权重电路110可以表示一个权重值的负权重部分,第二权重电路120可以表示一个权重值的正权重部分。图3中所示的神经突触单元电路100可以表示神经网络权重矩阵中的一个有正负的权重值。当多个图3中所示的神经突触单元电路100构成一神经网络电路时,该神经网络电路更容易映射为实际的神经网络权重矩阵,从而完成相应的计算操作;另外,该神经网络电路不需要额外的设置加法器电路,从而可以节约电路资源消耗。在一个示例中,图3所示的神经突触单元电路100可以实现为图4中的电路结构。例如,如图4所示,第一阻变电路111可以实现为第一忆阻器r1,第一开关电路112可以实现为第一晶体管m1,第一忆阻器r1的第一极(例如正极)和第一位线端bl1连接,第一忆阻器r1的第二极(例如负极)和第一晶体管m1的第一极连接,第一晶体管m1的栅极和第一字线端wl1连接,第一晶体管m1的第二极和源线端sl连接。第二阻变电路121可以实现为第二忆阻器r2,第二开关电路122可以实现为第二晶体管m2,第二忆阻器r2的第一极和第二位线端bl2连接,第二忆阻器r2的第二极和第二晶体管m2的第一极连接,第二晶体管m2的栅极和第二字线端wl2连接,第二晶体管m2的第二极和源线端sl连接。例如,如图4所示,在进行初始化操作时,可以通过第一字线端wl1向第一晶体管m1施加导通电压以开启第一晶体管m1,然后通过第一位线端bl1和源线端sl向第一忆阻器r1的两极施加电压(例如置位电压或复位电压)以调整第一忆阻器r1的电导值,从而第一忆阻器r1的电导值可以表示一个权重值的正权重部分。类似地,可以通过第二字线端wl2向第二晶体管m2施加导通电压以开启第二晶体管m2,然后通过第二位线端bl2和源线端sl向第二忆阻器r2的两极施加电压(例如置位电压或复位电压)以调整第二忆阻器r2的电导值,从而第二忆阻器r2的电导值可以表示一个权重值的负权重部分。例如,在进行计算操作时,可以通过第一字线端wl1和第二字线端wl2同时向第一晶体管m1和第二晶体管m2的栅极施加导通电压,以开启第一晶体管m1和第二晶体管m2。同时使得施加至第一位线端bl1的第一位线电压大于施加至源线端sl的源线电压,且施加至第二位线端bl2的第二位线电压小于源线电压。采用这种配置方式,流过第一忆阻器r1的电流如图中i1所示,流过第二忆阻器r2的电流如图中i2所示,则在源线端sl检测电流时,检测到的电流icell满足等式:icell=i1-i2,所以第一忆阻器r1的电导值可以表示一个权重值的正权重部分,第二忆阻器r2的电导值可以表示一个权重值的负权重部分。例如,图4中所示的第一忆阻器r1和第二忆阻器r2为阻值渐变型器件,这样在进行初始化操作时,可以逐步调整第一忆阻器r1和第二忆阻器r2的电导值,使得第一忆阻器r1和第二忆阻器r2更易于达到相应的电导值,从而可以分别表示一个权重值的正权重部分和负权重部分。图14为本公开的实施例提供的一种阻值渐变型器件的结构示意图。例如,如图14所示,该阻值渐变型器件包括层叠的第一氧化物层12和第二氧化物层13,第一氧化物层12的氧含量高于第二氧化物层12的氧含量。需要说明的是,氧含量为氧化物中氧的摩尔百分比含量。例如,第一氧化物层12和第二氧化物层13的材料均为金属氧化物。例如,第一氧化物层12的材料可以为五氧化二钽(ta5o2)或氧化铝(al2o3)等,第二氧化物层13的材料可以为二氧化钽(tao2)等。例如,阻值渐变型器件还包括第一电极层11和第二电极层14,第一氧化物层12和第二氧化物层13设置在第一电极层11和第二电极层14之间,且第一电极层11与第一氧化物层12电连接,第二电极层14与第二氧化物层12电连接。例如,第一电极层11的材料为活性金属材料,从而在外加电压下,使阻值渐变型器件的电阻值缓慢变化。活性金属例如可以为铝(al)、镍(ni)、或钛(ti)等。第二电极层14的材料可以为金属等导电材料,例如,可以为铜(cu)、铝(al)或钨(w)等。在图4中所示的神经突触单元电路100中,通过调整第一忆阻器r1和第二忆阻器r2的电导值,使得第一忆阻器r1和第二忆阻器r2可以分别表示一个权重值的正权重部分和负权重部分,从而神经突触单元电路100可以表示神经网络权重矩阵中的一个有正负的权重值。需要说明的是,本公开的实施例中采用的晶体管均可以为薄膜晶体管或场效应晶体管(例如cmos场效应晶体管)或其他特性相同的开关器件。这里采用的晶体管的源极、漏极在结构上可以是对称的,所以其源极、漏极在结构上可以是没有区别的。在本公开的实施例中,为了区分晶体管除栅极之外的两极,直接描述了其中一极为第一极,而另一极为第二极。本公开的实施例对采用的晶体管的类型不作限定,例如当晶体管采用n型晶体管时,其栅极和字线连接,例如字线上输入高电平时晶体管导通;例如当晶体管采用p型晶体管时,其栅极和字线连接,例如字线上输入低电平时晶体管导通。本公开的实施例均以n型晶体管为例进行说明,本公开包括但不限于此,例如本公开的实施例中的一个或多个晶体管也可以采用p型晶体管。本公开的至少一实施例还提供一种神经网络电路10,该神经网络电路10包括多个呈阵列排布的神经突触单元电路100,例如神经突触单元电路100可以采用图4所示的电路结构。例如,在图5所示的示例中,神经网络电路10包括m行n列的神经突触单元电路100。在图5中,blp<1>、blp<2>……blp<m>分别表示第一行、第二行……第m行的第一位线;bln<1>、bln<2>……bln<m>分别表示第一行、第二行……第m行的第二位线;wlp<1>、wlp<2>……wlp<n>分别表示第一列、第二列……第n列的第一字线;wln<1>、wln<2>……wln<n>分别表示第一列、第二列……第n列的第二字线;以及sl<1>、sl<2>……sl<n>分别表示第一列、第二列……第n列的源线。如图5所示,每一行神经突触单元电路100对应设置一条第一位线和一条第二位线,第一位线和对应行神经突触单元电路100中的第一阻变电路111电连接(即和第一忆阻器r1的第一极连接),从而可以向对应行神经突触单元电路100提供第一位线电压;第二位线和对应行神经突触单元电路100中的第二阻变电路121电连接(即和第二忆阻器r2的第一极连接),从而可以向对应行神经突触单元电路100提供第二位线电压。每一列神经突触单元电路100对应设置一条第一字线、一条第二字线以及一条源线,第一字线和对应列神经突触单元电路100中的第一开关电路112电连接(即和第一晶体管m1的栅极连接),从而可以向对应列神经突触单元电路100提供使得第一晶体管m1导通的电压;第二字线和对应列神经突触单元电路100中的第二开关电路122电连接(即和第二晶体管m2的栅极连接),从而可以向对应列神经突触单元电路100提供使得第二晶体管m2导通的电压;源线和对应列神经突触单元电路100中的源线端电连接,从而可以向对应列神经突触单元电路100提供源线电压。图5所示的神经网络电路10可以用于表示实际的神经网络权重矩阵,从而完成相应的计算操作。例如,当一个神经网络权重矩阵的列数n远小于行数m时(例如,n为32,m为128),采用图5所示的神经网络电路10可以节省用于驱动第一字线和第二字线的驱动电路的个数,从而可以节约电路资源消耗。又例如,在另一个示例中,如图6所示,该神经网络电路10同样包括m行n列的神经突触单元电路100。在图6中,blp<1>、blp<2>……blp<m>分别表示第一行、第二行……第m行的第一位线;bln<1>、bln<2>……bln<m>分别表示第一行、第二行……第m行的第二位线;wlp<1>、wlp<2>……wlp<m>分别表示第一行、第二行……第m行的第一字线;wln<1>、wln<2>……wln<m>分别表示第一行、第二行……第m行的第二字线;以及sl<1>、sl<2>……sl<n>分别表示第一列、第二列……第n列的源线。如图6所示,每一行神经突触单元电路100对应设置一条第一位线、一条第二位线、一条第一字线以及一条第二字线,第一位线和对应行神经突触单元电路100中的第一阻变电路111电连接(即和第一忆阻器r1的第一极连接),从而可以向对应行神经突触单元电路100提供第一位线电压;第二位线和对应行神经突触单元电路100中的第二阻变电路121电连接(即和第二忆阻器r2的第一极连接),从而可以向对应行神经突触单元电路100提供第二位线电压。第一字线和对应行神经突触单元电路100中的第一开关电路112电连接(即和第一晶体管m1的栅极连接),从而可以向对应行神经突触单元电路100提供使得第一晶体管m1导通的电压;第二字线和对应行神经突触单元电路100中的第二开关电路122电连接(即和第二晶体管m2的栅极连接),从而可以向对应行神经突触单元电路100提供使得第二晶体管m2导通的电压。每一列神经突触单元电路100对应设置一条源线,源线和对应列神经突触单元电路100中的源线端电连接,从而可以向对应列神经突触单元电路100提供源线电压。图6所示的神经网络电路10可以用于表示实际的神经网络权重矩阵,从而完成相应的计算操作。例如,当一个神经网络权重矩阵的行数m远小于列数n时(例如,n为128,m为32),采用图6所示的神经网络电路10可以节省用于驱动第一字线和第二字线的驱动电路的个数,从而可以节约电路资源消耗。又例如,在另一个示例中,如图7所示,该神经网络电路10同样包括m行n列的神经突触单元电路100。图7中所示的神经网络电路10和图5中所示的神经网络电路10的区别在于:在图7中,每一列神经突触单元电路100仅对应设置一条字线,该字线和该列神经突触单元电路100中的第一开关电路112以及第二开关电路122电连接(即和第一晶体管m1和第二晶体管m2的栅极连接),从而可以向第一晶体管m1和第二晶体管m2提供导通电压。在图7所示的神经网络电路10中,每一列神经突触单元电路100仅对应设置一条字线,可以节约布线资源。又例如,在另一个示例中,如图8所示,该神经网络电路10同样包括m行n列的神经突触单元电路100。图8中所示的神经网络电路10和图6中所示的神经网络电路10的区别在于:在图8中,每一行神经突触单元电路100仅对应一条字线,该字线和该行神经突触单元电路100中的第一开关电路112以及第二开关电路122电连接(即和第一晶体管m1和第二晶体管m2的栅极连接),从而可以向第一晶体管m1和第二晶体管m2提供导通电压。在图8所示的神经网络电路10中,每一行神经突触单元电路100仅对应设置一条字线,可以节约布线资源。本公开的实施例提供的神经网络电路10更容易映射为实际的神经网络权重矩阵,从而完成相应的计算操作;另外,该神经网络电路10不需要额外的设置加法器电路,从而可以节约电路资源消耗。本公开的至少一实施例还提供一种信息处理系统1,如图9所示,该信息处理系统1包括神经网络电路10、控制电路20、驱动电路30和输出电路40。例如,神经网络电路10可以采用本公开的实施例提供的任一神经网络电路10。例如,控制电路20被配置为在进行计算操作时,根据输入的待处理数据向驱动电路30发送控制信号。例如,在神经网络电路10进行计算操作时,待处理数据通常为表示成比特数据的数字电压,控制电路20可以根据该待处理数据向驱动电路30发送控制信号,然后驱动电路30根据接收到的控制信号向神经网络电路10提供驱动电压。例如,驱动电路30提供至神经网络电路10的驱动电压为模拟电压。例如,在神经网络电路10包括m行神经突触单元电路100的情形下,待处理数据可以为1*m的一维矩阵数据,m为大于1的整数。需要说明的是,关于待处理数据与提供至神经网络电路10的模拟电压之间的关系将在下文中进行描述,这里不再赘述。另外,在神经网络电路10进行初始化操作时,需要对神经网络电路10中的各个神经突触单元电路100的电导值完成初始化,此时控制电路20需要控制驱动电路30提供相应的驱动电压,以使得各个神经突触单元电路100完成置位操作或/和复位操作。例如,在一些实施例中,控制电路20可以实现为控制器。需要说明的是,在本公开的实施例中,控制电路20还可以实现为处理器。例如该处理器可以包括各种计算结构,例如复杂指令集计算机(cisc)结构、结构精简指令集计算机(risc)结构或者一种实行多种指令集组合的结构。在一些实施例中,处理器也可以是微处理器,例如x86处理器或arm处理器,或者可以是数字处理器(dsp)等。例如,驱动电路30被配置为向神经网络电路10提供驱动电压。例如,在图10和图11的示例中,驱动电路30包括位线驱动电路301、字线驱动电路302以及源线驱动电路303。例如,位线驱动电路301和神经网络电路10中的第一位线以及第二位线连接,以提供相应的第一位线电压和第二位线电压;字线驱动电路302和神经网络电路10中的第一字线以及第二字线连接,以提供相应的使得晶体管导通或关闭的控制电压;源线驱动电路303和神经网络电路10中的源线连接,以提供相应的源线电压。例如,在一些示例中,位线驱动电路301、字线驱动电路302以及源线驱动电路303都可以实现为驱动器。例如,输出电路40被配置为对神经网络电路10的输出结果进行处理。例如,如图10和图11的示例中,输出电路40包括采样保持电路s&h和模数转换电路adc。例如,在一个示例中,采样保持电路s&h被配置为采集神经网络电路10输出的模拟电流,模数转换电路adc被配置为将模拟电流转换为数字电流。又例如,在另一个示例中,采样保持电路s&h被配置为采集神经网络电路10输出的模拟电流并将模拟电流转换为模拟电压,模数转换电路adc被配置为将模拟电压转换为数字电压。本公开的实施例提供的信息处理系统1,可以实现并行计算,从而可以提高运算速度、降低功耗。该信息处理系统1可以应用于多层神经网络、自适应谐振网络以及卷积神经网络中,通过神经网络电路10的权重调节。从而完成相应的计算操作。图10和图11为图9所示的信息处理系统1的两个示例,其中,图10所示的信息处理系统1中的神经网络电路10对应于图5中所示的神经网络电路10,图11所示的信息处理系统1中的神经网络电路10对应于图6中所示的神经网络电路10。下面以图10中所示的信息处理系统1为例,对本公开的实施例提供的信息处理系统1以及神经网络电路10的工作原理进行描述。需要说明的是,图10中的晶体管均以n型晶体管为例进行说明。例如,如图10所示,神经网络电路10包括m行n列神经突触单元电路100,假设该神经网络电路10已经经过初始化操作,则该神经网络电路10可以表示一个权重矩阵wm*n。例如,待处理数据是一个1*m的一维矩阵数据i1*m,该一维矩阵数据i1*m和权重矩阵wm*n进行叉乘可以得到一个1*n的一维矩阵数据o1*n,即在进行计算操作时,控制电路20需要根据待处理数据i1*m向驱动电路30发送控制信号,以控制驱动电路30向神经网络电路10提供相应的模拟电压。例如,在一个示例中,待处理数据i1*m中的每个元素是1比特的比特数据,从而可以表示两种状态的模拟电压,例如该比特数据为[0]时表示不施加电压,比特数据为[1]时表示施加电压;在比特数据为1时需要提供至第一位线的第一位线电压为vref+vread,需要提供至第二位线的第二位线电压为vref-vread,vref表示提供至源线上的源线电压,vread表示读取电压。例如,如表1所示,在一个示例中,在源线电压vref=2.5v且读取电压vread=0.2v时,需要提供的第一位线电压为2.7v,第二位线电压为2.3v。表1置位复位计算第一字线电压3.5v5v5v第二字线电压gndgnd5v第一位线电压2.5vgnd2.7v(vref+vread)第二位线电压gnd2.5v2.3v(vref-vread)源线电压gnd2.5v2.5v(vref)又例如,在另一个示例中,待处理数据i1*m中的每个元素是2比特的比特数据,从而可以表示四种状态的模拟电压,例如该比特数据为[00]时表示不施加电压,比特数据为[01]时对应的读取电压vread=0.1v,比特数据为[10]时对应的读取电压vread=0.2v,比特数据为[11]时对应的读取电压vread=0.3v,然后再结合源线电压vref就可以获得所需的第一位线电压和第二位线电压。例如,在表1所示的示例中,在待处理数据i1*m中的每个元素是1比特的比特数据的情形下,在进行计算操作时,例如待处理数据i1*m中的第一个元素为1,则需要对第一行的神经突触单元电路100施加电压。具体地,控制电路20控制位线驱动电路301向第一行的第一位线blp<1>提供第一位线电压2.7v,以及向第一行的第二位线bln<1>提供第二位线电压2.3v;控制电路20控制字线驱动电路302向所有列的第一字线和第二字线提供导通电压5v;以及控制电路20控制源线驱动电路303向所有列的源线提供源线电压2.5v。上述描述是针对待处理数据i1*m中的一个元素进行说明的,即控制电路20根据该元素去控制驱动电路30向神经网络电路10中一行神经突触单元电路100提供相应的模拟电压,对于其它行的神经突触单元电路100所需的模拟电压,可以采用相同的处理方法,这里不再赘述。需要说明的是,待处理数据i1*m中的每个元素还可以是具有更多比特位的数据,本公开的实施例对此不作限定。施加至神经网络电路10的模拟电压经过神经网络电路10的计算后,从源线可以获得输出结果。例如,输出电路40可以对该输出结果进行处理,如上所述,在一个示例中,采样保持电路s&h可以被配置为采集神经网络电路10输出的模拟电流,例如,采样保持电路s&h和源线连接,从而采集源线上的模拟电流。模数转换电路adc和采样保持电路s&h连接,可以将采样保持电路s&h输出的模拟电流转换为数字电流。又例如,在另一个示例中,采样保持电路可以被配置为采集神经网络电路10输出的模拟电流并将模拟电流转换为模拟电压,例如该采样保持电路可以包括积分器或采样电阻;相应地,模数转换电路adc被配置为将上述模拟电压转换为数字电压。经过输出电路40的处理后,可以得到一维矩阵数据i1*m和权重矩阵wm*n叉乘的结果,即一维矩阵数据o1*n。例如,对应于第一列神经突触单元电路100的输出电路40的输出结果data<1>是o1*n中的第一个元素,对应于第n列神经突触单元电路100的输出电路40的输出结果data<n>是o1*n中的第n个元素。在上述进行计算操作时,对于每一个神经突触单元电路100,施加在第一忆阻器r1的第一极的电压为第一位线电压vref+vread,施加在第二忆阻器r2的第一极的电压为第二位线电压vref-vread,施加在源线端(即第一忆阻器r1的第二极以及第二忆阻器r2的第二极)的电压为源线电压vref,所以施加在第一忆阻器r1和第二忆阻器r2两端的电压差分别为vread和-vread,则通过源线检测到的电流icell=i1-i2=vread(g1-g2)。i1表示流过第一忆阻器r1的电流,i2表示流过第二忆阻器r2的电流,g1表示第一忆阻器r1的电导值,g2表示第二忆阻器r2的电导值。如上所述,在神经网络电路10表示一个神经网络权重矩阵时,每一个神经突触单元电路100可以表示该权重矩阵中的一个有正负的权重值,神经突触单元电路100中的第一忆阻器r1的电导值g1可以表示该权重值的正权重部分,神经突触单元电路100中的第二忆阻器r2的电导值g2可以表示该权重值的负权重部分。在进行计算操作前,还需要根据预设权重矩阵对神经网络电路10进行初始化操作,以使得该神经网络电路10可以表示该预设权重矩阵。下面结合图10和表1对神经网络电路10的初始化操作进行说明。例如,根据预设权重矩阵对神经网络电路10进行初始化操作包括:对神经网络电路10中的每个神经突触单元电路100进行置位和/或复位操作;以及检测神经网络电路10中的每个神经突触单元电路100的电导值是否和所述预设权重矩阵中对应的权重值相同。例如,对于图10中所示的第一行第一列的神经突触单元电路100,例如可以先对该神经突触单元电路100中的第一忆阻器r1进行初始化。在进行置位操作时,通过第一字线wlp<1>施加第一字线电压,使得第一晶体管m1导通,例如第一字线电压可以为3.5v。同时,通过第一位线blp<1>施加置位电压(第一位线电压)以对第一忆阻器r1进行置位,例如该置位电压可以为2.5v。通过置位操作可以增大第一忆阻器r1的电导值。另外,在进行复位操作时,通过第一字线wlp<1>施加第一字线电压,使得第一晶体管m1导通,例如第一字线电压可以为5v。同时,通过源线sl<1>施加复位电压(源线电压)以对第一忆阻器r1进行复位,例如该复位电压可以为2.5v。通过复位操作可以减小第一忆阻器r1的电导值。对表1中所示的电压示例有以下几点需要说明。第一,表1中所示的“gnd”表示接地,即对应的电压值为0v。第二,在进行置位操作时第一字线电压为3.5v,而在进行复位操作时第一字线电压为5v;如上所述,置位操作可以增大第一忆阻器r1的电导值,即减小第一忆阻器r1的阻值,在第一忆阻器r1两端电压不变的情况下,随着第一忆阻器r1的阻值越来越小,流过第一忆阻器r1的电流越来越大,所以为了防止电流过大发生过操作问题,在进行置位操作时,使得第一字线电压相对于复位操作时小一些。第三,在进行复位操作时,由于第二字线电压为零,所以第二晶体管m2关闭,此时仍然通过第二位线bln<1>施加第二位线电压(例如和源线电压相同,为2.5v),可以避免通过第二晶体管m2发生漏电。当然,此时也可以使得第二位线电压为零,本公开的实施例对此不作限定。例如,在上述对第一行第一列神经突触单元电路100中的第一忆阻器r1的初始化操作完成后,可以按照相同的方法对该神经突触单元电路100中的第二忆阻器r2进行初始化操作。例如,在对第一行第一列神经突触单元电路100完成初始化操作后,可以按照相同的方法对神经网络电路10中的其它神经突触单元电路100依次完成初始化操作,这里不再赘述。在本公开的实施例中,在进行置位操作或复位操作时,通过驱动电路40施加的第一位线电压、第二位线电压以及源线电压可以采用脉冲电压,例如,该脉冲电压的脉冲宽度包括20ns~100ns,例如脉冲宽度可以采用50ns。例如,在每次置位操作或复位操作后,都可以检测神经突触单元电路100的电导值是否和预设权重矩阵中对应的权重值相同。在检测神经突触单元电路100的电导值(g1-g2)时,可以根据施加在第一位线的第一位线电压、施加在第二位线的第二位线电压以及从源线上检测到的电流计算获得。如果检测神经突触单元电路100的电导值和预设权重矩阵中对应的权重值相同,则初始化操作结束;如果检测神经突触单元电路100的电导值和预设权重矩阵中对应的权重值不同,则继续进行置位和/或复位操作,直到检测神经突触单元电路100的电导值和预设权重矩阵中对应的权重值相同,则初始化操作结束。需要说明的是,在本公开的实施例中,神经突触单元电路100的电导值和预设权重矩阵中对应的权重值相同表示两者的误差满足预设的条件即可,并不一定要求两者完全相同,以下各实施例与此相同,不再赘述。图11所示的信息处理系统1的工作原理可以参考对图10所示的信息处理系统1的工作原理的相应描述,这里不再赘述。本公开的实施例提供的信息处理系统1,可以实现并行计算,从而可以提高运算速度、降低功耗。该信息处理系统1可以应用于多层神经网络、自适应谐振网络以及卷积神经网络中,通过神经网络电路10的权重调节。从而完成相应的计算操作。本公开的至少一实施例还提供一种信息处理方法,该信息处理方法可以用于本公开的实施例提供的信息处理系统1,如图12所示,该方法包括如下操作。步骤s20:根据待处理数据向驱动电路30发送控制信号;步骤s30:根据控制信号向神经网络电路10提供驱动电压;以及步骤s40:对神经网络电路10的输出结果进行处理。在本公开的另一个实施例中,如图12所示,上述信息处理方法还可以包括步骤s10:根据预设权重矩阵对神经网络电路10进行初始化。例如,在一个示例中,如图13所示,上述步骤s10可以包括如下操作。步骤s110:对神经网络电路10中的每个神经突触单元电路进行置位和/或复位操作;以及步骤s120:检测神经网络电路10中的每个神经突触单元电路100的电导值是否和预设权重矩阵中对应的权重值相同。例如,在另一个示例中,如图13所示,上述步骤s10还可以包括步骤130:如果神经网络电路中的每个神经突触单元电路的电导值和预设权重矩阵中对应的权重值不同,则继续进行置位和/或复位操作,直到神经网络电路中的每个神经突触单元电路的电导值和预设权重矩阵中对应的权重值相同。需要说明的是,关于本公开的实施例提供的信息处理方法的详细描述和技术效果可以参考本公开的实施例中对于信息处理系统1的工作原理的描述,这里不再赘述。以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1