一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有突触电子学和CMOS集成记忆电阻器的可扩展集成电路的制作方法

2022-02-22 03:10:04 来源:中国专利 TAG:

具有突触电子学和cmos集成记忆电阻器的可扩展集成电路
1.相关申请的交叉引用
2.本技术涉及并要求于2019年6月20日提交的美国专利申请号16/447,210的优先权,该申请是2014年8月6日提交的美国专利申请号14/453,154的部分延续,并且涉及并要求于2013年10月11日提交的美国临时申请号61/890,166的优先权,以及2013年10月14日提交的美国临时申请号61/890,790的优先权,这些申请被并入本文中,如同全文阐述一样。本技术还有关于2012年3月8日提交的美国申请号13/415,812、2012年6月27日提交的美国申请号13/535,114、以及2012年11月16日提交的美国专利申请号13/679,727,这些申请被并入本文中,如同全文阐述一样。
3.关于联邦资金的声明
4.本发明是根据美国政府合同hr0011-0 9-c-0001制造的。美国政府在本发明中具有某些权利。
技术领域
5.本公开涉及神经网络。


背景技术:

6.在下面列出的现有技术参考文献[1]中给出了示例性神经电路。然而在参考文献[1]中,神经元没有尖峰,也没有尖峰时间依赖性可塑性(stdp)。此外,神经元只能局部通信。
[0007]
在下面列出的现有技术参考文献[2]中,显示了具有stdp的尖峰神经元和突触。然而,这些电路没有相互连接,参考文献[2]没有任何互连结构。在下面列出的现有技术参考文献[3]中,示出了与cmos集成的记忆电阻器阵列。然而,参考文献[3]中没有使用神经电路、突触、stdp或互连结构。
[0008]
在下面列出的现有技术参考文献[4]中描述由基于记忆电阻器的神经元和突触组成的神经电路。然而,在该电路中,连接不是可编程的。此外,在参考文献[4]中,神经元只位于突触阵列的外围,因此神经元的数量与集成电路的水平或垂直维度成线性比例。
[0009]
参考文献
[0010]
[1]j.cruz等人,“16x16细胞神经网络芯片:具有分布式存储器和灰度输入输出的第一完整单片动态计算机阵列”,《模拟集成电路和信号处理》,第15卷,第3期,第227-238页,1998年3月
[0011]
[2]j.m.cruz-albrecht、m.yung和n.srinivasa,“节能神经元、突触和stdp集成电路”,《ieee trans生物医学电路系统》,第6卷,第3期,第246-256页,2012年6月。
[0012]
[3]kuk-hwan kim、siddharth gaba、dana wheeler、jose m.cruz-albrecht、tahir hussain、narayan srinivasa和wei lu,题为“用于数据存储和神经形态应用的功能性混合记忆电阻器交叉开关阵列/cmos系统”,《纳米快报》,第12卷,第1期,第389-395页,2012年1月11日。
[0013]
[4]jo s h、chang t、ebong i、bhadviya b b、mazumder p和lu w“纳米记忆电阻器设备作为神经形态系统中的突触”,《纳米快报》,10 1297-1301,2010年。
[0014]
[5]minkovich等人,“使用可伸缩神经形态编译器编程时分复用可重构硬件”,《ieee神经网络与学习系统事务》,第23卷,第6期,第889-901页(2012年6月2日),2015年2月20日ids,npl,第29期。
[0015]
所需要的是具有神经电路、突触电路和尖峰定时依赖性可塑性电路的改进的神经网络。本公开的实施例回答了这些和其他需要。


技术实现要素:

[0016]
在本文公开的第一实施例中,阵列包括多个处理节点,其中,每个处理节点包括:单个物理神经元电路,该单个物理神经元电路具有仅一个输入并具有输出;单个物理突触电路,该单个物理突触电路具有突触前输入,并且所述单个物理突触电路具有耦接到所述单个物理神经元电路的仅一个输入的单个物理输出;权重存储器,用于存储n个突触电导值或权重,所述权重存储器具有耦接到所述单个物理突触电路的输出,其中,n是大于1的整数;单个物理尖峰定时相关塑性(stdp)电路,该单个物理stdp电路具有耦接到所述权重存储器的输入的输出;第一输入,其耦接到所述单个物理神经元电路的输出;以及第二输入,其耦接到所述突触前输入;以及互连电路,其连接到所述突触前输入并连接到所述单个物理神经元电路的输出,其中,所述单个物理神经元电路的仅一个输入仅连接到所述单个物理突触电路的输出,其中,所述单个物理突触电路被时分复用以实现n个虚拟突触电路,并且其中,所述单个物理stdp电路被时分复用以实现n个虚拟stdp电路,并且其中,所述阵列中的每个相应处理节点中的互连电路耦接到所述阵列中的每个其他处理节点中的互连电路。
[0017]
在本文公开的另一实施例中,提供阵列的方法包括多个处理节点,其中,每个处理节点包括:单个物理神经元电路,该单个物理神经元电路具有仅一个输入并具有输出;单个物理突触电路,该单个物理突触电路具有突触前输入,并且所述单个物理突触电路具有耦接到所述单个物理神经元电路的仅一个输入的单个物理输出;权重存储器,用于存储n个突触电导值或权重,所述权重存储器具有耦接到所述单个物理突触电路的输出,其中,n是大于1的整数;单个物理尖峰定时相关塑性(stdp)电路,该单个物理stdp电路具有耦接到所述权重存储器的输入的输出;第一输入,其耦接到所述单个物理神经元电路的输出;以及第二输入,其耦接到所述突触前输入;以及互连电路,其连接到所述突触前输入并连接到所述单个物理神经元电路的输出,其中,所述单个物理神经元电路的仅一个输入仅连接到所述单个物理突触电路的输出,其中,所述单个物理突触电路被时分复用以实现n个虚拟突触电路,并且其中,所述单个物理stdp电路被时分复用以实现n个虚拟stdp电路,并且其中,所述阵列中的每个相应处理节点中的互连电路耦接到所述阵列中的每个其他处理节点中的互连电路。
[0018]
从下面的详细描述和附图中,这些和其他特征和优点将变得更加明显。在附图和说明书中,附图标记表示各种特征,贯穿附图和说明书,相同的标记表示相同的特征。
附图说明
[0019]
图1a示出了具有处理节点阵列的可重构神经网络的图,图1b示出了根据本公开的具有处理核心、记忆电阻器存储器和互连结构的处理节点的图;
[0020]
图2a示出了根据本公开的节点的处理核心的组件,并且示出了神经元电路、突触电路、尖峰定时依赖性可塑性(stdp)电路和权重存储器之间的相互作用;
[0021]
图2b示出了根据本公开的处理节点的示例阵列,并且示出了每个处理节点具有单个物理神经元电路、单个物理突触电路、单个物理stdp电路、权重存储器、连接性存储器和互连电路;
[0022]
图3示出了根据本公开的神经元的一个实施例;
[0023]
图4a和图4b示出了根据本公开的用于时分复用的时序图;
[0024]
图5a示出了具有行和列存取电路的一个处理节点内的记忆电阻器阵列的图,图5b示出了连接到记忆电阻器阵列的行的电路,图5c示出了连接到记忆电阻器阵列的列的电路,图5d示出了记忆电阻器的典型i-v特性的示例,以及图5e示出了当偏置在0.4v时记忆电阻器电流的典型值,并且对应于根据本公开的突触权重码;
[0025]
图6a示出了一个处理节点的互连结构,图6b示出了具有通/断控制的开关,图6c示出了具有控制的双向开关,并且图6d示出了用于存储根据本公开的连接性控制的存储器的细节;
[0026]
图7a示出了具有由连接到神经元电路的突触输出1-16表示的单个时间共享突触电路的输出的神经网络的模拟示例,并且图7b示出了根据本公开的存储器,该存储器具有与设置在互连结构中的时隙相对应的16行和与开关相对应的34列,其中黑色表示关断(off)状态,白色表示导通(on)状态;
[0027]
图8a示出在图8a的顶部,时间共享的突触尖峰输入到神经元电路,以及位于图8a的底部的神经元电路输出,并且图8b示出了根据本公开的随时间耦接到单个突触电路的示例突触电导值;
[0028]
图9a示出了用于记忆电阻器读取操作的电压波形,并且图9b示出了根据本公开的用于记忆电阻器读取操作的电流波形;
[0029]
图10a示出了用于记忆电阻器写入操作的电压波形,并且图10b示出了根据本公开的用于记忆电阻器写入操作的电流波形;
[0030]
图11a示出了具有10个神经元和16个突触的神经网络,图11b示出了存储在用于网络的存储器中的开关状态的快照,其中16行对应于时隙,34列对应于针对每个神经元类型在互连结构中设置的开关,其中黑色表示off状态,白色表示on状态,图11c示出了图11a中的输出神经元c的模拟,并且图11d示出了根据本公开的16个突触随时间的突触电导值,并且示出了收敛到正确状态;并且
[0031]
图12a示出了图11a中16个突触的突触前输入的模拟,图12b示出了由图11a的输出神经元c产生的突触后尖峰,并且图12c示出了根据本公开的在3秒测试期间的图11a中的16个突触的权重。
具体实施方式
[0032]
在以下描述中,阐述许多特定细节以清楚地描述本文所公开的各种特定实施例。
然而,本领域技术人员将理解,可在不具有下文论述的所有特定细节的情况下实践本发明。在其他情况下,没有描述公知的特征,以免混淆本发明。
[0033]
在本公开中,描述了具有尖峰神经元、突触和尖峰定时依赖性可塑性(stdp)的可缩放神经形态集成电路,其中神经元和突触之间的连接不是固定的,而是可以被编程的。突触、stdp电路和神经元和突触之间的互连路径是时分复用的。集成电路包括存储突触权重和互连路由信息的存储器。电路包括实现高密度的记忆电阻器存储器和写入和读取记忆电阻器的cmos电路。
[0034]
阵列中每个节点的结构由神经元电路、时分复用突触电路、时分复用stdp电路、权重存储器、时分复用可编程互连结构和用于控制互连结构的连接性存储器组成。
[0035]
本公开的目的是一种具有节点阵列的可重新配置集成电路,其可以实现具有尖峰定时依赖性可塑性的尖峰神经电路和突触的动态。本公开的集成电路的优点是缩放到高密度的能力,同时具有能够实现具有不同拓扑的不同神经网络的灵活性。
[0036]
图1a示出了具有处理节点12的阵列14的可重构神经电路10的顶层图。阵列14是二维阵列,并且可以是方形阵列。在图1a中,示出了10x10处理节点12的示例阵列14。可以构建更大的阵列,并且使用90nm cmos技术实现了具有24x24个节点的阵列的集成电路。
[0037]
处理节点12被布置为二维阵列14。这种布置允许节点12的数量与集成电路的面积成比例。随着集成电路的水平或垂直边的长度增加,节点12的数目增加长度的平方。
[0038]
在图1b中,示出了处理节点12的图。处理节点12具有处理核心20,处理核心20具有单个物理神经元电路22(其可以是集成和激发神经元电路)、单个物理突触电路24、单个物理stdp(尖峰定时依赖可塑性)元件26、用于存储突触权重的存储器28以及用于存储互连路由连接性的存储器30。存储器28和30可以是cmos。stdp元件26是适应元件或电路,其根据生物启发的尖峰定时依赖性可塑性(stdp)学习规则来调整突触24的权重或增益。
[0039]
处理节点12可以包括记忆电阻器存储器32。如图2a和图2b所示,记忆电阻器存储器32具有记忆电阻器35的记忆电阻器阵列34、dac/demux(数模转换器/解复用器)电路33和adc/mux(模数转换器/复用器)电路36。记忆电阻器存储器32可用于存储突触权重。在一个示例实施例中,每个节点可以有128个记忆电阻器。如图2a和图2b所示,处理核心20中的存储器28也可以存储突触权重。
[0040]
处理节点12还包括互连电路或结构38,如图1b和图6a中所示,其用于实现处理节点12之间的通信。每个处理节点中的互连电路38耦接到每个其他处理节点12中的突触前输入40,并且耦接到每个其他处理节点12中的单个物理神经元电路22的输出42。互连结构38还可以用于在每个处理节点中提供神经元电路22、突触电路24和stdp电路26之间的连接,如图6a所示。
[0041]
互连结构38由图6a中所示的导线段83和开关84和85组成。如图6a所示,互连结构38的开关84可以在处理节点中提供神经元电路22、突触电路24和stdp电路26之间的连接。
[0042]
开关84和85由存储在处理核心20的存储器30中的连接性设置控制。
[0043]
可重构神经电路10中的节点12的阵列是模块化的,并且每个节点12可以直接邻接于其相邻节点12。所有处理节点12具有相同的处理核心20、相同的记忆电阻器存储器32和相同的互连结构38。然而,每个节点12的操作可以独立地编程。每个节点12可以被编程为支持节点阵列14中既靠近又远离的节点12之间的通信。
[0044]
图2a示出了示出神经元电路22(其可以是集成和激发神经元电路)、突触电路24、stdp电路26和记忆电阻器存储器32或存储器28之间的相互作用的图。每个节点12有一个神经元电路22,每个节点有一个突触电路,每个节点有一个stdp电路,以及记忆电阻器存储器32或存储器28。如图3所示是积分和激发型神经元电路22,其对输入25进行积分,如图2a和图2b中所示在内部蓄压器48中。当积分值达到由寻址记忆电阻器35的值设置的阈值时,神经元22将蓄压器48重置回零并产生输出尖峰。
[0045]
每个节点12的处理核心20仅具有单个物理神经元电路22、单个物理突触电路24和单个物理stdp电路26。单个物理突触电路24具有连接到单个物理神经元电路22的输入的单个物理输出25。如图2a所示,节点中的单个物理神经元电路22仅具有仅连接到节点中的单个物理突触电路24的一个物理输入25。
[0046]
单个物理突触电路24可以以多种方式实现,并且一种方式是上文参考文献[2]的图3b中所示的突触电路,参考文献[2]通过引用并入本文,并且其示出突触具有突触前输入和权重w。单个物理突触电路24的边界与图3b的圆圈内的突触部分相同,该部分具有vpre输入和is输出和w权重,以及图5a和图5b中所示的突触核心。图3b的突触不是时间共享的。在本公开中,单个物理突触电路24被时分复用以实现n个虚拟突触电路,这减少了所需电路的数量,所述电路可以是cmos电路。在节点12中具有单个物理突触电路24也减少了节点12中所需互连的数目。节点12中的单个物理stdp电路26可以以多种方式实现,并且一种方式是上面参考文献[2]的图5b中所示的stdp电路。单个物理突触电路24的边界与示出具有vpre和vpost输入以及到突触核心的w输出的stdp电路的图5a和图5b的部分相同。当从记忆电阻器存储器32或存储器28读取权重时,突触24被时分复用以实现n个虚拟突触。因此,神经元22的输出42在每个时间间隔改变,因此到stdp电路的输入也在每个时间间隔改变,使得一个物理stdp电路被时分复用以实现n个虚拟stdp,这减少了所需电路的数量并且还减少了节点12中所需互连的数量。用于存储突触权重的存储器存储n个突触权重,其数目与虚拟突触电路和虚拟stdp电路的数目n相同。实现n个虚拟突触电路的突触权重可存储在记忆电阻器存储器32或存储器28中。在一个示例实施例中,n可以是128。
[0047]
继续参照图2a,单个物理stdp电路26具有两个输入,一个输入是突触前输入40,第二输入是从单个物理神经元电路22的突触后输出42反馈的。stdp电路26的输出44用于从记忆电阻器存储器32或从存储器28访问突触权重46。突触权重46连接到单个物理突触电路24,如图2a中所示。
[0048]
图2b示出了处理节点12的示例阵列,其具有以3x3阵列布置的9个处理节点12的二维阵列。阵列的大小和阵列中的处理节点的数目可以是任何大小和数目。图2b示出了每个处理节点12具有单个物理神经元电路22、单个物理突触电路24、单个物理stdp电路26、权重存储器37、连接性存储器30和互连电路38。权重存储器37可以是记忆电阻器存储器32或存储器28。节点12中的互连电路38连接到所有其他节点12中的互连电路,如图2b所示。
[0049]
图3示出了处理核心20中的神经元电路22的实施例。在该实施例中,神经元电路22是数字电路。图2a和图2b中示出的输入52示出了从单个物理突触电路24到神经元的多个虚拟突触输入。每个虚拟突触输入是数字的,并且蓄压器48的输出是计数。当蓄压器48的计数达到阈值时,比较器50在线51上输出一个尖峰信号,并使蓄压器48复位。在一个实施例中,尖峰可以是1位数字信号。蓄压器48对输入52进行积分,该输入52可以是一个或多个虚拟突
触电路24的输出,该虚拟突触电路24可以由时分复用的单个物理突触电路24实现,该单个物理突触电路24的单个物理输出25连接到单个物理神经元电路22,如图2a和图2b中所示。比较器50将蓄压器48的状态与可以是数字的阈值电压vth 54进行比较。如果蓄压器48的状态大于vth 54,则比较器50产生输出尖峰,并复位蓄压器48的状态。例如,蓄压器48的状态可以被复位到对应于0伏的计数。蓄压器48可以是9位蓄压器。
[0050]
在处理核心中也可以使用其他神经元电路。在2012年11月16日提交的美国专利申请13/679,727中,图6a中示出了可以使用的另一个神经元实现,该美国专利申请被并入本文中,如同被完全阐述一样。
[0051]
图4a和图4b示出了突触时分复用的时序图。该突触时分复用(stm)可以通过将给定stm循环56中消耗的时间(其是循环通过n个虚拟突触电路和n个虚拟stdp电路所需的时间)划分为时隙58来执行,在一个示例中,时隙58可以是100μs持续时间,每个时隙用于高达n*100μs持续时间的总循环时间。
[0052]
在一个实施例中,在每个100μs时隙58期间,突触电路24被分配来执行一个给定虚拟突触和一个虚拟stdp的功能。在一个示例中,n可以是128,因此在对应于128个时隙58的12.8ms循环期间,突触24可以实现128个不同的虚拟突触和stdp。时分复用需要每个虚拟突触存储一个突触电导。例如,该存储可以由12个8个记忆电阻器35的记忆电阻器阵列34提供。在每个时隙中,读取一个记忆电阻器35以访问突触突触电导。此外,在每个时隙58中,记忆电阻器阵列34中的每个记忆电阻器35中所存储的突触权重值可以根据由stdp电路26提供的更新值来更新。更新值用于增加或减少在记忆电阻器35中当前存储的虚拟突触的突触电导值。可以以固定顺序访问记忆电阻器35。在stm循环56的时隙58期间,对应于虚拟突触的相应记忆电阻器35可以被访问一次用于读取,并且如果需要,被访问一次用于写入,以使当前存储的突触电导值增加或减少更新值。
[0053]
突触权重或电导值可以以3位精度存储在存储器28或记忆电阻器存储器32中。在一个实施例中,存储器28可由cmos触发器、sram(静态随机存取存储器)或任何其他类型的数字存储器制成。
[0054]
每个节点12的记忆电阻器阵列34连接到可以是cmos的电路,以选择用于读或写操作的记忆电阻器35。图5a中示出了记忆电阻器阵列34的符号图,并且示出128个记忆电阻器35,纳米线60和61分别布置成16行和8列。在该实施例中,存在16个行通孔62和8个列通孔63以将纳米线60和61分别连接到行电路64和列电路66。行电路64和列电路66用于在任何一个时隙58选择记忆电阻器阵列34的一个记忆电阻器35以执行读操作或写操作。
[0055]
图5b示出了行电路64的图,行电路64具有缓冲放大器70、模数转换器(adc)72和解复用器(demux)74。行地址被输入到demux 74,以将缓冲放大器70的输出vsel_row 71连接到与记忆电阻器纳米线60连接的行通孔62中的一个。其他15根未选择的纳米线60可以连接到偏置电压76。
[0056]
为了从记忆电阻器35读取记忆电阻器值,缓冲放大器70用于设置vsel_row 71上的读取电压。放大器70具有额外端子73,其提供与流到记忆电阻器的电流相等的电流。该电流与存储在记忆电阻器中的值成比例,由模数转换器72数字化,以产生突触权重或突触电导值46,其可以是3位(8级)码。突触权重或突触电导值46被施加到突触24,如图2a和图2b中所示。
[0057]
图5c示出了列电路66的图,列电路66具有解复用器(demux)78,解复用器78根据列地址80将vsel_col 79连接到与记忆电阻器纳米线61连接的列通孔63中的一个,如图5a中所示。其他未选择的纳米线连接到其他偏置电压,例如偏置电压81。这些偏置电压用于最小化泄漏路径。图5d中示出了记忆电阻器35的典型i-v特性,并且在图5e中示出了在0.4v的记忆电阻器读取操作期间的典型电流电平。
[0058]
由处理节点12中的神经元电路22产生的输出尖峰信号可以通过互连结构38路由到不同节点12的突触电路24,这在图6a、图6b和图6c中详细示出。
[0059]
图6a示出了与一个节点12相关联的互连结构或互连电路38的细节。互连结构38由导体或导线83、基于单向缓冲器的开关84、基于双向缓冲器的开关85和存储器30组成。存储器30存储由互连结构使用的连接性数据。在一个实施例中,使用cmos技术来实现该存储器。开关84和85中的每一个的导通或关断状态存储在存储器30中。所有节点12具有相同的硬件,但是对于stm循环56的每个时隙58,可以在每个节点12中独立地编程开关状态。单向开关84可以由如图6b中所示的缓冲器84来实现。缓冲器84可以根据控制线86来导通或关断。图6c中示出了双向开关85的细节。该开关由两个缓冲器组成,但是在给定时间两个缓冲器中只有一个被设置为导通,并且双向开关85的状态由两条控制线87控制。节点12内的存储器30包含关于所有开关84、85的控制(导通或关断)的信息。对于stm循环56中的所有时隙58,节点12的所有开关状态对于每个stm循环56可以是相同的。因此,存储器30只需要存储一个stm循环的所有时隙的开关状态,该stm循环是循环通过n个虚拟突触所需的时间。
[0060]
存储器30存储用于stm循环的所有时隙的互连或路由配置,如图6d中所示。在一个实施例中,存储器30每个节点具有34列和n行。存储器30的一列中的数据用于产生用于所有n个时隙的特定开关的控制信号。利用用户定义的网络拓扑来初始化存储器30。神经形态编译器可以用来初始化该存储器。编译器的示例在上述参考文献[5]中进行了描述,该文献通过引用并入本文。
[0061]
可重构神经电路10可以被编程以实现不同的神经网络。下面描述两个模拟。在每个模拟的情况下,集成电路实现特定的神经网络拓扑。
[0062]
在图7a中示出的第一模拟中的神经网络由神经元22和16个突触24组成。每个突触的权重由stdp电路26内部控制。图7a的网络可以区分其若干输入是否彼此相关。
[0063]
实现图7a的网络的模拟通过设置节点中的开关状态来初始化存储器30以在神经元之间路由尖峰而开始,如图7b所示。图7b中的曲线示出了使用与图6d中所示的相同格式的存储器30的内容。图7b将存储器示出为位的阵列。列与节点的特定开关相关联。行与一个时隙相关联。在图7b的曲线图中,存储器30的大小是34行,每一行具有16位。在该示例中,值为“0”位以黑色示出,值为“1”的位以白色示出。
[0064]
图8a中的顶部曲线示出了以尖峰串的形式提供给突触24的输入。彼此不相关的一组八个不同的输入尖峰序列被施加到突触9至16。一个附加的尖峰串信号,如图8a中的in
1-8
所示,用作突触1至8的公共输入。在这个模拟中,突触1-8接收相同的输入,彼此完全相关。如上所述,网络可用于确定哪些输入彼此相关或不相关。本发明的电路可实现可用于不同应用的不同神经网络(具有不同拓扑)。为了说明和模拟电路的操作,作为第一示例,我们已经实现了神经网络,该神经网络可以用于区分相关输入到不相关输入的应用中。本发明的电路还可以实现用于其他应用的其他神经网络。
[0065]
图8a中的底部曲线图示出了在模拟过程中由图7a中所示的神经元22产生的输出。stdp电路24使用突触前输入40和神经元输出42来生成对突触电导值的更新。在这个模拟中,有16个突触电导权重存储在16个记忆电阻器中。图8b中示出了16个突触电导权重的时间演化,表示为w
1,1
至w
1,16
。它们存储在一个节点内的记忆电阻器m
1,1
至m
1,16 35中。在循环56期间,对于每个时隙58循环地访问节点的记忆电阻器。每个存取操作包括记忆电阻器读取、由stdp电路计算权重增量或减量、以及记忆电阻器写入以更新记忆电阻器中的突触电导权重。只有当存在不同于零增量或减量的变化时才执行写入。
[0066]
在100μs时隙58期间,节点12的一个记忆电阻器35被访问一次。在1.6ms stm循环56期间,节点12的所有16个记忆电阻器35被访问一次。图8b中的曲线图示出了对于0.3秒操作的权重的模拟。在该模拟中,在16个记忆电阻器中的每一个上平均执行187个存取操作。
[0067]
图8b中的曲线图的垂直轴表示突触电导值46的代码。该代码由图5b中所示的adc 72产生,其范围从0到7,步长为1。根据模拟可以观察到,在0.3秒之后,与接收相关输入的突触24相关联的突触电导值w
1,1
至w
1,8
都趋向于高值。与接收不相关输入的突触24相关联的权重w
1,9
至w
1,16
都趋向于低值,这是期望的行为。
[0068]
在该模拟期间单个记忆电阻器35读取操作的细节在图9a和图9b中示出。图9a中的波形标记为p 100,表示施加到记忆电阻器35的正端子的电压,并且在该模拟中为0.4v,然而,该电压也可以被编程为不同的值。标记为n 102的线表示施加到记忆电阻器35的负端子的电压。在读取操作期间,其为零。控制信号,如图9a所示,使adc电路72的操作能够将记忆电阻器的电流数字化为八个可能的突触电导代码46之一。在典型实施例中,读取操作持续4μs。图9b中示出了在读取操作期间通过记忆电阻器35的电流。在典型实施例中,在读取操作期间,电流的范围从2μa至16μa。
[0069]
模拟期间典型写入操作的细节如图10a和图10b所示。写入操作用于使记忆电阻器35的值增加或减少更新值。stdp 26计算突触权重的所需增加或减少。然后,它将一个脉冲或一组脉冲与突触电导的变化幅度成比例地施加到记忆电阻器的两个端子之一。
[0070]
对于突触电导的增量变化,脉冲被施加到记忆电阻器35的正端子。图10a中示出了用于写入操作的关键电压。标记为p 104的波形表示施加到记忆电阻器35的正端子的电压。在该模拟中,使用的写入电压是1.4伏,然而,电压也可以被编程为不同的值。标记为n 106的线表示施加到记忆电阻器35的负端子的电压。在读取操作期间,其近似为零。虚线108表示设置写入脉冲的持续时间的控制信号。为了将增量写入突触权重,施加从1至4个写入脉冲。
[0071]
脉冲的数目由芯片上控制电路确定,该芯片上控制电路刚好在每个写入脉冲之后读取记忆电阻器电流。当达到目标增量值时,停止该组脉冲。在图10a的示例中,在两个写入脉冲之后实现目标增量。图10b中示出了在写入序列期间通过记忆电阻器35的电流。在每个写入脉冲期间,大约100μs的电流可以流过记忆电阻器35。在每个写入脉冲之后的4μs间隔内测量的读取电流在2μa至16μa的期望范围内。对于减量操作,当脉冲施加到记忆电阻器35的负端子时,发生类似的过程。
[0072]
图11a中示出了实现具有10个神经元22的更复杂网络的可重构神经电路10的模拟。该模拟具有位于输入90和输出神经元92之间的9个神经元22的附加层,输出神经元92具有输出93。该网络的功能行为类似于上述模拟,因为该网络可以区分相关输入和不相关输
入。
[0073]
存储器30被初始化,如图11b中所示。每个节点12中的开关状态被设置为如图11b中所示,并用于在每个stm循环56期间在网络中的各个神经元之间路由尖峰。在每个stm循环完成之后,从开始重复该过程。图11c中示出了神经元92的输出93。图11d中示出了16个突触权重的时间演化,表示为w
1,1
至w
1,16
。权重被存储在节点12内的记忆电阻器m
1,1
至m
1,16 35中。在本发明的一个实施例中,这些记忆电阻器是图5a所示的8x16记忆电阻器阵列的一部分。可以观察到,在大约0.8秒之后,与接收相关输入的突触相关联的权重w
1,1
至w
1,8
都趋向于高值。与接收不相关输入的突触相关联的权重w
1,9
至w
1,16
都趋向于低值,这是期望的行为。
[0074]
制造实现可重构神经电路10的集成电路并进行测试。可重构神经电路10被配置为实现如图11a所示的相同网络,如所描述的,其可以区分若干输入信号是否彼此相关。
[0075]
突触权重被存储在存储器28中。在网络中,在输入神经元22和输出神经元92之间存在16个突触24。图12a的曲线图示出了这16个突触的突触前输入。突触的八个输入是相同的,因此彼此相关。到其他突触的其他8个输入彼此不相关。图12b的曲线图示出了由输出神经元92产生的突触后尖峰。图12c的曲线图示出了在3秒测试期间16个突触的权重。在测试结束时,权重分散到高值或低值。达到高值的权重根据需要对应于接收相关输入的突触。根据需要,达到低值的权重对应于接收不相关输入的突触。
[0076]
根据专利法的要求描述了本发明,本领域的技术人员将理解如何对本发明进行改变和修改,以满足其特定的要求或条件。可以在不背离如本文所公开的本发明的范围和精神的情况下进行这样的改变和修改。
[0077]
上述示例性和优选实施例的详细描述是用于说明目的和根据法律要求进行公开。其并非旨在穷举或将本发明限制于所描述的精确形式,而是仅使本领域技术人员能够理解本发明如何适合于特定用途或实施。修改和变化的可能性对于本领域技术人员将是显而易见的。对可能具有包括公差、特征尺寸、特定操作条件、工程规范等的示例性实施例的描述并不意图进行限制,并且其可以在实现之间变化或者随着对现有技术的改变而变化,并且不应当由此暗示限制。申请人已经针对现有技术进行了本公开,但是也考虑了改进,并且在未来的修改可以考虑这些改进,即根据现有技术的现有技术。本发明的范围由权利要求书限定为书面的和可适用的等同物。除非明确说明,否则以单数形式提及权利要求元件并不意味着“一个且仅一个”。此外,本公开中的元件、组件或方法或工艺步骤都不旨在专用于公众,而不管所述元件、组件或步骤是否在权利要求书中明确地陈述。本文中的任何权利要求要素都不应被解释为按照35u.s.c.第112节,第六段中所规定的内容,除非该要素是使用短语“意味着...”明确地陈述的,并且本文件中的任何方法或工艺步骤都不得根据这些规定解释,除非该一个或多个步骤明确陈述“包括以下步骤
…”

[0078]
广义地,本技术公开了至少如下内容:可重构神经电路包括处理节点阵列。每个处理节点包括:具有仅一个输入和输出的单个物理神经元电路;具有突触前输入的单个物理突触电路;耦接到所述神经元电路的输入的单个物理输出;权重存储器,用于存储n个突触电导值或具有耦接到所述单个物理突触电路的输出的权重;单个物理尖峰定时相关塑性(stdp)电路,其具有耦接到所述权重存储器的输出;耦接到所述神经元电路的输出的第一输入;以及耦接到所述突触前输入的第二输入;以及互连电路,其连接到所述突触前输入并
连接到所述单个物理神经元电路的输出。突触电路和stdp电路都是时分复用电路。每个相应处理节点中的互连电路耦接到每个其他处理节点中的互连电路。
[0079]
概念
[0080]
已经公开了至少以下概念。
[0081]
概念1.一种可重构神经电路,包括:阵列,该阵列包括多个处理节点;其中,每个处理节点包括:
[0082]
单个物理神经元电路,所述单个物理神经元电路具有仅一个输入并具有输出;
[0083]
单个物理突触电路,所述单个物理突触电路具有突触前输入,并且所述单个物理突触电路具有耦接到所述单个物理神经元电路的仅一个输入的单个物理输出;
[0084]
权重存储器,用于存储n个突触电导值或权重,所述权重存储器具有耦接到所述单个物理突触电路的输出,其中,n是大于1的整数;
[0085]
单个物理尖峰定时相关塑性(stdp)电路,所述单个物理stdp电路具有耦接到所述权重存储器的输入的输出、耦接到所述单个物理神经元电路的输出的第一输入、以及耦接到所述突触前输入的第二输入;以及
[0086]
互连电路,其连接到所述突触前输入并连接到所述单个物理神经元电路的输出;
[0087]
其中,所述单个物理神经元电路的仅一个输入仅连接到所述单个物理突触电路的输出;
[0088]
其中,所述单个物理突触电路被时分复用以实现n个虚拟突触电路;并且
[0089]
其中,所述单个物理stdp电路被时分复用以实现n个虚拟stdp电路;并且
[0090]
其中,所述阵列中的每个相应处理节点中的互连电路耦接到所述阵列中的每个其他处理节点中的互连电路。
[0091]
概念2.根据概念1所述的可重构神经电路:
[0092]
其中,每个处理节点适于针对n个时间段的每个相应时间段从所述权重存储器读取n个突触电导值或权重中的相应一个,并且其中,在所述n个时间段的相应时间段期间耦接到所述单个物理突触电路的所述n个突触电导值或权重中的每一个相应的突触电导值或权重使得所述单个物理突触电路根据在所述相应时间段期间耦接的电导值或权重作为相应的虚拟突触操作;并且
[0093]
其中,每个处理节点适于通过根据所述单个物理尖峰定时依赖可塑性电路在相应时间段期间的输出在相应时间段中写入所述权重存储器来更新从所述权重存储器读取的相应突触电导值或权重。
[0094]
概念3.根据概念1或2所述的可重构神经电路,其中:
[0095]
所述神经元电路包括积分和激发电路。
[0096]
概念4.根据概念1所述的可重构神经电路,其中:
[0097]
所述权重存储器包括记忆电阻器存储器、触发器、静态随机存取存储器或数字存储器。
[0098]
概念5.根据概念1、2、3或4所述的可重构神经电路:
[0099]
其中,每个处理节点中的互连电路耦接到每个其他处理节点中的突触前输入,并且耦接到每个其他处理节点中的单个物理神经元电路的输出。
[0100]
概念6.根据概念1、2、3、4或5所述的可重构神经电路,其中:
[0101]
所述互连电路包括多个开关,用于改变去往和来自所述阵列中的相应处理节点和其他处理节点的互连。
[0102]
概念7.根据概念6所述的可重构神经电路,其中:
[0103]
多个开关包括多个单向和双向开关。
[0104]
概念8.根据概念1、2、3、4、5、6或7所述的可重构神经电路,其中:
[0105]
所述单个物理stdp电路包括生物启发的尖峰定时相关塑性(stdp)学习规则。
[0106]
概念9.根据概念1、2、3、4、5、6、7或8所述的可重构神经电路,其中:
[0107]
所述阵列包括处理节点的二维阵列。
[0108]
概念10.根据概念1、2、3、4、5、6、7、8或9所述的可重构神经电路,其中,每个处理节点还包括:
[0109]
连接性存储器;
[0110]
其中,每个处理节点中的互连电路包括多个开关;
[0111]
其中,所述连接性存储器存储用于所述多个开关中的每个相应开关的多个互连电路路由控制;并且
[0112]
其中,用于所述多个开关中的相应开关的所述多个互连电路路由控制被配置为针对n个时间段的每个相应时间段控制所述相应开关。
[0113]
概念11.根据概念10所述的可重构神经电路:
[0114]
其中,存储在每个处理节点中的连接性存储器中的互连电路路由控制确定相应处理节点中的单个物理神经元电路的输出是否连接到另一处理节点中的相应突触前输入。
[0115]
概念12.根据概念10或11所述的可重构神经电路:
[0116]
其中,相应处理节点中的互连电路提供相应处理节点中的单个物理神经元电路、单个物理突触电路和单个物理stdp电路之间的连接。
[0117]
概念13.根据概念10、11或12所述的可重构神经电路:
[0118]
其中,针对所述阵列中的每个相应处理节点独立地编程存储在相应处理节点中的连接性存储器中的多个互连电路路由控制。
[0119]
概念14.根据概念10、11、12或13所述的可重构神经电路:
[0120]
其中,所述连接性存储器具有对应于处理节点中的每个相应开关的列;
[0121]
其中,每一列具有对应于所述n个时间周期的n行;并且
[0122]
其中,用于相应开关的列中的互连电路路由控制包括用于相应开关的n个控制,其中n个控制中的每一个是on或off。
[0123]
概念15.根据概念1、2、3、4、5、6、7、8、9、10、11、12、13或14所述的可重构神经电路:
[0124]
其中,在操作期间,时间被划分为突触时分复用循环;
[0125]
其中,每个循环包括n个时隙;并且
[0126]
其中,在所述n个时隙中的每个时隙期间,所述权重存储器输出所述n个突触传导值或权重中的相应一个,所述单个物理突触电路实现n个虚拟突触电路中的相应一个虚拟突触电路,并将n个虚拟突触电路中的相应一个虚拟突触电路的输出输出输出到所述单个物理神经元电路,并且所述单个物理stdp电路基于时隙期间所述单个物理神经元电路的输出和时隙期间所述突触前输入来实现n个虚拟stdp电路中的相应一个,并且在时隙期间更新n个突触电导值或权重中的相应一个。
[0127]
概念16.根据概念15所述的可重构神经电路:
[0128]
其中,每个处理节点具有用于控制处理节点中的互连电路的连接性存储器;并且
[0129]
其中,在每个时隙期间,根据从相应处理节点中的连接性存储器读取的控制来配置相应处理节点中的互连电路。
[0130]
概念17.一种用于提供可重构神经电路的方法,包括:
[0131]
提供阵列,该阵列包括多个处理节点;
[0132]
其中,每个处理节点包括:
[0133]
单个物理神经元电路,所述单个物理神经元电路具有仅一个输入并具有输出;
[0134]
单个物理突触电路,所述单个物理突触电路具有突触前输入,并且所述单个物理突触电路具有耦接到所述单个物理神经元电路的仅一个输入的单个物理输出;
[0135]
权重存储器,用于存储n个突触电导值或权重,所述权重存储器具有耦接到所述单个物理突触电路的输出,其中,n是大于1的整数;
[0136]
单个物理尖峰定时相关塑性(stdp)电路,所述单个物理stdp电路具有耦接到所述权重存储器的输入的输出、耦接到所述单个物理神经元电路的输出的第一输入、以及耦接到所述突触前输入的第二输入;以及
[0137]
互连电路,其连接到所述突触前输入并连接到所述单个物理神经元电路的输出;
[0138]
其中,所述单个物理神经元电路的仅一个输入仅连接到所述单个物理突触电路的输出;
[0139]
其中,所述单个物理突触电路被时分复用以实现n个虚拟突触电路;并且
[0140]
其中,所述单个物理stdp电路被时分复用以实现n个虚拟stdp电路;并且其中,所述阵列中的每个相应处理节点中的互连电路耦接到所述阵列中的每个其他处理节点中的互连电路。
[0141]
概念18.根据概念17所述的方法,所述方法还包括:
[0142]
针对n个时间段的每个相应时间段从所述权重存储器读取n个突触电导值或权重中的相应一个,并且其中,在所述n个时间段的相应时间段期间耦接到所述单个物理突触电路的所述n个突触电导值或权重中的每一个相应的突触电导值或权重使得所述单个物理突触电路根据在所述相应时间段期间耦接的电导值或权重作为相应的虚拟突触操作;以及
[0143]
通过根据所述单个物理尖峰定时依赖可塑性电路在相应时间段期间的输出在相应时间段中写入所述权重存储器来更新从所述权重存储器读取的相应突触电导值或权重。
[0144]
概念19.根据概念17或18所述的方法,其中:
[0145]
所述神经元电路包括积分和激发电路。
[0146]
概念20.根据概念17、18或19所述的方法,其中:所述权重存储器包括记忆电阻器存储器、触发器、静态随机存取存储器或数字存储器。
[0147]
概念21.根据概念17、18、19或20所述的方法,
[0148]
其中,每个处理节点中的互连电路耦接到每个其他处理节点中的突触前输入,并且耦接到每个其他处理节点中的单个物理神经元电路的输出。
[0149]
概念22.根据概念17、18、19、20或21所述的方法,其中:
[0150]
所述互连电路包括多个开关,用于改变去往和来自所述阵列中的相应处理节点和其他处理节点的互连。
[0151]
概念23.根据概念22所述的方法,其中:
[0152]
多个开关包括多个单向和双向开关。
[0153]
概念24.根据概念17、18、19、20、21、22或23所述的方法,其中:
[0154]
stdp电路包括生物启发的尖峰定时相关塑性(stdp)学习规则。
[0155]
概念25.根据概念17、18、19、20、21、22、23或24所述的方法,其中:
[0156]
提供所述阵列包括提供处理节点的二维阵列。
[0157]
概念26.根据概念17、18、19、20、21、22、23、24或25所述的方法,其中:
[0158]
其中,每个处理节点还包括:
[0159]
连接性存储器;
[0160]
其中,每个处理节点中的互连电路包括多个开关;并且
[0161]
在连接性存储器中存储用于所述多个开关中的每个相应开关的多个互连电路路由控制;并且
[0162]
将用于所述多个开关中的相应开关的所述多个互连电路路由控制配置为针对n个时间段的每个相应时间段控制所述相应开关。
[0163]
概念27.根据概念26所述的方法:
[0164]
其中,存储在每个处理节点中的连接性存储器中的互连电路路由控制确定相应处理节点中的单个物理神经元电路的输出是否连接到另一处理节点中的相应突触前输入。
[0165]
概念28.根据概念26或27所述的方法:
[0166]
其中,相应处理节点中的互连电路提供相应处理节点中的单个物理神经元电路、单个物理突触电路和单个物理stdp电路之间的连接。
[0167]
概念29.根据概念26、27或28所述的方法,所述方法进一步包括:
[0168]
在每个相应处理节点中对存储在连接性存储器中的多个互连电路路由控制进行编程;
[0169]
其中,所述编程对于所述阵列中的每个相应处理节点是独立的。
[0170]
概念30.根据概念26、27、28或29所述的方法,
[0171]
其中,所述连接性存储器具有对应于处理节点中的每个相应开关的列;
[0172]
其中,每一列具有对应于所述n个时间周期的n行;并且
[0173]
其中,用于相应开关的列中的互连电路路由控制包括用于相应开关的n个控制,其中n个控制中的每一个是on或off。
[0174]
概念31.根据概念17、18、19、20、21、22、23、24、25、26、27、28、29或30所述的方法:
[0175]
其中,在操作期间,时间被划分为突触时分复用循环;
[0176]
其中,每个循环包括n个时隙;并且
[0177]
其中,在所述n个时隙中的每个时隙期间,所述权重存储器输出所述n个突触传导值或权重中的相应一个,所述单个物理突触电路实现n个虚拟突触电路中的相应一个虚拟突触电路,并将n个虚拟突触电路中的相应一个虚拟突触电路的输出输出输出到所述单个物理神经元电路,并且所述单个物理stdp电路基于时隙期间所述单个物理神经元电路的输出和时隙期间所述突触前输入来实现n个虚拟stdp电路中的相应一个,并且在时隙期间更新n个突触电导值或权重中的相应一个。
[0178]
概念32.根据概念31所述的方法:
[0179]
其中,每个处理节点具有用于控制处理节点中的互连电路的连接性存储器;并且
[0180]
其中,在每个时隙期间,根据从相应处理节点中的连接性存储器读取的控制来配置相应处理节点中的互连电路。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献