类脑计算系统转让专利

申请号 : CN201611032487.7

文献号 : CN108073982B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 戴瑾

申请人 : 上海磁宇信息科技有限公司

摘要 :

一种类脑计算系统,包括一个以上神经元和一个以上MTJ突触,MTJ突触包括记忆MTJ和参考MTJ;MTJ突触的输出端连接到类脑计算系统中输入电荷的神经元,MTJ突触的输入端连接到类脑计算系统中输出电荷的神经元;MTJ突触的输出端被置于基准电位,记忆MTJ适于接收来自所述MTJ突触的输入端的第一脉冲,参考MTJ适于接收来自MTJ突触的输入端的第二脉冲,第一脉冲与第二脉冲同时发射,形状相同且符号相反;神经元之间通过MTJ突触连接起来;所有MTJ突触各自包含的参考MTJ都在同一约定的状态上;神经元包括电荷积分器、脉冲发生器以及分别与电荷积分器和脉冲发生器相连的模式控制器。本发明技术方案能有效缩减突触的面积,扩展类脑计算系统所集成芯片的规模,以及降低功耗。

权利要求 :

1.一种类脑计算系统,其特征在于,包括:一个以上神经元和一个以上包含MTJ的MTJ突触,所述MTJ突触包括记忆MTJ和参考MTJ;所述MTJ突触的输出端连接到所述类脑计算系统中输入电荷的神经元,所述MTJ突触的输入端连接到所述类脑计算系统中输出电荷的神经元;所述类脑计算系统处于正常工作模式时,所述MTJ突触的输出端被置于基准电位,所述记忆MTJ适于接收来自所述MTJ突触的输入端的第一脉冲,所述参考MTJ适于接收来自所述MTJ突触的输入端的第二脉冲,所述第一脉冲与第二脉冲同时发射,形状相同且符号相反,所述第一脉冲和第二脉冲的电压差由所述基准电位以及对所述MTJ突触的读取电压所确定;神经元之间通过所述MTJ突触连接起来;所有MTJ突触各自包含的参考MTJ都在同一个约定的状态上;

其中,神经元可选择如下两种结构:(i)所述神经元包括电荷积分器和脉冲发生器;所述电荷积分器适于收集各个从外部或其他神经元的输入点输入的电荷,并将输入的电荷积累起来;在电荷积累周期里,所述电荷积分器积累电荷同时其输出电压产生变化;在电荷输出周期里,所述电荷积分器发信号释放积累起来的电荷,同时驱动所述脉冲发生器发射所述第一脉冲和第二脉冲,直至所述电荷积分器的输出电压达到第一设定值时停止发射;电荷的电量被转化成脉冲长度;当任一神经元工作在电荷输出周期里,接收该神经元所输出电荷的神经元工作在电荷积累周期里;所述MTJ突触的输出端连接到输入电荷的神经元所包含的电荷积分器,所述MTJ突触的输入端连接到输出电荷的神经元所包含的脉冲发生器;

(ii)所述神经元包括电荷积分器、脉冲发生器以及分别与所述电荷积分器和脉冲发生器相连的模式控制器;所述电荷积分器适于收集各个从外部或其他神经元的输入点输入的电荷,并将输入的电荷积累起来;所述脉冲发生器适于在被触发后向各个输出的MTJ突触发射所述第一脉冲和第二脉冲;所述MTJ突触的输出端连接到输入电荷的神经元所包含的电荷积分器,所述MTJ突触的输入端连接到输出电荷的神经元所包含的脉冲发生器;在所述模式控制器的控制下,所述类脑计算系统的正常工作模式被执行为第一神经网络模式或第二神经网络模式;

在所述第一神经网络模式下,在电荷积累周期里,所述电荷积分器积累电荷同时其输出电压产生变化;在电荷输出周期里,所述电荷积分器发信号释放积累起来的电荷,同时驱动所述脉冲发生器发射所述第一脉冲和第二脉冲,直至所述电荷积分器的输出电压达到第一设定值时停止发射;电荷的电量被转化成脉冲长度;当任一神经元工作在电荷输出周期里,接收该神经元所输出电荷的神经元工作在电荷积累周期里;

在所述第二神经网络模式下,当所述电荷积分器的输出电压达到第二设定值时,触发所述脉冲发生器向各个输出的MTJ突触发射所述第一脉冲和第二脉冲,并给所述电荷积分器发信号释放积累起来的电荷。

2.根据权利要求1所述的类脑计算系统,其特征在于,当神经元选择为上述第(ii)种结构时,所述电荷积分器包括运算放大器、电容器、MOS管和电阻;所述基准电位置于所述运算放大器的第一输入端,所述运算放大器的第二输入端连接所述MTJ突触的输出端,所述运算放大器的输出端连接所述模式控制器的第一端,所述电容器的两端分别与所述运算放大器的第二输入端和输出端相连;所述MOS管和电阻串联后与所述电容器并联,所述MOS管的栅极连接所述模式控制器的第二端,所述模式控制器的第三端与所述脉冲发生器的输入端相连。

3.根据权利要求1所述的类脑计算系统,其特征在于,所述MTJ突触还包括与所述记忆MTJ相连的第一选通器件以及与所述参考MTJ相连的第二选通器件,所述第一选通器件和第二选通器件分别设置于所述输出电荷的神经元与所述输入电荷的神经元之间的不同电流路径上,且两者导流方向相反。

4.根据权利要求3所述的类脑计算系统,其特征在于,还包括写驱动电路,所述写驱动电路的第一输出端与所述脉冲发生器对每一个记忆MTJ的输出端相连,所述写驱动电路的第二输出端与所述电荷积分器对每一个记忆MTJ的输入端相连;在正常工作模式下所述写驱动电路处于直通状态,在编程模式下所述脉冲发生器和电荷积分器处于高阻状态,所述写驱动电路用于在所述编程模式下改变或维持所述记忆MTJ的状态;施加于所述记忆MTJ以及所述第一选通器件的电压根据所述基准电位、所述MTJ突触的编程电压以及所述第一选通器件的正向压降或反向导通电压确定。

5.根据权利要求3所述的类脑计算系统,其特征在于,所述类脑计算系统以分层结构的形式集成于半导体芯片,所述分层结构由一层以上的神经元电荷输出层与一层以上的神经元电荷输入层依次交替层接而成,所述神经元电荷输出层包括一个以上输出电荷的神经元及其对应的一组输出线,所述神经元电荷输入层包括一个以上输入电荷的神经元及其对应一组输入线;相邻两层的输出线与输入线呈纵横排列形成阵列,相邻两层的输出线与输入线之间的每一个交叉位置设有一个MTJ突触,每个输出电荷的神经元的输出线和每个输入电荷的神经元的输入线均各自包含两根导线,输出线包含的一根导线、输入线包含的一根导线连接起所述记忆MTJ以及所述第一选通器件构成一条电流路径,输出线包含的另一根导线、输入线包含的另一根导线连接起所述参考MTJ以及所述第二选通器件构成另一条电流路径。

说明书 :

类脑计算系统

技术领域

[0001] 本发明涉及半导体芯片领域,特别涉及一种类脑计算系统。

背景技术

[0002] 关于磁性隧道结:
[0003] 磁性隧道结(MTJ,Magnetic Tunneling Junction)是由两层铁磁性材料夹着一层非常薄的非铁磁绝缘材料组成的结构,如图1所示。它目前的最主要应用是用在磁性随机存储器(MRAM,Magnetic Random Access Memory)内存芯片中。
[0004] 参阅图1,下面的一层铁磁材料是具有固定磁化方向的参考层,上面的铁磁材料是可变磁化方向的记忆层,它的磁化方向可以和固定磁化层相平行或反平行。由于量子物理的效应,电流可以穿过中间的隧道势垒层,但是MTJ的电阻和可变磁化层的磁化方向有关。前一种情况电阻低,后一种情况电阻高。
[0005] 使用比较新的自旋力矩转移(STT,Spin Torque Transfer)技术,改变MTJ的状态也比较简单:使用比读更强的电流穿过MTJ进行写操作。一个自下而上的电流把可变磁化层置成与固定层平行的方向,自上而下的电路把它置成反平行的方向。
[0006] 关于人脑的神经元和架构:
[0007] 人脑是一个由大量神经元复杂连接的网络。可以参阅图2,每个神经元通过大量的树突连接大量的其他神经元,接收信息,每一个连接点叫突触(Synapse)。在外部刺激积累到一定程度后,产生一个刺激信号,通过轴突传送出去。轴突有大量的末梢,通过突触,连接到大量其他神经元的树突。就是这样一个由简单功能的神经元组成的网络,实现了人类所有的智能活动。人的记忆和智能,普遍被认为存储在每一个突触的不同的耦合强度里。
[0008] 神经元的反应频率不超过100Hz,现代计算机的CPU比人脑快1000万倍,但处理很多复杂问题的能力不如人脑。这促使了计算机行业开始模仿人脑。
[0009] 关于神经网络(Neural Network):
[0010] 最早的对人脑的模仿,是在软件层面的。从上世纪60年代兴起的神经网络算法,用一个函数来模仿神经元的功能。函数接受多个输入,每个输入有不同的权重,学习训练的过程就是调整各个权重。函数输出到很多其他的神经元,组成一个网络。这类算法,已经取得了丰富的成果,得到广泛应用。但如果把这种算法上推到人脑的规模(超过1000亿神经元),不光现代的计算系统无法承受,就是耗电,也需要巨型的发电站供给。而人脑的功耗却只有25瓦左右。
[0011] 关于脉冲神经网络(Spiking Neural Network)
[0012] 出于降低功耗的动机,在硬件层面上对人脑模仿的研究已经开始。脉冲神经网络被认为是下一代类脑计算的基础。它设计得更像人脑,神经元在积累到一定程度的输入后才向外发射一个脉冲。不像传统的神经网络,任何一个微不足道的输入都会引起整个网络进行运算,因此能节省大量的电能。这样的网络已经被制成了芯片。IBM公司的TrueNorth芯片,就是一个著名的例子。它集成了1百万个神经元,256百万个突触。演示了以极低的功耗完成了一些人工智能的算法。
[0013] 人类智能和记忆的关键信息,是保存在突触内。在IBM的TrueNorth芯片中,突触是通过一个静态随机存取存储器(SRAM,Static Random Access Memory)比特来模仿一个突触的。然而,SRAM因为占芯片面积较大,是比较昂贵的内存,因此这颗芯片的规模和人脑差距甚远;此外,SRAM还有其他问题,如漏电引起的功耗。

发明内容

[0014] 本发明要解决的问题是现有类脑计算系统的突触占用面积较大,难以有效扩展所集成芯片的规模,以及因漏电导致的功耗上升。
[0015] 为解决上述问题,本发明技术方案提供一种类脑计算系统,包括:一个以上神经元和一个以上包含MTJ的MTJ突触,所述MTJ突触包括记忆MTJ和参考MTJ;所述MTJ突触的输出端连接到所述类脑计算系统中输入电荷的神经元,所述MTJ突触的输入端连接到所述类脑计算系统中输出电荷的神经元;所述类脑计算系统处于正常工作模式时,所述MTJ突触的输出端被置于基准电位,所述记忆MTJ适于接收来自所述MTJ突触的输入端的第一脉冲,所述参考MTJ适于接收来自所述MTJ突触的输入端的第二脉冲,所述第一脉冲与第二脉冲同时发射,形状相同且符号相反,所述第一脉冲和第二脉冲的电压差由所述基准电位以及对所述MTJ突触的读取电压所确定;神经元之间通过所述MTJ突触连接起来;所有MTJ突触各自包含的参考MTJ都在同一个约定的状态上。
[0016] 可选的,所述神经元包括电荷积分器和脉冲发生器;所述电荷积分器适于收集各个从外部或其他神经元的输入点输入的电荷,并将输入的电荷积累起来,当电荷积累达到第二设定值时,触发所述脉冲发生器向各个输出的MTJ突触发射所述第一脉冲和第二脉冲,同时将所积累的电荷归零;所述MTJ突触的输出端连接到输入电荷的神经元所包含的电荷积分器,所述MTJ突触的输入端连接到输出电荷的神经元所包含的脉冲发生器。
[0017] 可选的,所述神经元包括电荷积分器和脉冲发生器;所述电荷积分器适于收集各个从外部或其他神经元的输入点输入的电荷,并将输入的电荷积累起来;在电荷积累周期里,所述电荷积分器积累电荷同时其输出电压产生变化;在电荷输出周期里,所述电荷积分器发信号释放积累起来的电荷,同时驱动所述脉冲发生器发射所述第一脉冲和第二脉冲,直至所述电荷积分器的输出电压达到第一设定值时停止发射;电荷的电量被转化成脉冲长度;当任一神经元工作在电荷输出周期里,接收该神经元所输出电荷的神经元工作在电荷积累周期里;所述MTJ突触的输出端连接到输入电荷的神经元所包含的电荷积分器,所述MTJ突触的输入端连接到输出电荷的神经元所包含的脉冲发生器。
[0018] 可选的,所述神经元包括电荷积分器、脉冲发生器以及分别与所述电荷积分器和脉冲发生器相连的模式控制器;所述电荷积分器适于收集各个从外部或其他神经元的输入点输入的电荷,并将输入的电荷积累起来;所述脉冲发生器适于在被触发后向各个输出的MTJ突触发射所述第一脉冲和第二脉冲;所述MTJ突触的输出端连接到输入电荷的神经元所包含的电荷积分器,所述MTJ突触的输入端连接到输出电荷的神经元所包含的脉冲发生器;在所述模式控制器的控制下,所述类脑计算系统的正常工作模式被执行为第一神经网络模式或第二神经网络模式;
[0019] 在所述第一神经网络模式下,在电荷积累周期里,所述电荷积分器积累电荷同时其输出电压产生变化;在电荷输出周期里,所述电荷积分器发信号释放积累起来的电荷,同时驱动所述脉冲发生器发射所述第一脉冲和第二脉冲,直至所述电荷积分器的输出电压达到第一设定值时停止发射;电荷的电量被转化成脉冲长度;当任一神经元工作在电荷输出周期里,接收该神经元所输出电荷的神经元工作在电荷积累周期里;在所述第二神经网络模式下,当所述电荷积分器的输出电压达到第二设定值时,触发所述脉冲发生器向各个输出的MTJ突触发射所述第一脉冲和第二脉冲,并给所述电荷积分器发信号释放积累起来的电荷。
[0020] 可选的,所述电荷积分器包括运算放大器和电容器;所述基准电位置于所述运算放大器的第一输入端,所述运算放大器的第二输入端连接所述MTJ突触的输出端,所述运算放大器的输出端连接所述脉冲发生器的输入端,所述电容器的两端分别与所述运算放大器的第二输入端和输出端相连。
[0021] 可选的,所述电荷积分器包括运算放大器、电容器、金属氧化物半导体场效应晶体管(MOS管,Metal Oxide Semiconductor)和电阻;所述基准电位置于所述运算放大器的第一输入端,所述运算放大器的第二输入端连接所述MTJ突触的输出端,所述运算放大器的输出端连接所述模式控制器的第一端,所述电容器的两端分别与所述运算放大器的第二输入端和输出端相连;所述MOS管和电阻串联后与所述电容器并联,所述MOS管的栅极连接所述模式控制器的第二端,所述模式控制器的第三端与所述脉冲发生器的输入端相连。
[0022] 可选的,所述MTJ突触还包括与所述记忆MTJ相连的第一选通器件以及与所述参考MTJ相连的第二选通器件,所述第一选通器件和第二选通器件分别设置于所述输出电荷的神经元与所述输入电荷的神经元之间的不同电流路径上,且两者导流方向相反。
[0023] 可选的,所述第一选通器件和第二选通器件均为选通二极管或均为MOS管。
[0024] 可选的,所述类脑计算系统还包括写驱动电路,所述写驱动电路的第一输出端与所述脉冲发生器对每一个记忆MTJ的输出端相连,所述写驱动电路的第二输出端与所述电荷积分器对每一个记忆MTJ的输入端相连;在正常工作模式下所述写驱动电路处于直通状态,在编程模式下所述脉冲发生器和电荷积分器处于高阻状态,所述写驱动电路用于在所述编程模式下改变或维持所述记忆MTJ的状态;施加于所述记忆MTJ以及所述第一选通器件的电压根据所述基准电位、所述MTJ突触的编程电压以及所述第一选通器件的正向压降或反向导通电压确定。
[0025] 可选的,所述类脑计算系统以分层结构的形式集成于半导体芯片,所述分层结构由一层以上的神经元电荷输出层与一层以上的神经元电荷输入层依次交替层接而成,所述神经元电荷输出层包括一个以上输出电荷的神经元及其对应的一组输出线,所述神经元电荷输入层包括一个以上输入电荷的神经元及其对应一组输入线;相邻两层的输出线与输入线呈纵横排列形成阵列,相邻两层的输出线与输入线之间的每一个交叉位置设有一个MTJ突触,每个输出电荷的神经元的输出线和每个输入电荷的神经元的输入线均各自包含两根导线,输出线包含的一根导线、输入线包含的一根导线连接起所述记忆MTJ以及所述第一选通器件构成一条电流路径,输出线包含的另一根导线、输入线包含的另一根导线连接起所述参考MTJ以及所述第二选通器件构成另一条电流路径。
[0026] 可选的,所述类脑计算系统中的MTJ突触包括两态MTJ突触和四态MTJ突触中的至少一种,所述两态MTJ突触含有一个记忆MTJ和一个参考MTJ,所述四态MTJ突触由两个所述两态MTJ突触构造而成,所述四态MTJ突触中施加于其中一个两态MTJ突触的输入端的脉冲不同于施加于另一个两态MTJ突触的输入端的脉冲,或者所述四态MTJ突触中的两个两态MTJ突触的尺寸大小不同以使各自电阻不同。
[0027] 与现有技术相比,本发明的技术方案至少具有以下优点:
[0028] 通过用MTJ的结构模仿类脑计算系统中的突触,除了能够实现突触所应当具备的功能,又能有效缩减突触所占用的面积,还能根据MTJ的非易失性存储特性而在不使用时予以断电,由此使未来的集成类脑计算系统的类脑芯片可以有更大的规模和更小的功耗。
[0029] 进一步地,通过在类脑计算系统所包含的神经元中设置模式控制器,并以所述模式控制器连接电荷积分器与脉冲发生器,使所述类脑计算系统既能够支持模拟传统神经网络下的应用计算,也能够支持脉冲神经网络下的应用计算,由此实现双模式的类脑计算系统。
[0030] 关于本发明技术方案提供的类脑计算系统及其突触所体现的优势,具体分析如下:
[0031] 1.用MTJ取代传统的SRAM作为突触,能把突触的面积缩减到十分之一甚至更多,意味着同样的芯片可以进行规模大得多的计算。
[0032] 2.传统突触所使用的SRAM在不使用时会漏电,芯片规模大时这个漏电相当严重,而MTJ突触在不使用时可以断电,从而能降低功耗。
[0033] 3.MTJ在断电时保留原来的信息,不需要采用另外一个芯片存储编程信息,启动时也不需要加载内容,可以瞬间启动。
[0034] 4.成功实现了用一个芯片兼容两种模式的神经网络。

附图说明

[0035] 图1是具有高电阻态和低电阻态特性的MTJ的结构示意图;
[0036] 图2是人脑的神经元架构示意图;
[0037] 图3是本发明实施例一提供的类脑计算系统的结构示意图;
[0038] 图4是本发明实施例的两态MTJ突触的结构示意图;
[0039] 图5是本发明实施例的四态MTJ突触的结构示意图;
[0040] 图6是本发明实施例一的电荷积分器的一种电路结构示意图;
[0041] 图7是本发明实施例对集成类脑计算系统的计算芯片的阵列布局示意图;
[0042] 图8是本发明实施例二提供的类脑计算系统的结构示意图;
[0043] 图9是本发明实施例二的电荷积分器的一种电路结构示意图。

具体实施方式

[0044] 为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例作详细的说明。
[0045] 实施例一
[0046] 可以参阅图3,本发明实施例一提供一种类脑计算系统,包括:一个以上神经元和一个以上的MTJ突触,神经元与神经元之间通过所述MTJ突触连接起来。具体地,一个以上神经元中包括输入电荷的神经元和输出电荷的神经元,每一个输入电荷的神经元连接了一个以上的MTJ突触,每一个输出电荷的神经元也连接了一个以上的MTJ突触。
[0047] 本实施例中的神经元结构如图3所示,它可以包含一个电荷积分器和一个脉冲发生器,电荷积分器收集各个从外部或其他神经元的输入点输入的电流,将输入的电流积累起来,当电荷积累达到设定值时,触发脉冲发生器向各个输出的突触发射脉冲,同时电荷归零。关于本实施例中神经元的结构将在后续作进一步说明。
[0048] 此外,类脑计算系统中的神经元还接受外部供电以及接收外部控制信号,这是本领域技术人员所知晓的,此处不再详细描述。
[0049] 需要指出的是,不同于现有技术中通常以SRAM模仿突触的方案,本发明实施例提供的类脑计算系统中采用的突触则是包含MTJ的MTJ突触。
[0050] 具体地,可以参阅图4,所述MTJ突触包括记忆MTJ和参考MTJ;所述MTJ突触的输出端连接到所述类脑计算系统中输入电荷的神经元,所述MTJ突触的输入端连接到所述类脑计算系统中输出电荷的神经元;所述类脑计算系统处于正常工作模式时,所述MTJ突触的输出端被置于基准电位,所述记忆MTJ适于接收来自所述MTJ突触的输入端的第一脉冲,所述参考MTJ适于接收来自所述MTJ突触的输入端的第二脉冲,所述第一脉冲与第二脉冲同时发射,形状相同且符号相反,所述第一脉冲和第二脉冲的电压差由所述基准电位以及对所述MTJ突触的读取电压所确定。
[0051] 为了建立神经网络,所述记忆MTJ上和参考MTJ上还可以各自连接一个选通器件,该选通器件可以是选通二级管或MOS管。因此,在本实施例中,所述MTJ突触还包括与所述记忆MTJ相连的第一选通器件以及与所述参考MTJ相连的第二选通器件,所述第一选通器件和第二选通器件分别设置于所述输出电荷的神经元与所述输入电荷的神经元之间的不同电流路径上,且两者导流方向相反。
[0052] 本实施例中,所有MTJ突触各自包含的参考MTJ都在同一个约定的状态上(都是高阻态或都是低阻态)。MTJ突触的工作原理如下:
[0053] 继续参阅图4,MTJ突触的输出端(连接到一个神经元的电荷积分器)被置于基准电位V_b;
[0054] 输入端的脉冲发生器向记忆MTJ发射一个脉冲(即第一脉冲),比如发射一个从基准电位V_b到V_b+V_read的方波,其中V_read是对MTJ突触的读取电压;
[0055] 这个脉冲发生器同时向参考MTJ发射一个形状相同但符号相反的脉冲(即第二脉冲),以前面方波的例子,则可以是一个从基准电位V_b到V_b-V_read的方波。
[0056] 这样,当记忆MTJ和参考MTJ处在同一个状态时,整个MTJ突触没有净电荷输出,而只有当记忆MTJ处在与参考MTJ不同的状态下才有净电荷输出。
[0057] 实际实施时,所述第一选通器件和第二选通器件均可以采用选通二极管或MOS管予以实现,即在记忆MTJ和参考MTJ各自连接一个选通二极管,分别用于对各自的读脉冲导通,因此所述选通二极管的正负极连接设置应当与读脉冲的电流方向相一致。如图4所示,与记忆MTJ相对应的选通二极管(第一选通器件)的正极与脉冲发生器用于输出第一脉冲的输出端相连,该选通二极管的负极则连接记忆MTJ;与参考MTJ相对应的选通二极管(第二选通器件)的负极与脉冲发生器用于输出第二脉冲的输出端相连,该选通二极管的正极则连接参考MTJ。
[0058] 当然,记忆MTJ、参考MTJ与各自相应的选通二极管之间的位置并不局限于图4所示的方式,位置完全是可以交换的。例如:可以将与记忆MTJ相对应的选通二极管的负极与电荷积分器用于输入第一脉冲的输入端相连,该选通二极管的正极则连接记忆MTJ;或者可以将与参考MTJ相对应的选通二极管的正极与电荷积分器用于输入第二脉冲的输入端相连,该选通二极管的负极则连接参考MTJ。
[0059] 在其他实施例中,所述第一选通器件和第二选通器件也可以选用其他能实现类似功能的器件或电路予以实现。至于所述第一选通器件和第二选通器件的作用将在后续作进一步解释。
[0060] 本实施例中,如图4所示的MTJ突触含有一个记忆MTJ和一个参考MTJ,此类MTJ突触可以表示0、1两个单位的电荷,因此可以称其为两态MTJ突触。当然,类脑计算系统中的MTJ突触除了包括两态MTJ突触,还可以包括由两个所述两态MTJ突触构造而成的四态MTJ突触,所述四态MTJ突触中施加于其中一个两态MTJ突触的输入端的脉冲不同于施加于另一个两态MTJ突触的输入端的脉冲。一个最优的设计是一个两态MTJ突触的脉冲中的电荷量是另一个的两倍。
[0061] 图4所示的是两态的MTJ突触,而可以用两个这样的突触构造四态的MTJ突触,如图5所示。在实际实施时,相对于某个四态MTJ突触中的第一个两态MTJ突触结构,同一个脉冲发生器可以对该四态MTJ突触中的第二个两态MTJ突触结构发射一个宽度更大的脉冲。仍以上述方波这个例子,可以是一个同样高度(电压差),但宽度(即脉冲时间)为两倍的方波。这样整个组合可以输出0、1、2、3四个单位的电荷。
[0062] 除了控制施加不同的脉冲构造四态(多态)突触的方式,还可以通过控制MTJ突触尺寸改变电阻以构造四态(多态)突触的方式,即:使得所述四态MTJ突触中的两个两态MTJ突触的尺寸大小不同,从而导致这两个两态MTJ突触的电阻不同,如此同样输出电压下输出的电流也不相同。因此,在实际实施时,四态MTJ突触还可以由一对最小尺寸的MTJ突触和一对更大直径的MTJ突触组成,后者尺寸为前者的约1.4倍,电阻为前者的一半,在同样的输出电压下输出两倍的电流。
[0063] 需要指出的是,神经元与神经元之间的MTJ突触既可以采用两态的MTJ突触,也可以采用四态的MTJ突触,甚至还可以采取八态、十六态的MTJ突触,这是由神经元与神经元之间对于连接强度的需求所决定的。当然,在实际实施时,越是高态的MTJ突触,其相应的实施难度也将越复杂。
[0064] 需要说明的是,现有技术中或许也会存在一些以可变电阻材料充当突触的初步方案,然而本实施例中使用两个MTJ形成电流差的方式模仿突触的上述设计则是未被公开的,这也本领域技术人员所未曾想到的。
[0065] 如此前所提及的,在本实施例中,所述神经元包括电荷积分器和脉冲发生器;在提供外部供电以及外部控制信号的控制下,所述电荷积分器适于收集各个从外部或其他神经元的输入点输入的电荷(电流),并将输入的电荷(电流)积累起来,当电荷积累达到设定值时,触发所述脉冲发生器向各个输出的MTJ突触发射第一脉冲和第二脉冲,同时将所积累的电荷归零;所述MTJ突触的输出端连接到输入电荷的神经元所包含的电荷积分器,所述MTJ突触的输入端连接到输出电荷的神经元所包含的脉冲发生器。本领域技术人员容易理解的是,在实际实施时,由于各个MTJ突触的电阻值可能有所不同,那么向各个其他神经元或外部输出点输出的电流将不尽相同。
[0066] 实际实施时,本实施例的神经元中的电荷积分器,可以是标准的模拟集成电路器件,教科书上有很多不同的电路。下面举一个例子:
[0067] 所述电荷积分器包括运算放大器和电容器;所述基准电位置于所述运算放大器的第一输入端,所述运算放大器的第二输入端连接所述MTJ突触的输出端,所述运算放大器的输出端连接所述脉冲发生器的输入端,所述电容器的两端分别与所述运算放大器的第二输入端和输出端相连(所述电容器的一端连接所述运算放大器的第二输入端,另一端连接所述运算放大器的输出端)。
[0068] 如图6所示,在实际实施时,所述电荷积分器可以包括一个运算放大器和一个电容器C。所述运算放大器的放大效应使得A点的电位非常接近基准电位V_b,它的高输入电阻使得流入的电荷全部积累到电容器C上,由于相反的电荷积累,B点的电位就会逐渐远离基准电位V_b;当B点的电位达到设定值时,脉冲发生器发射脉冲,并触发一个电路释放电容器C上的电荷。
[0069] 至于本实施例中的所述脉冲发生器,其设计更加简单,能够容易为本领域技术人员所实现,因此不再详述。
[0070] 本实施例中,所述电荷积分器是有时间限制的,如果长时间没有新的输入,存在电容器C上的电荷会漏掉,原有的积累会丧失。但这应与人脑的工作方式类似,连续的刺激才会产生结果。
[0071] 需要说明的是,本实施例中的神经元是通过电荷积分器并配合脉冲发生器的模拟电路实现方式来进行模仿的,而现有技术中的类脑计算系统中的神经元则大多是通过数字电路的实现方式进行模仿的,本实施例中神经元的实现方式更为简单有效。此外,电荷积分器虽然为本领域技术人员所公知,然而使用电荷积分器去模仿神经元的设计却并不一定是本领域技术人员容易想到的。
[0072] 以上介绍了本实施例的类脑计算系统在正常工作模式(主要包括数据的读取)下的实施,下面还将介绍所述类脑计算系统在编程模式(主要包括数据的写入)下的实施。
[0073] 本实施例中,所述类脑计算系统还可以包括写驱动电路,所述写驱动电路的第一输出端与所述脉冲发生器对每一个记忆MTJ的输出端相连,所述写驱动电路的第二输出端与所述电荷积分器对每一个记忆MTJ的输入端相连;在正常工作模式下所述写驱动电路处于直通状态,在编程模式下所述脉冲发生器和电荷积分器处于高阻状态,所述写驱动电路用于在所述编程模式下改变或维持所述记忆MTJ的状态;施加于所述记忆MTJ以及所述第一选通器件的电压根据所述基准电位、所述MTJ突触的编程电压以及所述第一选通器件的正向压降或反向导通电压确定。
[0074] 如前所述,当记忆MTJ和参考MTJ处在同一个状态时,整个MTJ突触没有净电荷输出,而只有当记忆MTJ处在与参考MTJ不同的状态下才有净电荷输出。因此,若需要控制MTJ突触是否能输出电荷,则需要改变记忆MTJ相对于参考MTJ的状态,为此可以在脉冲发生器对每一个记忆MTJ的输出端和电荷积分器对每一个记忆MTJ的输入端设置所述写驱动电路,在正常工作模式下写驱动电路处于直通状态,在编程模式下,脉冲发生器和电荷积分器处于高阻状态。
[0075] 需要说明的是,所述“高阻状态(或称为高阻态)”为本领域所公知的常识,其是一个数字电路里常见的术语,指的是三态门电路的一种输出状态,既不是高电平也不是低电平。脉冲发生器和电荷积分器处于高阻状态时,不会影响所述写驱动电路对于记忆MTJ的两端所施加的电压,即不会影响编程的准确性。
[0076] 实际实施时,所述写驱动电路可以通过其第一输出端将所述脉冲发生器的输出端置于电位“V_b+V_write+选通二极管正向压降”,通过其第二输出端将电荷积分器的输入端置于基准电位V_b,如此便可以把记忆MTJ设置成一个状态;同理,所述写驱动电路也可以通过其第一输出端将所述脉冲发生器的输出端置于基准电位V_b,而通过其第二输出端将电荷积分器的输入端置于电位“V_b+V_write+选通二极管反向导通电压”,如此就可以将记忆MTJ置于相反的状态;其中,V_write是对于MTJ突触的编程电压。
[0077] 本发明实施例中,还使用MTJ技术设计了一类仿照人脑原理的计算芯片(业界通常称为类脑芯片),将上述类脑计算系统集成于所述计算芯片之中,其最重要的应用之一在于人工智能领域。
[0078] 所述计算芯片的一种常见的实施方式描述如下:
[0079] 上述类脑计算系统以分层结构的形式集成于半导体芯片,所述分层结构由一层以上的神经元电荷输出层与一层以上的神经元电荷输入层依次交替层接而成,所述神经元电荷输出层包括一个以上输出电荷的神经元及其对应的一组输出线,所述神经元电荷输入层包括一个以上输入电荷的神经元及其对应一组输入线;相邻两层的输出线与输入线呈纵横排列形成阵列,相邻两层的输出线与输入线之间的每一个交叉位置设有一个MTJ突触,每个输出电荷的神经元的输出线和每个输入电荷的神经元的输入线均各自包含两根导线,输出线包含的一根导线、输入线包含的一根导线连接起所述记忆MTJ以及所述第一选通器件构成一条电流路径,输出线包含的另一根导线、输入线包含的另一根导线连接起所述参考MTJ以及所述第二选通器件构成另一条电流路径。
[0080] 需要指出的是,本领域技术人员能够理解,本发明实施例的“分层结构”中的“层”是神经网络的一个概念,具体是指的网络结构中的层,而不是三维空间中的层。
[0081] 类脑计算系统以分层结构的形式集成于半导体芯片的阵列布局如图7所示。图7中示出了第N层神经元(假设为神经元电荷输出层)及其输出线,例如神经元一1、神经元一2、神经元一3、神经元一4等等,神经元电荷输出层的每一个神经元均连接由两根导线构成的一条输出线(图7中的每一条线实际上包含两根导线),第N层神经元中每个神经元所连接的输出线形成一组输出线;图7中还示出了第N+1层神经元(假设为神经元电荷输入层)及其输入线,例如神经元二1、神经元二2、神经元二3、神经元二4等等,神经元电荷输入层的每一个神经元同样连接由两根导线构成的一条输入线,第N+1层神经元中每个神经元所连接的输入线形成一组输入线;第N层神经元输出线与第N+1层神经元输入线可以如图7所示排列成阵列,两组线分两层纵横布局,在每一个交叉点上部署一个MTJ突触(如图7中黑色椭圆形所示),每一个MTJ突触至少包含由两个MTJ所构成的一对MTJ,分别是记忆MTJ和参考MTJ,其中记忆MTJ及其相应的选通二极管分别与两根导线连接,参考MTJ及其相应的选通二极管也分别与两根导线连接;举例来说:针对第N层神经元的某一条输出线与第N+1层神经元的某一条输入线的交叉位置所设置的MTJ突触,该输出线包含的一根导线、该输入线包含的一根导线连接起所述记忆MTJ及其相应的选通二极管构成一条电流路径,该输出线包含的另一根导线、该输入线包含的另一根导线连接起所述参考MTJ及其相应的选通二极管构成另一条电流路径。
[0082] 需要说明的是,连接记忆MTJ的选通二极管以及连接参考MTJ的选通二极管,其作用是迫使电流在类脑计算系统所形成的网络中流动时,只能选择最简单的路线,即只能拐弯一次,不能多次拐弯,以确保系统的正常运行。
[0083] 需要指出的是,上述阵列布局也可以参照现有技术中IBM TrueNorth芯片的设计,有所区别的是,本发明实施例的计算芯片的阵列布局中采用了记忆MTJ和参考MTJ形成的结构来模仿神经元之间的突触,而非传统的SRAM所构成的突触;此外,神经元以电荷积分器并配合脉冲发生器的模拟电路实现方式也有别于现有技术中通过数字电路的实现方式。
[0084] 相对于采用传统SRAM模仿类脑计算系统中的突触(例如现有技术中的IBM TrueNorth芯片),本发明实施例中集成所述类脑计算系统的计算芯片的优势体现如下:
[0085] 通过用MTJ取代传统的SRAM作为突触,能有效缩减突触所占用的面积,那么同样的计算芯片可以进行更大规模的计算;传统突触所使用的SRAM在不使用时会存在漏电现象,芯片规模较大时这个漏电尤其严重,而MTJ突触在不使用时可以进行断电控制,从而能降低功耗;MTJ在断电时保留原来的信息,不需要采用另外一个芯片存储编程信息,启动时也不需要加载内容,既简化了设计,又提高了系统启动的速度。
[0086] 在实际实施时,各个MTJ突触在不同的状态下一般具有不同的电阻,因此向各个其他神经元或外部输出点输出的电流将不尽相同。需要说明的是,由于本实施例中集成有所述类脑计算系统的芯片进行的是模拟计算,模拟计算会有误差,有来自噪声的误差,有由于每一个MTJ的电阻略有不同造成的误差,正如人脑内也是进行的模拟计算。智能算法对误差有一定容忍度,在智能算法可接受误差的前提下,采用本实施例提供的简单电路予以实现是完全有可能的。
[0087] 实施例二
[0088] 实施例一提供的类脑计算系统,可以实现模拟脉冲神经网络的功能,然而目前大量的应用计算一般是使用传统神经网络进行的,因此市场需要能够适应在传统神经网络下进行应用计算的类脑芯片。
[0089] 为此,在实施例一的基础上,实施例二还提供一种既能够实现模拟脉冲神经网络的功能,又能够实现传统神经网络功能的双模式类脑计算系统。
[0090] 如图8所示,所述双模式类脑计算系统包括:一个以上神经元和一个以上包含MTJ的MTJ突触,所述MTJ突触包括记忆MTJ和参考MTJ;所述MTJ突触的输出端连接到所述类脑计算系统中输入电荷的神经元,所述MTJ突触的输入端连接到所述类脑计算系统中输出电荷的神经元;所述类脑计算系统处于正常工作模式时,所述MTJ突触的输出端被置于基准电位,所述记忆MTJ适于接收来自所述MTJ突触的输入端的第一脉冲,所述参考MTJ适于接收来自所述MTJ突触的输入端的第二脉冲,所述第一脉冲与第二脉冲同时发射,形状相同且符号相反,所述第一脉冲和第二脉冲的电压差由所述基准电位以及对所述MTJ突触的读取电压所确定;神经元之间通过所述MTJ突触连接起来;所有MTJ突触各自包含的参考MTJ都在同一个约定的状态上。
[0091] 以上描述的结构与图3所示类脑计算系统的结构相同,本实施例中双模式类脑计算系统与图3所示类脑计算系统有所区别的是,本实施例中的神经元除了包括电荷积分器和脉冲发生器,还包括分别与所述电荷积分器和脉冲发生器相连的模式控制器。
[0092] 所述电荷积分器适于收集各个从外部或其他神经元的输入点输入的电荷,并将输入的电荷积累起来,然后触发脉冲发到下一级别的神经元。由于各个MTJ突触的电阻值不同,向各个其他神经元或外部输出点输出的电荷将不尽相同。所述脉冲发生器适于在被触发后向各个输出的MTJ突触发射所述第一脉冲和第二脉冲。所述MTJ突触的输出端连接到输入电荷的神经元所包含的电荷积分器,所述MTJ突触的输入端连接到输出电荷的神经元所包含的脉冲发生器。
[0093] 在所述模式控制器的控制下,所述类脑计算系统的正常工作模式可以被实现为第一神经网络模式或第二神经网络模式,所述第一神经网络模式是传统神经网络模式,所述第二神经网络模式为脉冲神经网络模式,实施例一中的类脑计算系统仅仅支持在脉冲神经网络模式下的应用计算,而本实施例中的双模式类脑计算系统则既能实现脉冲神经网络模式的功能,也能实现传统神经网络模式的功能。
[0094] 实际实施时,所述模式控制器也可以通过模式控制电路的形式实现,模式控制电路能够实现上述两种工作模式:
[0095] 在所述第一神经网络模式下,在电荷积累周期里,所述电荷积分器积累电荷同时其输出电压产生变化;在电荷输出周期里,所述电荷积分器发信号释放积累起来的电荷,同时驱动所述脉冲发生器发射所述第一脉冲和第二脉冲,直至所述电荷积分器的输出电压达到第一设定值时停止发射;电荷的电量被转化成脉冲长度;当任一神经元工作在电荷输出周期里,接收该神经元所输出电荷的神经元工作在电荷积累周期里(即当某一级的神经元工作在输出周期里,下一级的神经元工作在积累周期里);
[0096] 在所述第二神经网络模式下,当所述电荷积分器的输出电压达到第二设定值时,触发所述脉冲发生器向各个输出的MTJ突触发射所述第一脉冲和第二脉冲,并给所述电荷积分器发信号释放积累起来的电荷。
[0097] 需要说明的是,当在所述脉冲神经网络模式(即所述第二神经网络模式)下,神经元的电荷积累到了一定阈值(第二设定值)时,发射固定宽度的脉冲;而处于传统神经网络模式(所述第一神经网络模式)下,神经元在固定的时间间隔上发射可变宽度的脉冲,其宽度取决于这段时间内积累的电荷。
[0098] 由于本实施例的神经元能够在两种不同神经网络模式下工作,因此本实施例中神经元的电荷积分器的电路实现形式,与实施例一中如图6所示的电荷积分器的电路结构有所不同。当然,实际实施时,本实施例的神经元中的电荷积分器,仍然可以是标准的模拟集成电路器件,教科书上有很多不同的电路。下面举一个例子:
[0099] 所述电荷积分器包括运算放大器、电容器、MOS管和电阻;所述基准电位置于所述运算放大器的第一输入端,所述运算放大器的第二输入端连接所述MTJ突触的输出端,所述运算放大器的输出端连接所述模式控制器的第一端,所述电容器的两端分别与所述运算放大器的第二输入端和输出端相连(所述电容器的一端连接所述运算放大器的第二输入端,另一端连接所述运算放大器的输出端);所述MOS管和电阻串联后与所述电容器并联,所述MOS管的栅极连接所述模式控制器的第二端,所述模式控制器的第三端与所述脉冲发生器的输入端相连。
[0100] 如图9所示,在实际实施时,所述电荷积分器可以包括一个运算放大器、一个电容器C、一个MOS管N以及一个电阻R。所述运算放大器的放大效应使得A点的电位非常接近基准电位V_b,它的高输入电阻使得流入的电荷全部积累到电容器C上,由于相反的电荷积累,B点的电位就会逐渐远离基准电位V_b;当B点的电位达到设定值时,脉冲发生器发射脉冲,并触发一个电路释放电容器C上的电荷。
[0101] 放电则是在模式控制器的控制下接通MOS管N,通过该MOS管N和电阻R释放电荷。
[0102] 本实施例中的模式控制器可以基于一个比较器设计,在不同的模式下和不同的电位比较,此为本领域技术人员所容易实现的,此处不再详述。
[0103] 至于本实施例中的脉冲发生器,其设计更加简单,能够容易为本领域技术人员所实现,因此也不再详述。
[0104] 需要说明的是,实施例二提供的类脑计算系统的具体实施还可以参考实施例一中的相关内容,例如MTJ突触的结构(包括两态MTJ突触、四态MTJ突触以及更多状态MTJ突触的结构)、类脑计算系统在编程模式下的实施、类脑计算系统以分层结构的形式集成于半导体芯片的阵列布局等等,这些均能够适用于实施例二提供的类脑计算系统,此处不再赘述。
[0105] 实际实施时,本实施例提供的双模式类脑计算系统,可以集成在半导体芯片中,形成模拟传统神经网络和脉冲神经网络的类脑计算芯片,由此成功实现了用一个芯片兼容两种模式的神经网络,因此具有更广泛的适用范围。
[0106] 实施例三
[0107] 实施例一提供的类脑计算系统,可以实现模拟脉冲神经网络的功能;而实施例二还提供的双模式类脑计算系统,既能够实现模拟脉冲神经网络的功能,又能够实现传统神经网络功能;本实施例提供的类脑计算系统则可以实现传统神经网络功能。
[0108] 本实施例提供的所述类脑计算系统的结构与实施例一的类脑计算系统的结构相同,有所区别的是,在本实施例中,所述类脑计算系统的正常工作模式为传统神经网络模式。
[0109] 因此,本实施例中,所述神经元包括电荷积分器和脉冲发生器;所述电荷积分器适于收集各个从外部或其他神经元的输入点输入的电荷,并将输入的电荷积累起来;在电荷积累周期里,所述电荷积分器积累电荷同时其输出电压产生变化;在电荷输出周期里,所述电荷积分器发信号释放积累起来的电荷,同时驱动所述脉冲发生器发射所述第一脉冲和第二脉冲,直至所述电荷积分器的输出电压达到第一设定值时停止发射;电荷的电量被转化成脉冲长度;当任一神经元工作在电荷输出周期里,接收该神经元所输出电荷的神经元工作在电荷积累周期里;所述MTJ突触的输出端连接到输入电荷的神经元所包含的电荷积分器,所述MTJ突触的输入端连接到输出电荷的神经元所包含的脉冲发生器。
[0110] 需要说明的是,实施例三提供的类脑计算系统的具体实施还可以参考实施例一或实施例二中的相关内容,例如MTJ突触的结构(包括两态MTJ突触、四态MTJ突触以及更多状态MTJ突触的结构)、类脑计算系统在编程模式下的实施、类脑计算系统以分层结构的形式集成于半导体芯片的阵列布局等等,这些均能够适用于实施例三提供的类脑计算系统,此处不再赘述。
[0111] 本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。