具有突触重用的人工智能硬件的制作方法

文档序号:30086751发布日期:2022-05-18 06:03阅读:140来源:国知局
具有突触重用的人工智能硬件的制作方法
具有突触重用的人工智能硬件


背景技术:

1.人工神经网络(ann)用于人工智能应用中以使用仿照大脑中的结构建模的硬件和软件来模拟自然大脑的学习和识别能力。在神经网络中,可以通过被称为神经元的一系列连接的单元或节点通过模式识别“教导”各种算法来执行各种任务。这些神经元经由称为突触(synapses)的连接与神经网络中的其他神经元内部地共享输入和输出。当神经网络被训练时,各种神经元被训练成针对在这些突触上从各种其他神经元接收到的不同输入提供不同权重。
2.脉冲神经网络(spiking neural network,snn)是第三代ann,其通过使用沿着给定突触的信息的定时动作电位(action potential)或“尖峰(spikes)”在两个神经元之间传递信息来对生物神经网络(即,动物的大脑)的行为进行建模。snn被认为对于建模人工智能是更加生物现实,并且在计算上比ann的早期代更强大,同时在集成为硬件(诸如超大规模集成(vlsi)电路)时提供噪声鲁棒的、低功率、低电压实现。
3.当以硬件对snn建模时,为了实现snn与较早世代ann相比的丰富非线性动态,制造商通常需要使用多得多的晶体管(与s形神经元或基于感知器的ann相比),这可导致表达snn所需的总存储器的增加和此类硬件实现的功率消耗的对应增加。由于突触的数量通常超过snn中的神经元的数量,因此snn可能需要大量的硬件组件(例如,晶体管)来实现,并且需要芯片上相应大量的空间来图案化和放置那些硬件组件。除了容纳组件的更大的空间要求之外,随着snn的复杂性的扩展,额外的组件需要更多的电力来操作;导致庞大的、难以制造的、非常耗电的电路来实现snn。


技术实现要素:

4.根据本发明的一个实施例,提供一种电路,包括:多个人工神经元;多个人工突触,其中所述多个人工突触中的每个人工突触与所述多个人工神经元中的对应人工神经元相关联;多个可变增益放大器,其中所述多个可变增益放大器中的每一者与所述多个人工神经元中的对应一者相关联;路由器,所述路由器被配置成经由对应的可变增益放大器和对应的人工突触将多个输入源中的至少一者连接到所述多个人工神经元中的每一者;以及增益配置控制器,
5.被配置成基于时分方案和在给定时间期间传送尖峰的输入源的标识来设置所述多个可变增益放大器中的每一者上的增益,由此使用更少的空间、更少的组件来实现、以及更少的功率来操作,相比在输入源与其中定义的神经元之间包括多个专用路径的电路。
6.在一些方面,结合上述或下文描述的任何电路,连接到该多个人工神经元中的给定人工神经元的输入源的数目是基于时分方案和来自多个输入源的尖峰传输速率,以有利地降低共享传输路径上的信号冲突的可能性。
7.在一些方面,结合上述或下文描述的任何电路,所述路由器和所述增益配置控制器允许所述多个人工神经元中的第一人工神经元以第一增益从所述多个输入源中的第一输入源接收第一尖峰,并且允许所述多个人工神经元中的第二人工神经元以第二增益从所
述多个输入源中的所述第一输入源接收所述第一尖峰,其中所述第二增益与所述第一增益独立地设置,以有利地允许不同神经元彼此独立地解释输入源的效果。
8.在一些方面,结合上述或下文描述的任何电路,该路由器和增益配置控制器允许该多个人工神经元中的第一人工神经元在第一时间期间从该多个输入源中的第一输入源接收第一尖峰,并且允许该多个人工神经元中的第二人工神经元在该第一时间从该多个输入源中的第二输入源接收第二尖峰,以有利地允许不同神经元从不同信号源进行独立信号接收。
9.在一些方面中,结合上文或下文所描述的任何电路,所述多个输入源中的第一输入源以第一发射速率发射尖峰,且所述多个输入源中的第二输入源以不同于所述第一发射速率的第二发射速率发射尖峰,以有利地允许所述电路接受来自独立操作的输入源的输入。
10.在一些方面,结合上述或以下描述的任何电路,该路由器包括寄存器,该寄存器被配置成用于接收并存储来自该多个输入源的输入尖峰并且基于该时分方案来从该寄存器重传输入尖峰,以有利地降低共享传输路径上的信号冲突的可能性。
11.在一些方面中,结合上文或下文所描述的任何电路,经由共享时钟信号来控制路由器和增益配置控制器,以有利地对准路由器和增益配置控制器的操作。
12.在一些方面,结合上述或下述的任何电路,多个可变增益放大器中的每一个相对于对应的人工神经元被定位在对应的一个人工突触的上游,以有利地控制突触如何基于从中接收输入的源来解释输入。
13.在一些方面,结合上述或下文描述的任何电路,所述多个人工神经元、所述多个人工突触、所述多个可变增益放大器、所述路由器、以及所述增益配置控制器被定义在单个集成电路上,以有利地减少信号延迟,并充分利用所述电路所提供的空间使用的减少。
14.根据本发明的一个实施例,提供了一种方法,包括:训练脉冲神经网络(snn)中的神经元;基于所述训练分配用于到所述神经元的输入源的时分方案;基于所述训练分配所述时分方案中用于所述神经元的增益;从所述输入源接收输入;基于所分配的增益和给定输入源设置给定神经元的给定增益,其中从所述给定输入源接收给定输入;以及根据所述增益将所述给定输入传送给所述给定神经元,由此操作包括神经元的电路,所述神经元使用共享传输路径来用于一个或多个输入源,其使用更少空间、更少组件来实现、以及更少功率来操作,相比对于其中定义的神经元包括若干到输入源的专用路径的电路。
15.在一些方面,结合上述或下文描述的任何方法,设置给定增益进一步包括:基于从其接收给定输入的给定输入源的标识来设置给定增益,以有利地允许神经元在使用共享传输路径时基于所述训练来向信号施加不同的权重。
16.在一些方面,结合上述或下文描述的任何方法,神经元中的第一神经元以第一增益从输入源中的第一输入源接收第一输入,并且神经元中的第二神经元以不同于第一增益的第二增益来接收第一输入,以有利地允许不同神经元彼此独立地解释输入源的效果。
17.在一些方面,结合上述或下文描述的任何方法,神经元中的第一神经元在第一时间从输入源中的第一输入源接收第一输入,并且神经元中的第二神经元在第一时间从输入源中的第二输入源接收第二输入,以有利地允许不同神经元从不同信号源进行独立信号接收。
18.在一些方面,结合以上或以下描述的任何方法,该方法进一步包括:将所接收的输入存储在寄存器中直到该时分方案中的对应时间,以有利地将基于时间的复用模式用于该共享传输路径。
19.在一些方面,结合上述或下文描述的任何方法,设置给定增益进一步包括:基于与从其接收到给定输入的给定输入源相关联的对应时间来设置给定增益,以有利地将基于时间的复用模式用于共享传输路径。
20.在一些方面,结合上述或以下描述的任何方法,该方法还包括:响应于从输入源中的一个输入源接收到两个输入尖峰,丢弃来自该一个输入源的两个输入尖峰中的较早接收到的输入尖峰,以有利地减小共享传输路径上信号冲突的影响或频率。
21.在一些方面,结合上述或以下描述的任何方法,该方法进一步包括:响应于在用于到所述神经元中的一个神经元的传送的一个分时期间接收到至少两个输入尖峰,使该至少两个输入尖峰相冲突,以有利地需要较少的控制硬件软件,并且替代地依赖于snn的稳健性来忽略或补偿信号冲突。
22.根据本发明的一个实施例,提供了一种系统,包括:信号路径,其包括可变增益放大器;人工神经元,其经由所述信号路径连接至多个输入源;以及增益配置控制器,被配置成基于所述多个输入源中的哪个输入源正在向所述人工神经元传送输入尖峰来设置可变增益放大器中的增益,以有利地允许所述神经元在共享传送路径上从多个源接收多个输入,并且由此与使用若干专用传送路径的神经元相比使用更少的空间、更少的组件来实现、以及更少的功率来操作。
23.在一些方面,结合以上或以下描述的任何系统,该系统进一步包括:路由器,该路由器连接到该多个输入源并被配置成经由该信号路径一次将该多个输入源中的一个输入源连接到该人工神经元,以有利地降低共享传输路径上的信号冲突的可能性。
24.在一些方面,结合以上或以下描述的任何系统,该系统进一步包括:路由器,该路由器连接该增益配置控制器和该多个输入源,其中,该路由器被配置成向该增益配置控制器标识该多个输入源中的哪个输入源正在传送该输入尖峰,以基于该神经元和该输入源的标识来有利地控制哪些输入尖峰被路由到哪些神经元以及接收那些输入尖峰的增益。
附图说明
25.图1示出根据本公开的实施例的从若干输入源接收输入的示例神经元。
26.图2示出了根据本公开的实施例的用于管理若干神经元以对于每个神经元经由一个对应突触从若干输入源接收输入的示例集成电路布局。
27.图3a-3e示出了根据本公开的实施例的在不同时间的不同尖峰传输。
28.图4a和4b示出了根据本公开的实施例的用于人工神经元的电路。
29.图5a和5b示出了根据本公开的实施例的用于人工突触的电路。
30.图6是根据本公开的实施例的用于在重新使用突触时分配可变增益以供使用的方法的流程图。
31.图7是根据本公开的实施例的用于在重新使用突触时应用可变增益以供使用的方法的流程图。
32.图8是根据本公开的实施例的用于制造集成电路的方法的流程图。
具体实施方式
33.本公开提供了通过重新使用突触以用于到神经元中的多个输入来在硬件中实现snn(脉冲神经网络),其具有减少的存储器使用和芯片面积。不是为每个神经元供应x个突触来接收多达x个输入,而是突触重用允许神经元使用少于x个突触来接收x个输入。在多种实施例中,神经元各自被提供有单个输入突触,以接收多达x个输入,这些输入使用时分复用(tdm)来共享该突触的传输路径,以调节神经元何时以及如何接收尖峰。因而,在硬件中实现的突触的数量的减少可导致空间需求、需要制造的组件的数量、以及驱动这些组件所需的功率的减少。
34.图1示出根据本公开的实施例的从n个输入源120a-n(统称输入源120)接收输入的示例神经元110。参见图4a和4b更详细地讨论神经元110的示例电路,但在不同实施例中可使用其他电路。
35.输入源120可以是ann(人工神经网络)的较早层中的神经元110、输入到ann中的数据的直接馈送(例如,当神经元110在ann的第一层中时)、或来自ann中的相同或较晚层中的另一神经元110的反馈输入。神经元110从输入源120接收各种数据,当满足相关联的输入源120的动作电位时,在snn中将各种数据作为“尖峰”来接收。进而,这些输入由神经元110处理以确定何时“激发”输出尖峰,同时也可以作为snn的输出或作为对snn中的另一神经元110的输入而传送。
36.在snn中,神经元110并不(必然地)在每个潜在时间间隔处产生输出。相反,神经元110基于先前提供的输入来确定是否产生输出尖峰。这些输入可随时间衰减,使得需要在给定时间段内接收足够数量和/或强度的输入以克服神经元110的动作电位(action potential)以供神经元110产生输出尖峰以供下游消费。因而,根据何时满足来自其他神经元110的动作电位,在不同时间接收由给定神经元110接收的输入(该输入可从包括所述其他神经元110的输入源120接收)。
37.因为神经元110可以接受在不同时间从输入源120发送的输入,并且输入源120并不(必然地)在每个潜在时间间隔向神经元110发送信号,所以神经元110可以在不同时间在输入源120和神经元110之间的共享路径上接收若干输入。通过使用一个(或至少少数)信号路径来将输入从输入源120提供给神经元110,与使用在每个输入源120和神经元110之间提供专用信号路径的实现方式相比,可以使用更少的硬件、更少的功率和限定神经元110的集成电路上的更少空间。例如,在具有配置成从十个输入源120接收输入的十个神经元110的集成电路上,与根据本公开的仅十个信号路径相比,如果使用专用信号路径的话,则将需要实现一百个信号路径。
38.图2示出了根据本公开的实施例的用于管理多达m个神经元110a-m以便对于m个神经元100a-m中的每一个神经元经由一个对应的突触210a-m(统称突触210)从多达n个输入源120a-n接收输入的示例集成电路布局200。突触210的示例电路将参见图5a和5b更详细地讨论,但是在不同实施例中可以使用其他电路。
39.在snn中,并非一层中的每个神经元110都必须连接到后续层中的每个神经元110,相反,包括路由器220以将特定输入源120与特定神经元110链接。包括在从路由器220通向神经元110a-m的每个信号路径上的是对应的可变增益放大器250a-m(统称放大器250)和突触210a-m。在不同实施例中,放大器250和突触210可以按照所示出的顺序或者按照相反的
顺序被包括在对应的信号路径上(例如,突触210在相关联的放大器250的上游或下游)。在多种实施例中,路由器220被配置成基于snn的训练阶段来将输入源120a-n中的一个或多个输入源链接或连接至神经元110a-m中的一个或多个神经元,该训练阶段标识哪些输入源120和神经元110要被链接,这可在snn训练的任何迭代之后被调整。
40.在一些实施例中,基于snn的配置,并非所有神经元110都从所有输入源120接收输入,但路由器220可将任何特定输入源120连接至任何特定神经元110,并且可将一个或多个输入源120通过一个信号路径连接至一个神经元110。例如,在时间t1处,第一输入源120a和第二输入源120b两者都可传送相应的第一尖峰和第二尖峰。在该示例中,路由器220将第一神经元110a与第一输入源120a连接并且将第二神经元110b与第二输入源120b连接,但不将第一神经元110a与第二输入源120b连接或者将第二神经元110b与第一输入源120a连接。因此,路由器220允许多个神经元110a从不同的输入源120接收尖峰,而没有尖峰冲突(colliding)。相反,如果在以上示例中路由器220将第一神经元110a与第一输入源120a和第二输入源120b链接,则这两个尖峰将冲突,并且第一神经元110a可能失去对从何处接收到输入以及如何处理这样的输入的定义。然而,当那些其他输入源120不被预测(或允许)为彼此同时发送尖峰或以其他方式时间分离以避免所发送的尖峰冲突时,路由器220可以将不同其他输入源120与第一神经元110a相连接。例如,当路由器220高速缓存尖峰以用于时分重传等时,当每个输入源被约束为在时间段的单独分时内发送时,路由器220可以将第一神经元110a与n个不同的输入源120a-n连接。
41.在多种实施例中,路由器220根据时钟信号260来被驱动以改变各个输入源120在相应的时间如何链接到相应神经元110。例如,在时间t0,路由器220可以将第一输入源120a连接到第一神经元110a和第二神经元110b,但不连接到第三神经元110c。在稍后的时间t1,路由器220可以将第二输入源120b连接到第一神经元110a、第二神经元110b和第三神经元110c。在此类实施例中,路由器220确保尽管若干输入源120可在不同时间连接至每个单独的神经元110,但没有任何时间有多于一个输入源120连接至给定神经元110。此外,路由器220可改变哪些神经元110可在给定时间接收输入。因而,路由器220可以根据时分方案来建立或中断不同神经元110和输入源120之间的连接,以防止来自不同输入源120在所分配的时间窗口之外生成的尖峰在给定神经元110的共享信号路径上冲突。
42.在一些实施例中,路由器220从每个输入源120a-n接收输入尖峰,并且在识别从其接收到输入尖峰的输入源120之后,将输入尖峰重传到所有神经元110a-m。基于输入源120的标识,每个神经元110a-m根据针对该输入源120独立调谐的增益(包括阻止或以其他方式致使输入尖峰下降到接收阈值以下的增益——有效地致使神经元110不接收该输入尖峰)来接收该输入尖峰。所述独立调谐的增益是基于神经元110在snn的训练或学习阶段期间针对来自多种输入源120的输入尖峰而学习到的权重的。
43.在多种实施例中,路由器220包括可选的寄存器221,所述可选的寄存器221用于接收和保持从输入源120接收的尖峰以供在时分方案中在指定的分时传输至神经元110。例如,在使用一秒(s)的时段的时分方案中,寄存器221能够保持在该1s时段中接收到的任何输入,并且在该时段内在指定的分时发送所存储的尖峰。寄存器221可对于每一输入源120包括单独的存储器单元,以保持从个体输入源120接收的尖峰并随后将其重传到所链接的神经元110。在一些实施例中,寄存器221被根据时钟信号260驱动以确定何时重传存储在存
储器中的尖峰,在该时间,寄存器221基于相关联的输入源120是否在下一时间段中发送另一尖峰来将存储器清除或归零,以允许存储器包含(或不包含)尖峰。
44.此外,寄存器221可以帮助避免来自多个输入源120的信号路径上的冲突。例如,如果在同一时间t0从分开的输入源120接收到两个(或更多个)输入尖峰,则每一尖峰可被保持在与每一输入源120相关联的寄存器221的单独的部分中,以在分开的时间重新传送给目的地神经元110(例如,在时间t1第一输入尖峰,和在时间t2第二输入尖峰)。在另一示例中,如果在同一时间t0从分开的输入源120接收到两个(或更多个)输入尖峰,则在接收时间t0一个尖峰可被重传或被允许传送到目的地神经元110,而另一个输入尖峰被保持在寄存器221中以供在稍后的时间重传。在一些实施例中,寄存器221可组合在时间段期间从一个输入源120接收的多个信号以向信号路径提供经放大尖峰。例如,如果各尖峰以幅度x从输入源120发送,并且一个输入源120在该时间段内发送两个尖峰,则寄存器221可以保持并在与该输入源120相关联的下一分时中重新发送值为2x的尖峰。
45.增益配置控制器230基于时分方案来控制各个可变增益放大器250a-m在给定时间对相关联的信号路径施加什么增益。
46.在一些实施例中,例如,第一放大器250a可以在时间t
x
处施加x的增益,在时间t
x+1
处施加y的增益,在时间t
x+2
处施加z的增益,并且每三个分时重复该模式(例如,在时间t
2x
处为x、在时间t
2x+1
处为y、在时间t
2x+2
处为z)。第二到第m个放大器250-m基于如何训练在snn中相应的神经元110来独立于第一放大器250a地应用各种增益。时钟信号260驱动增益配置控制器230以改变在时分方案中的不同分时施加到放大器250a-m的增益。在路由器220接收时钟信号260的不同实施例中,路由器220和增益配置控制器230由相同的时钟信号260驱动,因此确保增益和输入尖峰彼此同步地被接收和放大。
47.在一些实施例中,时钟信号260,以及通过扩展增益配置控制器230(以及可选地,路由器220),控制路由器220与神经元110之间的信号路径的时分复用。时分复用利用了snn的性质,其中,从输入源120不频繁地接收尖峰信号;输入源120不发送恒定信号,而是一旦满足动作电位就生成尖峰信号,否则不活动直到下一次满足动作电位为止。因此,通过根据时钟信号来管理施加于一个信号路径上的各增益,增益配置控制器230确保神经元110可以重用定义与若干输入源120共享的突触210的一组硬件,并针对该输入源120应用相应地学习的权重。
48.在一些实施例中,路由器220基于从其接收尖峰的输入源120的标识来生成时钟信号260,该输入源以任意划分的时分复用方案来控制增益配置控制器230(并且通过扩展,放大器250)。例如,代替每x毫秒(ms)进入新的分时,路由器220可以发信号通知增益配置控制器230在从第一输入源120a接收到输入尖峰时将放大器250的增益设置成与第一输入源120a相关联的增益。类似地,响应于确定输入尖峰是来自第二输入源120b,增益配置控制器230将相关联放大器250的增益设置成与第二输入源120b相关联的增益,等等。因此,基于所接收的输入尖峰来对信号路径进行复用,并将其配置成针对不同输入源120在不同时间重用突触硬件(例如,放大器250、突触210和迹线)。
49.图3a-3e示出了根据本公开的实施例的在不同时间的多种尖峰传输300a-e。增益配置控制器230被训练,作为与神经元110结合的snn的学习阶段的一部分,以唯一地设置放大器250的增益,以反映突触210针对相关联的输入源120的用于对应神经元110所承载的经
训练的权重。
50.例如,考虑图3a中的第一放大器250a的第一尖峰传输300a。在图3a中,在时间t1从第一输入源120a接收第一尖峰310,并且第一放大器250a向第一尖峰310施加第一增益以输出幅度为3的第一尖峰。类似地,放大器250在时间t2放大来自第二输入源120b的第二尖峰320,在时间t3放大来自第三输入源120c的第三尖峰330,以及在时间t4放大来自第四输入源120d的第四尖峰340,以反映从其接收到尖峰的输入源120的相关联的增益。如图所示,放大器250将第二尖峰320放大以具有2的幅度,将第三尖峰330放大以具有4的幅度,并且将第四尖峰340放大以具有3的幅度。放大器250可以基于与给定输入源120相关联的时间(例如,如由时钟信号驱动的增益配置控制器230所控制的)或基于输入源120的标识(例如,如在路由器220处所确定的)来设置用于相关联的增益。如图所示,第一放大器250a可以施加若干不同的权重,但是当学习到的权重相同(例如,第一尖峰310和第四尖峰340)时,可以在不同时间/针对不同输入源120施加相同的权重。
51.图3b示出了第二放大器250b的第二尖峰传输300b,该第二放大器可在与图3a中所示的第一尖峰传输300a相同的时间t
1-t4被放大。因为不同于第一放大器250a,第二放大器250b与不同的突触210和神经元110相关联(即,第二突触210b和第二神经元110b而不是第一突触210a和第一神经元110a),所以独立地控制第二放大器250b以将第二神经元110b的学习到的增益应用于输入尖峰。因此,尽管从相同的输入源120接收到尖峰,但是施加于其上的增益可以是不同的——如图3a和3b中的第一尖峰330a、第二尖峰330b和第三尖峰330c的不同幅度所指示的。然而,snn的训练可以在不同的放大器250处对于同一输入源120赋予相同的增益,诸如例如,应用于来自图3a和3b中的第四输入源120d的尖峰的那些增益,这二者都导致用于相应的第四尖峰340的幅度为3。
52.图3c示出了第三放大器250c的第三尖峰传输300c,其可在与图3a中所示的第一尖峰传输300a相同的时间t
1-t4被放大。在不同实施例中,放大器250c可以被调谐至低于用于一个或多个输入源120的相关联的突触210的接收阈值390的增益。例如,第三放大器250c被训练为,对于在时间t1的第一分时或者对于第一输入源120a不施加增益,或者施加低于幅度为1的接收阈值390的增益。因而,由于第一尖峰310的幅度小于接收阈值390,因此第三神经元110c有效地不接收第一尖峰310。
53.图3d示出了第四放大器250d的第四尖峰传输300d,其可在与图3a中所述的第一尖峰传输300a相同的时间t
1-t4被放大。在多种实施例中,路由器220可以将不同的输入源120(以及不同数量)同时链接到不同的突触210。例如,第四突触210d(对应于第四放大器250d和第四神经元110d)链接到第一输入源120a、第二输入源120b和第三输入源120c,如图3a中所示出的第一突触210a那样。然而,图3a中的第一突触210a亦连结至第四输入源120d,而第四突触210d则并非如此。类似地,第四突触210d连接至第五输入源120e,而第一突触210a则没有。因而,在时间t4处,在所说明的实例中,第一突触210a和第四突触210d从不同输入源120接收输入。
54.图3e示出了第五放大器250e的第五尖峰传输300e,其可以在与图3a中所示的第一尖峰传输300a相同的时间t
1-t4上放大但以不同的速率被放大。例如,类似于图3a中的第一放大器250a,第五放大器250e可以接收和放大来自第一至第四输入源120a-d的输入尖峰,但还可以接收和放大来自第六输入源120f的输入尖峰,这些输入尖峰是以与第一至第四输
入尖峰310-340不同的速率或频率接收的。如图所示,第五放大器250e向第五输入尖峰350和第六输入尖峰360两者施加相同的增益(对于幅度2),因为两者是从同一输入源120(即,第六输入源120f)接收的。第六输入源120f以与其他示出的输入源120不同的速率生成输入尖峰,路由器220和增益配置控制器230处理该输入尖峰以在相关联的时间应用相关联的增益并避免用于第五神经元110e的单个输入信号路径上的冲突。
55.图4a示出了根据本公开的实施例的用于人工神经元400a(统称人工神经元400)的一个电路,并且图4b示出了的用于人工神经元400b的另一电路,其可用作神经元110。如将领会的,除了图4a和4b中示出的人工神经元400之外的其他电路系统也可被用作本公开的各实施例中的神经元110;人工神经元400被提供作为适合用作神经元110的电路组件和配置的非限制性示例。
56.在图4a中,第一晶体管410a(统称晶体管410)和第二晶体管410b(两者都被示出为p沟道)定义电流镜,从连接到反相器的第三晶体管410c接收反馈,该反相器由第四晶体管410d和第五晶体管410e形成,当激活电位被满足时,第四晶体管410d和第五晶体管410e生成用于人工神经元400a的输出。提供第六晶体管410f(其在相应栅极处被馈送使能电压en)作为求和晶体管,以随时间将来自相应突触210的不同输入尖峰相加。此外,第七晶体管410g(其在相应栅极处被馈送泄漏电压vl)和电容器420被提供,以随时间推移使来自输入尖峰的求和电压“泄漏”,从而使得求和输入的电平随时间衰减。泄漏有利地允许神经元110“忘记”接收到输入,从而使得当确定是否产生输出尖峰时考虑接收输入的强度和/或频率两者。反馈有利地允许神经元110一旦生成输出尖峰就“重置”;要求具有足够强度和/或频率的新的一组输入尖峰来生成后续输出尖峰。
57.在图4b中,人工神经元400b包括电流镜电路、求和电路和反相器电路。电流镜电路包括彼此连接的栅极的第一晶体管410a和第二晶体管410b(均示出为p沟道)。第一晶体管410a和第二晶体管410b的漏极连接到来自相应突触210的输入。第三晶体管410c(图示为n沟道)被提供作为上拉晶体管,以将随着时间从对应的突触210接收的输入尖峰相加。第四晶体管410d(图示为p沟道)和第五晶体管410e(图示为n沟道)形成反相器,该反相器在满足激活电位时产生用于人工神经元400a的输出。有利地,相比包括泄漏和反馈电路的神经元110,人工神经元400b需要较少的电路组件(以及相应地较少的制造空间和操作功率),并且是时间独立的;并且因此,与可以在一段时间内“忘记”输入的“泄漏”神经元110相比,能够在更长的一段时间内使用输入接收来生成输出尖峰。
58.图5a图示根据本公开的实施例的人工突触500a(统称人工突触500)的一个电路,并且图5b图示了人工突触500b的另一电路,其可以用作突触210。如将认识到的,除了图5a和5b中所示的人工突触500之外的其他电路也可以在本发明的不同实施例中用作突触210;人工突触500被提供为适合用作突触210的电路组件和配置的非限制性示例。
59.在图5a中,第一晶体管410a在对应栅极处连接到来自路由器220或对应放大器250的输入vin,且第一晶体管410a的源极接地。第二晶体管410b的源极连接至第一晶体管410a的漏极,并且权重输入vw连接至第二晶体管410b的栅极,所述权重输入vw可以基于路由/调度用于在人工突触500a上传输尖峰的输入源120而改变。第三晶体管410c和第四晶体管410d的相应源极连接至第二晶体管410b的漏极。第三晶体管410c的栅极被连接至用于人工突触500a的阈值电平的阈值电压vthr输入,并且第三晶体管410c的源极被连接至承载电源
电压(collector voltage)vcc的轨。第四晶体管410d的栅极经由电容器420连接至承载电源电压vcc的轨。第五晶体管410e分别通过对应的源极和漏极连接到承载电源电压vcc的轨和第四晶体管410d的漏极,并且在栅极处连接到电压vtau。响应于人工突触500a的动作电位被输入vin满足,来自人工突触500a的输出与第四和第五晶体管410d、e的漏极共享一节点以将输入携带至相应的神经元110。
60.在图5b中,第一晶体管410a在对应栅极处连接到来自路由器220或对应放大器250的输入vin,且第一晶体管410a的源极接地。此外,第一晶体管410a的体连接至权重输入vw,权重输入vw可响应于人工突触500b的动作电位被输入vin满足而基于路由/调度以在人工突触500b上传输尖峰的输入源120而改变。第二晶体管410b和第三晶体管410c的漏极连接至连接至相应神经元110的轨道作为其输入。第二晶体管410b和第三晶体管410b、410c的栅极连接至互补符号输入(例如,分别是符号(sign)和符号的反(s-i-g-n-))。第二晶体管和第三晶体管410b、410c的源极均连接至第一晶体管的漏极。
61.图6是根据本公开的实施例的用于在重新使用突触210时分配可变增益以供使用的方法600的流程图。方法600开始于块610,其中操作者训练包括若干神经元110的snn,每个神经元110从一个对应的突触210接收输入,该突触210被重新使用以携载来自一个或多个输入源120的输入尖峰。snn可在数次迭代上训练以根据不同机器学习模型来确定每个神经元110向每个输入源120分配什么权重。
62.在框620处,操作者将在训练期间由神经元110分配给不同输入源120的权重转换成增益,以供在包括该可重用突触210的信号路径上的放大器250中使用。
63.在框630,操作者为从不同输入源120的要在可重用突触210上承载的输入尖峰分配时分方案。
64.在一些实施例中,时分方案分配实际时间,在所述实际时间期间,从输入源120(例如,在路由器220的寄存器221处)接收的信号被重传到神经元110,并且放大器250被设置为按照框620分配的对应增益。在这种实施例中,增益配置控制器230和路由器220由共享时钟信号260控制,以确定何时传输存储在寄存器221中的来自给定输入源120的尖峰,以及基于对应输入源120的标识和/或所述时间将不同放大器250设置为什么增益。
65.在一些实施例中,时分方案响应于接收到尖峰和从其接收到该尖峰的输入源120的标识而操作。在这种实施例中,路由器220向增益配置控制器230指示从其接收输入尖峰的输入源120的标识,并且增益配置控制器230根据该标识设置放大器250的增益。因此,放大器250的增益可以保持如此设置,直到接收到后续输入尖峰为止,此时,路由器220向增益配置控制器230标识新的输入源120,增益配置控制器230更新由放大器250施加的增益。由路由器220向增益配置控制器230指示的输入源120的标识也可被使用时钟信号260来信号通知增益配置控制器230要何时改变放大器250被设置成的增益。
66.在框640,操作者基于所述训练分配时分方案中的增益。在多种实施例中,响应于从特定输入源120接收输入尖峰而要应用于特定放大器250的增益被存储在增益配置控制器230中的查找表或其他逻辑结构中。方法600随后可结束。
67.图7是根据本公开的实施例的用于在重新使用突触时应用可变增益以供使用的方法700的流程图。方法700开始于框710,其中路由器220从特定输入源120接收输入尖峰。路由器220被连接到每一个输入源120和每一个神经元110,但可以选择性地将输入源120链接
到神经元110(即,并非每一个神经元110都必然被连接到每一个输入源120)。在一些实施例中,路由器220基于时钟信号260来循环遍历哪个输入源120连接到哪些神经元110。
68.可选地,在框720,如果路由器220包括寄存器221或其他高速缓存设备以确保输入尖峰根据时分方案在预定的时间被转发至目的地神经元110,或确保输入尖峰在每个单独神经元110所使用的共享输入路径上不与另一输入尖峰冲突。否则,路由器220可以通过信号路径将输入尖峰转发到神经元110,而无需将输入尖峰存储在寄存器221中,并且方法700可以前进到框730,而无需执行框720。
69.在框730,增益配置控制器230基于向神经元110传送输入尖峰的输入源120来调整放大器250中的增益。在多种实施例中,增益配置控制器230基于每个神经元110分配给来自一个输入源120的输入尖峰的经学习的权重,来与第二放大器250b(对应于第二神经元110b)的增益独立设置第一放大器250a(对应于第一神经元110a)的增益。在一些实施例中,当增益配置控制器230基于将第一输入源120a链接到第一神经元110a并将第二输入源120b链接到第二神经元110b的路由器220和由那些神经元110分配给各自链接的输入源的相关联的权重,来与第二放大器250b(对应于第二神经元110b)的增益独立地设置第一放大器250a(对应于第一神经元110a)的增益时。因而,若干输入源120可在单个路径上链接到给定神经元110,其中变化的权重被应用于输入尖峰,由此减少了表示包括给定神经元110的神经网络所需的硬件量。
70.在框740,输入尖峰传送到目的地神经元110。输入尖峰在共享信号路径上从路由器220行进到每个目的地神经元110,该共享信号路径包括放大器250和对应于该一个神经元110的突触210。放大器250将已学习的增益应用于输入尖峰,并且突触210确定是否阻止输入尖峰或将输入尖峰向前转发给对应的神经元110。方法700随后可结束。
71.图8是根据本公开的实施例的用于制造集成电路的方法800的流程图。虽然方法800的框在图8中是以设定次序呈现,但所属领域的技术人员将了解,电路制造常常以层执行;在可以在给定层上形成不同组件的若干部分的添加工艺中,从基底或基板层图案化和沉积电路的组件。制造过程还可包括蚀刻或烧蚀步骤以去除材料以限定空隙或区域,其中附加材料要在随后的添加步骤中沉积。因此,方法800的元素可被理解为至少部分地并行执行,并且没有一个元素被首先执行/最后执行。
72.在框810,制造者图案化形成路由器220。路由器220将一个或多个输入源120与芯片上定义的一个或多个神经元110连接(例如,按照框820)。在不同实施例中,制造者如芯片上定义的其他神经元110那样图案化形成输入源120,或者可以图案化形成用于片外神经元110或数据源的迹线,所述数据源将被输入到路由器220中并且因此被传输到芯片上的神经元110。
73.在框820,制造者图案化形成神经元110。神经元110包括一个或多个晶体管,并且可以包括电阻器、电容器和电感器以电路中表示snn的算法或逻辑操作,包括具有在一段时间内衰减或“忘记”先前输入的能力的存储器。神经元110各自包括输出端口,当神经元110所体现的逻辑操作被满足时,输出尖峰在该输出端口上被传送。在多种实施例中,神经元110作为输入源120被链接到相同或不同芯片上的其他神经元110。
74.在框830,制造者图案化形成路由器220和神经元110之间的信号路径,所述信号路径包括放大器250和突触210。每个神经元110与一个信号路径相关联,该信号路径包括对应
的放大器250和一个突触210。在多种实施例中,突触210位于放大器250的上游(即,比放大器250更远离对应神经元110),但是在其他实施例中,突触210位于放大器250的下游(即,比放大器250更靠近对应神经元110)。放大器250可被控制以基于来自增益配置控制器230的控制信号提供可变增益。每个突触210包括至少一个晶体管并且配置有阈值,以响应于由突触210接收到的输入尖峰满足该阈值来产生被转发到对应神经元110的输出。
75.在框840处,制造者图案化形成增益配置控制器230。在多种实施例中,增益配置控制器230是逻辑控制单元或微处理器,所述逻辑控制单元或微处理器连接至放大器250以及用于时钟信号260的发生器和路由器220中的一者或多者。在多种实施例中,制造者将控制逻辑编码到增益配置控制器230的存储器(例如,电可擦除可编程只读存储器(eeprom))中,以控制在什么条件下(例如,基于时分方案和snn的训练)将每个放大器250设置为什么增益。
76.制造者可以在单个芯片或其他超大规模集成(vlsi)电路上执行块810-840,或者可以在分离的芯片上执行块810-840中的一个或多个并且将分离的芯片连接在一起以形成电路。例如,制造者可以独立于其他组件(或使用第二制造者)来制造增益配置控制器230,并且通过将增益配置控制器230与其他组件集成来执行框840。
77.已经出于说明的目的呈现了本发明的各种实施方式的描述,但这些描述并不旨在是穷尽的或者将其限于所公开的实施方式。许多修改和变化对本领域普通技术人员将是显而易见的而不脱离所描述的实施例的范围和精神。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
78.在下文中,参考本公开中提出的实施方式。然而,本公开的范围不限于具体描述的实施例。相反,可以否司以下特征和元素的任何组合(无论是否涉及不同实施例)来实现和实践所构思的实施例。此外,尽管本文所公开的实施例可实现优于其他可能的解决方案或现有技术的优点,但特定优点是否由给定实施例实现并非是对本公开的范围的限制。因此,以下方面、特征、实施例和优点仅仅是说明性的,并且不被认为是所附权利要求的元素或限制,除非在权利要求中明确陈述。同样,对“本发明”的引用不应被解释为在此所披露的任何发明主题的概括,并且不应被认为是所附权利要求的元素或限制,除非在权利要求中明确陈述。
79.本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
80.本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
81.计算机可读存储介质可为可保持和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑
盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过线路发射的电信号。
82.本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。所述网络可以包括铜传输缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
83.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如smalltalk、c++等)、以及常规的过程式程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
84.这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的诸多方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中各框的组合,都可以由计算机可读程序指令实现。
85.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生这样一种机器,其使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的框或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令可以使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括这样一种制品,其包含实现流程图和/或框图的框或多个框中规定的功能/动作的方面的指令。
86.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的框或多个框中规定的功能/动作。
87.附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实
现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
88.虽然前述内容针对本发明的实施例,但是可以设计本发明的其他和进一步的实施例而不偏离本发明的基本范围,并且本发明的范围由所附权利要求确定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1