首页 / 专利库 / 专利权 / 共同代表 / 神经网络计算装置和系统及其方法

神经网络计算装置和系统及其方法

阅读:742发布:2022-11-01

专利汇可以提供神经网络计算装置和系统及其方法专利检索,专利查询,专利分析的服务。并且为了提供神经网络计算装置和系统及其方法,其中所有部件与一个系统时钟同步且通过同步 电路 而运作而且包括分布型 存储器 结构以及计算结构,其中分布型存储器结构用于存储 人工神经网络 数据,计算结构用于在管线电路中以时分方式处理所有神经元,本 发明 包括:控制单元,用于控制神经网络计算装置;多个存储器单元,用于输出 连接线 属性值和神经元属性值;以及一个计算单元,用于利用从多个存储器单元输入的连接线属性值和神经元属性值计算新神经元属性值,并将新神经元属性值反馈给多个存储器单元中的每个存储器单元。,下面是神经网络计算装置和系统及其方法专利的具体信息内容。

1.一种神经网络计算装置,包括:
控制单元,被配置为控制所述神经网络计算装置;
多个存储器单元,每个存储器单元被配置为输出连接属性和神经元属性;以及计算单元,被配置为利用从每个所述存储器单元输入的连接属性和神经元属性计算新神经元属性,并将所述新神经元属性反馈给每个存储器单元。
2.根据权利要求1所述的神经网络计算装置,其中,所述控制单元包括:
时钟周期计数器,被配置为在一个神经网络计算周期内提供时钟周期;以及控制存储器,被配置为存储控制信号的时序和控制信息,并根据来自所述时钟周期计数器的时钟周期将所述时序和控制信息输出到所述神经网络计算装置。
3.根据权利要求1所述的神经网络计算装置,其中,所述控制单元由主计算机控制。
4.根据权利要求1所述的神经网络计算装置,还包括设置于所述计算单元的输出和所述多个存储器单元之间的切换单元,所述切换单元被配置为根据所述控制单元的控制选择来自所述控制单元的输入数据和来自所述计算单元的新神经元属性中的任一个,并将所选择的数据或属性切换到所述多个存储器单元。
5.根据权利要求1至4中任意一项所述的神经网络计算装置,其中,每个存储器单元包括:
第一存储器,被配置为存储连接属性;
第二存储器,被配置为存储神经元的唯一编号;
第三存储器,其地址输入连接到所述第二存储器的数据输出,并被配置为存储神经元属性;以及
第四存储器,被配置为存储通过所述计算单元计算的新神经元属性。
6.根据权利要求5所述的神经网络计算装置,其中,每个存储器单元还包括:
第一寄存器,与系统时钟同步运作,设置于所述第一存储器的地址输入端并被配置为临时存储输入到所述第一存储器的连接束编号;以及
第二寄存器,与所述系统时钟同步运作,设置于所述第三存储器的地址输入端并被配置为临时存储从所述第二存储器输出的神经元的唯一编号,并且
所述第一存储器、所述第二存储器和所述第三存储器根据所述控制单元的控制以管线方式运作。
7.根据权利要求5所述的神经网络计算装置,还包括:
多个第三寄存器,与系统时钟同步运作,设置于各个存储器单元的输出与所述计算单元的输入之间,并被配置为临时存储连接属性和神经元属性;以及
第四寄存器,与所述系统时钟同步运作,设置于所述计算单元的输出端,并被配置为临时存储从所述计算单元输出的新神经元属性,
其中,所述多个存储器单元和所述计算单元根据所述控制单元的控制以管线方式运作。
8.根据权利要求5所述的神经网络计算装置,其中,所述控制单元通过下面的步骤在每个存储器单元内的存储器中存储数据:
a.搜索神经网络中输入连接个数最大的神经元的输入连接的个数Pmax;
b.当存储器单元的个数用p表示时,增加虚拟连接,使得神经网络内的所有神经元中的每个神经元具有[Pmax/p]*p个连接,虽然所述虚拟连接被连接到任何神经元,但是所述虚拟连接的连接属性对相邻神经元没有影响:
c.按任意顺序对神经网络内的所有神经元进行排序并为排序后的神经元分配连续编号;
d.将所有神经元的连接除以p个连接,以将连接分为[Pmax/p]个连接束,并以任意顺序对所述连接束排序;
e.为从第一神经元的第一连接束至最后一个神经元的最后一个连接束的各个连接束分配连续编号k;
f.将第k个连接束的第i个连接的属性存储在所述存储器单元的第i个存储器单元的第一存储器的第k个地址中;
g.将第j个神经元的属性存储在所述多个存储器单元的第三存储器的第j个地址中;
以及
h.将连接到第k个连接束的第i个连接的神经元的编号值存储在所述存储器单元的第i个存储器单元的第二存储器的第k个地址中。
9.根据权利要求8所述的神经网络计算装置,其中,在步骤b中,
根据如下任一方法增加所述虚拟连接:增加属性对任何神经元的属性都没有影响的多个虚拟连接,即使所述多个虚拟连接被连接到所述神经元;以及增加属性对神经网络中的任何神经元都没有影响的一个虚拟神经元,即使所述虚拟神经元被连接到所述神经元,并将所有虚拟连接都连接到所述虚拟神经元。
10.根据权利要求5所述的神经网络计算装置,其中,所述控制单元通过下面的步骤在每个存储器单元内的存储器中存储数据:
a.根据神经网络内的每个神经元所包括的输入连接的个数,对所有神经元按升序排序,并且为排序后的神经元顺序地分配编号;
b.增加其属性对神经网络内的另一神经元没有影响的一个空神经元,即使所述空神经元通过连接被连接到所述神经元;
c.当神经元j的输入连接的个数用pj表示时,增加([pj/p]*p-pj)个连接,使得神经网络内的每个神经元具有[pj/p]*p个连接,所述连接被连接到所述空神经元并且其连接属性对任何神经元都没有影响,即使所述连接被连接到所述神经元,其中p代表所述存储器单元的个数;
d.将所有神经元的连接除以p个连接,以将所述连接分为[pj/p]个连接束,并以任意顺序为所述连接束的每个连接分配编号i,编号i从1开始,按1递增;
e.为从第一神经元的第一连接束至最后一个神经元的最后一个连接束的每个连接束分配编号k,编号k从1开始,按1递增;
f.将第k个连接束的第i个连接的属性存储在所述存储器单元的第i个存储器单元的第一存储器的第k个地址中;
g.将连接到第k个连接束的第i个连接的神经元的编号值存储在所述存储器单元的第i个存储器单元的第二存储器的第k个地址中;以及
h.将第j个神经元的属性存储在所述存储器单元的第i个存储器单元的第三存储器的第j个地址中。
11.根据权利要求5所述的神经网络计算装置,其中,对所述第三存储器和第四存储器应用双存储器交换电路,所述双存储器交换电路利用来自所述控制单元的控制信号控制的多个数字开关,交换并连接相同的两个存储器的所有输入和输出。
12.根据权利要求1-4中任意一项所述的神经网络计算装置,其中,每个存储器单元包括:
第一存储器,被配置为存储连接属性;
第二存储器,被配置为存储神经元的唯一编号;以及
第三存储器,被配置为存储神经元属性。
13.根据权利要求12所述的神经网络计算装置,其中,已有神经元属性和通过所述计算单元计算的新神经元属性不加区分地存储在所述第三存储器中,并且
对所述第三存储器应用单存储器复制存储电路,所述单存储器复制存储电路在一个管线周期期间以时分方式处理已有神经元属性的读操作和通过所述计算单元计算的新神经元属性的写操作。
14.根据权利要求12所述的神经网络计算装置,其中,已有神经元属性被存储在所述第三存储器的第一半区域中,
通过所述计算单元计算的新神经元属性被存储在所述第三存储器的第二半区域中,而且
对所述第三存储器应用单存储交换电路,所述单存储器交换电路在一个管线周期期间以时分方式处理已有神经元属性的读操作和通过所述计算单元计算的新神经元属性的写操作。
15.根据权利要求1至4中任意一项所述的神经网络计算装置,还包括分别设置于所述计算单元内的计算步骤之间且与系统时钟同步的寄存器,从而以管线方式处理各个计算步骤。
16.根据权利要求1至4中任意一项所述的神经网络计算装置,其中,所述计算单元中设置的所有或部分计算设备中的每个计算设备具有用与系统时钟同步运作的管线电路实现的内部结构。
17.根据权利要求16所述的神经网络计算装置,其中,应用并行计算线方法,从而以管线方式实现各个计算设备的内部结构,所述并行计算线方法利用与特定计算设备的输入个数对应的分路器、多个特定计算设备和与所述特定计算设备的输出个数对应的多路器,通过所述分路器将顺序提供的输入数据分路到所述多个特定计算设备,并通过所述多路器收集各个特定计算装置的计算结果并将其相加。
18.根据权利要求1至4中任意一项所述的神经网络计算装置,其中,所述计算单元包括:
乘法单元,被配置为对来自各个存储器单元的连接属性和神经元属性进行乘法运算;
加法单元,其具有树状结构并被配置为通过一级或多级对来自所述乘法单元的多个输出值进行加法运算;
累加器,被配置为累加来自所述加法单元的输出值;以及
激活计算器,被配置为对来自所述累加器的累加输出值应用激活函数并计算下一神经网络更新周期要使用的新神经元属性。
19.根据权利要求18所述的神经网络计算装置,其中,通过应用并行计算线方法实现所述累加器,所述并行计算线方法利用一个分路器、多个FIFO队列、多个累加器和一个多路器,通过所述分路器将顺序提供的输入数据分路到多个FIFO队列,并通过所述多路器收集通过所述FIFO队列累加的结果并将其相加。
20.根据权利要求18所述的神经网络计算装置,其中,所述乘法单元中设置的每个乘法器用一个减法器和一个平方计算器实现,两个输入值被连接到所述减法器,并且所述减法器的输出连接到所述平方计算器。
21.根据权利要求18所述的神经网络计算装置,其中,所述乘法单元中设置的每个乘法器用一个参考表和一个乘法器实现。
22.根据权利要求18所述的神经网络计算装置,还包括设置于所述累加器和所述激活计算器之间的FIFO队列。
23.根据权利要求18所述的神经网络计算装置,其中,所述激活计算器通过第一输入从所述累加器接收累加输出值(神经元的净输入数据),通过第一输出将下一神经网络更新周期要使用的新神经元属性输出给各个存储器单元,通过第二输入接收相应神经元的编号值,并在通过所述第一输出来输出新神经元属性时通过第二输出将相应神经元的编号值连接到各个存储器单元的输入。
24.一种神经网络计算装置,包括:
控制单元,被配置为控制所述神经网络计算装置;
多个存储器单元,每个存储器单元被配置为输出连接属性和神经元属性;
计算单元,被配置为利用从每个存储器单元输入的连接属性和神经元属性计算新神经元属性;
输入单元,被配置为从所述控制单元向输入神经元提供输入数据;
切换单元,被配置为根据所述控制单元的控制将来自所述输入单元的输入数据或者来自所述计算单元的新神经元属性切换至所述多个存储器单元;以及
第一和第二输出单元,用双存储器交换电路实现并且被配置为将来自所述计算单元的新神经元属性输出至所述控制单元,所述双存储器交换电路根据所述控制单元的控制交换并连接所有输入和输出。
25.根据权利要求24所述的神经网络计算装置,其中,在神经网络更新周期的第一阶段,执行将来自所述控制单元的输入数据存储在所述多个存储器单元中的过程。
26.根据权利要求24所述的神经网络计算装置,其中,根据交织方法执行将来自所述控制单元的输入数据存储在所述多个存储器单元中的过程,所述交织方法将所述过程与所述计算单元不产生输出的时钟周期交织。
27.一种神经网络计算系统,包括:
控制单元,被配置为控制所述神经网络计算系统;
多个存储器单元,每个存储器单元包括被配置为分别输出连接属性和神经元属性的多个存储器部分;以及
多个计算单元,每个计算单元被配置为利用从所述多个存储器单元内的相应存储器部分输入的连接属性和神经元属性计算新神经元属性,并将所述新神经元属性反馈给相应存储器部分。
28.根据权利要求27所述的神经网络计算系统,其中,所述多个存储器单元内的多个存储器部分和所述多个计算单元与一个系统时钟同步,并根据所述控制单元的控制以管线方式运作。
29.根据权利要求27或28所述的神经网络计算系统,其中,每个存储器部分包括:
第一存储器,被配置为存储连接属性;
第二存储器,被配置为存储神经元的唯一编号;
第一存储器组,其包括多个存储器,以通过解码器电路执行容量比单元存储器大若干倍的集成存储器的功能,并被配置为存储神经元属性;以及
第二存储器组,其包括多个共同绑定的存储器并被配置为存储通过相应计算单元计算的新神经元属性。
30.根据权利要求29所述的神经网络计算系统,其中,用双存储器交换方法实现第i个存储器部分的第一存储器组的第j个存储器和第j个存储器部分的第二存储器组的第i个存储器,所述双存储器交换方法根据所述控制单元的控制交换并连接所有输入和输出,其中i和j是任意自然数。
31.根据权利要求29所述的神经网络计算系统,其中,所述控制单元根据下述步骤在每个存储器部分内的存储器中存储数据:
a.将神经网络内的所有神经元划分为H个统一的神经元组;
b.搜索每个神经元组中输入连接个数最多的神经元的输入连接的个数Pmax;
c.当存储器单元的个数用p表示时,增加虚拟连接,使得神经网络内的所有神经元中的每个神经元具有[Pmax/p]*p个连接,虽然所述虚拟连接被连接到任何神经元,但是所述虚拟连接的连接属性对相邻神经元没有影响;
d.按任意顺序为每个神经元组内的所有神经元分配编号;
e.将每个神经元组内的所有神经元的连接除以p个连接,以将连接分为[Pmax/p]个连接束,并按任意顺序为连接束内的每个连接分配编号i,编号i从1开始,按1递增;
f.为每个神经元组中从第一神经元的第一连接束到最后一个神经元的最后一个连接束的每个连接束分配编号k,编号k从1开始,按1递增;
g.将第h个神经元组的第k个连接束的第i个连接的属性存储在所述存储器单元中的第i个存储器单元的第h个存储器部分的第一存储器的第j个地址中;
h.将连接到第h个神经元组的第k个连接束的第i个连接的神经元的唯一编号存储在所述存储器单元中的第i个存储器单元的第h个存储器部分的第二存储器的第j个地址中;
i.将第g个神经元组内具有唯一编号j的神经元的属性存储在形成每个存储器单元内所有存储器部分的第一存储器组的第g个存储器的第j个地址中;以及
j.将第h个神经元组内具有唯一编号j的神经元的属性存储在每个存储器单元内的第h个存储器部分的第二存储器组的所有存储器的第j个地址中。
32.根据权利要求27或28所述的神经网络计算系统,其中,每个计算单元包括:
乘法单元,被配置为对来自相应存储器部分的连接属性和神经元属性进行乘法运算;
加法单元,其具有树状结构,并被配置为通过一级或多级对来自所述乘法单元的多个输出值进行加法运算;
累加器,被配置为累加来自所述加法单元的输出值;以及
激活计算器,被配置为对来自所述累加器的累加输出值应用激活函数并计算新神经元属性。
33.一种神经网络计算装置,包括:
控制单元,被配置为控制所述神经网络计算装置;
多个存储器单元,每个存储器单元被配置为输出连接属性和神经元误差值;以及计算单元,被配置为利用从每个存储器单元输入的连接属性和神经元误差值计算新神经元误差值,并将所述新神经元误差值反馈给每个存储器单元。
34.根据权利要求33所述的神经网络计算装置,其中,所述计算单元利用从每个存储器单元输入的连接属性和神经元误差以及从所述控制单元提供的学习数据计算新神经元误差值,并将所述新神经元误差值反馈给每个存储器单元。
35.根据权利要求33或34所述的神经网络计算装置,其中,每个存储器单元包括:
第一存储器,被配置为存储连接属性;
第二存储器,被配置为存储神经元的唯一编号;
第三存储器,被配置为存储神经元误差值;以及
第四存储器,被配置为存储通过所述计算单元计算的新神经元误差值。
36.一种神经网络计算装置,包括:
控制单元,被配置为控制所述神经网络计算装置;
多个存储器单元,每个存储器单元被配置为输出连接属性和神经元属性,并利用所述连接属性、所述神经元属性和学习属性计算新连接属性;以及
计算单元,被配置为利用从每个存储器单元输入的所述连接属性和所述神经元属性计算新神经元属性和所述学习属性。
37.根据权利要求36所述的神经网络计算装置,其中,每个存储器单元包括:
第一存储器,被配置为存储连接属性;
第二存储器,被配置为存储神经元的唯一编号;
第三存储器,被配置为存储神经元属性;
第四存储器,被配置为存储通过所述计算单元计算的新神经元属性;
第一延迟单元,被配置为延迟来自所述第一存储器的连接属性;
第二延迟单元,被配置为延迟来自所述第三存储器的神经元属性;
连接调整模,被配置为利用来自所述计算单元的学习属性、来自所述第一延迟单元的连接属性以及来自所述第二延迟单元的神经元属性计算新连接属性;以及第五存储器,被配置为存储通过所述连接调整模块计算的新连接属性。
38.根据权利要求37所述的神经网络计算装置,其中,对所述第一和第五存储器以及所述第三和第四存储器中的每对存储器应用双存储器交换电路,所述双存储器交换电路根据所述控制单元的控制交换并连接所有输入和输出。
39.根据权利要求37所述的神经网络计算装置,其中,用一个存储器实现所述第一和第五存储器以及所述第三和第四存储器中的每对存储器,从而以时分方式处理读操作和写操作。
40.根据权利要求37所述的神经网络计算装置,其中,所述连接调整模块包括:
第三延迟单元,被配置为延迟来自所述第一延迟单元的连接属性;
乘法器,被配置为将来自所述计算单元的学习属性和来自所述第二延迟单元的神经元属性相乘;以及
加法器,被配置为将把来自所述第三延迟单元的连接属性和所述乘法器的输出值相加,并输出新连接属性。
41.一种神经网络计算装置,包括:
控制单元,被配置为控制所述神经网络计算装置;
第一学习属性存储器,被配置为存储神经元的学习属性;
多个存储器单元,每个存储器单元被配置为输出连接属性和神经元属性,并利用所述连接属性、所述神经元属性和所述第一学习属性存储器的学习属性来计算新连接属性;
计算单元,被配置为利用从每个存储器单元输入的连接属性和神经元属性计算新神经元属性和新学习属性;以及
第二学习属性存储器,被配置为存储通过所述计算单元计算的新学习属性。
42.根据权利要求41所述的神经网络计算装置,其中,每个存储器单元包括:
第一存储器,被配置为存储连接属性;
第二存储器,被配置为存储神经元的唯一编号;
第三存储器,被配置为存储神经元属性;
第四存储器,被配置为存储通过所述计算单元计算的新神经元属性;
连接调整模块,被配置为利用所述连接属性、所述神经元属性以及所述第一学习属性存储器的学习属性来计算新连接属性;以及
第五存储器,被配置为存储通过所述连接调整模块计算的新连接属性。
43.根据权利要求42所述的神经网络计算装置,其中,对所述第一和第二学习属性存储器、所述第一和第五存储器、以及所述第三和第四存储器中的每对存储器应用双存储器交换电路,所述双存储器交换电路根据所述控制单元的控制交换并连接所有输入和输出。
44.根据权利要求42所述的神经网络计算装置,其中,用一个存储器实现所述第一和第二学习属性存储器、所述第一和第五存储器、以及所述第三和第四存储器中的每对存储器,从而以时分方式处理读操作和写操作。
45.根据权利要求42所述的神经网络计算装置,其中,所述连接调整模块包括:
第一延迟单元,被配置为延迟来自所述存储器单元的连接属性;
乘法器,被配置为将来自所述第一学习属性存储器的学习属性和来自所述存储器单元的神经元属性相乘;以及
加法器,被配置为将来自所述第一延迟单元的连接属性和所述乘法单元的输出值相加,并输出新连接属性。
46.一种神经网络计算装置,包括:
控制单元,被配置为控制所述神经网络计算装置;
多个存储器单元,每个存储器单元被配置为存储并输出连接属性、前向神经元属性和反向神经元属性,并计算新连接属性;以及
计算单元,被配置为基于从每个存储器单元输入的数据计算新前向神经元属性和新反向神经元属性,并将所述新前向神经元属性和所述新反向神经元属性反馈给每个存储器单元。
47.根据权利要求46所述的神经网络计算装置,其中,所述多个存储器单元和所述计算单元与一个系统时钟同步,并根据所述控制单元的控制以管线方式运作。
48.根据权利要求46或47所述的神经网络计算装置,其中,每个存储器单元包括:
第一存储器,被配置为存储第二存储器的地址值;
所述第二存储器,被配置为存储连接属性;
第三存储器,被配置为存储神经元的唯一编号;
第四存储器,被配置为存储反向神经元属性;
第五存储器,被配置为存储通过所述计算单元计算的新反向神经元属性;
第六存储器,被配置为存储神经元的唯一编号;
第七存储器,被配置为存储前向神经元属性;
第八存储器,被配置为存储通过所述计算单元计算的新前向神经元属性;
第一开关,被配置为选择所述第二存储器的输入;
第二开关,被配置为将所述第四存储器或第七存储器的输出切换到所述计算单元;
第三开关,被配置为将所述计算单元的输出切换到所述第五存储器或第八存储器;以及
第四开关,被配置为将OutSel输入切换到所述第五存储器或第八存储器。
49.根据权利要求48所述的神经网络计算装置,其中,对所述第四存储器和第五存储器以及所述第七存储器和第八存储器中的每对存储器应用双存储器交换电路,所述双存储器交换电路根据所述控制单元的控制交换并连接所有输入和输出。
50.根据权利要求48所述的神经网络计算装置,其中,用一个存储器实现所述第四存储器和第五存储器以及所述第七存储器和第八存储器中的每对存储器,从而以时分方式处理读操作和写操作。
51.根据权利要求48所述的神经网络计算装置,其中,所述控制单元根据下面步骤在存储器单元内的每个存储器中存储数据:
a.当人工神经网络的前向网络中的每个连接的两端被分为箭头开始的一端以及箭头结束的另一端时,为每个连接的两端分配编号,所述编号满足下述条件:
1.从每个神经元到另一神经元的向外连接具有与另一编号不重叠的唯一编号;
2.从每个神经元到另一神经元的向内连接具有与另一编号不重叠的唯一编号;
3.每个连接的两端具有同一编号;而且
4.满足上述条件1至3的情况下,每个连接的编号尽可能小;
b.搜索分配给所有神经元的向外连接和向内连接的编号中的最大编号Pmax;
c.增加其属性对神经网络的前向网络中的另一神经元没有影响的一个空神经元,即使所述空神经元通过连接而连接到所述神经元;
d.在保持分配给前向网络内的所有神经元的各个连接的编号的同时,为从1到[Pmax/p]*p范围内的编号中的所有空编号增加新连接,使得每个神经元具有[Pmax/p]*p个输入连接,其中将每个增加的连接设为其连接属性对任何神经元没有影响,即使所述连接被连接到所述神经元,或者被连接到所述空神经元,其中p表示所述神经网络计算装置内的存储器单元的个数;
e.按任意顺序为前向网络内的各个神经元分配编号;
f.将前向网络内的所有神经元的连接除以p个连接,以将连接分为[Pmax/p]个前向连接束,并为所述前向连接束中的每个连接顺序地分配新编号i,编号i从1开始,按1递增;
g.为从第一神经元的第一前向连接束到最后一个神经元的最后一个前向连接束的每个前向连接束顺序地分配编号k,编号k从1开始,按1递增;
h.将第k个前向连接线束的第i个连接的属性的初始值存储在所述存储器单元中的的第i个存储器单元的第二存储器和第九存储器的第k个地址中;
i.将与第k个前向连接束的第i个连接相连接的神经元的唯一编号存储到所述存储器单元中的第i个存储器单元的第六存储器的第k个地址中;
j.将具有唯一编号j的神经元的前向神经元属性存储在每个存储器单元的第七存储器和第八存储器的第j个地址中;
k.增加其属性对神经网络的反向网络内的另一神经元没有影响的一个空神经元,即使所述空神经元连接到所述神经元;
l.在保持分配给反向网络内的所有神经元的各个连接的编号的同时,为从1到[Pmax/p]*p范围内的编号中的所有空编号增加新连接,使得每个神经元具有[Pmax/p]*p个输入连接,其中将每个增加的连接设为其连接属性对任何神经元没有影响,即使所述连接被连接到神经元,或者被连接到空神经元;
m.将反向网络内的所有神经元的连接除以p个连接,以将连接分为[Pmax/p]个反向连接束,并为所述反向连接束的每个连接顺序地分配新编号i,编号i从1开始,按1递增;
n.为从第一神经元的第一反向连接束到最后一个神经元的最后一个反向连接束的每个反向连接束顺序地分配编号k,编号k从1开始,按1递增;
o.将位于所述存储器单元中的第i个存储器单元的第二存储器中的第k个反向连接束的第i个连接的位置值存储在所述存储器单元中的第i个存储器单元的第一存储器的第k个地址中;
p.将与第k个反向连接束的第i个连接相连接的神经元的唯一编号存储到所述存储器单元中的第i个存储器单元的第三存储器的第k个地址中;以及
q.将具有唯一编号j的神经元的反向神经元属性存储在每个存储器单元的第四存储器和第五存储器的第j个地址中。
52.根据权利要求51所述的神经网络计算装置,其中,通过边着色算法得到满足步骤a的条件的值。
53.根据权利要求46或47所述的神经网络计算装置,其中,每个存储器单元包括:
第一存储器,被配置为存储第二存储器的地址值;
所述第二存储器,被配置为存储连接属性;
第三存储器,被配置为存储神经元的唯一编号;
第四存储器,被配置为存储反向神经元属性或前向神经元属性;
第五存储器,被配置为存储通过所述计算单元计算的新反向神经元属性或前向神经元属性;以及
开关,被配置为选择所述第二存储器的输入。
54.根据权利要求46或47所述的神经网络计算装置,其中,所述计算单元包括:
乘法单元,被配置为对来自各个存储器单元的连接属性和前向神经元属性或者连接属性和反向神经元属性进行乘法运算;
加法单元,其具有树状结构,并被配置为通过一级或多级对来自所述乘法单元的多个输出值进行加法运算;
累加器,被配置为累加来自所述加法单元的输出值;以及
索玛处理器,被配置为从所述控制单元接收学习数据并从所述累加器接收累加输出值,而且计算新前向神经元属性或反向神经元属性。
55.根据权利要求54所述的神经网络计算装置,其中,所述索玛处理器通过第一输入从所述累加器接收神经元的净输入或误差值之和,通过第二输入接收输出神经元的学习数据,通过第一输出输出新计算的神经元属性或误差值,并通过第二输出来输出用于连接调整的神经元属性;
在计算所述输出神经元的误差值的周期期间,所述索玛处理器利用所接收的学习数据与其中存储的神经元属性之间的差计算误差值,将所述误差值存储在其中,并通过所述第一输出而输出所述误差值;
在计算非输出神经元的误差值的周期期间,所述索玛处理器接收来自所述累加器的输入误差之和,将所述误差输入之和存储在其中,并通过所述第一输出而输出所述误差输入之和;以及
在回想周期中,所述索玛处理器从所述累加器接收神经元的净输入值,应用激活函数来计算新神经元属性,在其中存储所述新神经元属性,通过所述第一输出而输出所述新神经元属性,计算连接调整所需的神经元属性,并通过所述第二输出来输出所述神经元属性。
56.根据权利要求54所述的神经网络接收装置,其中,通过应用并行计算线方法来实现所述索玛处理器。
57.一种神经网络计算系统,包括:
控制单元,被配置为控制所述神经网络计算系统;
多个存储器单元,每个存储器单元包括多个存储器部分,所述多个存储器部分被配置为分别输出连接属性和反向神经元属性或输出连接属性和前向神经元属性,并利用所述连接属性、所述前向神经元属性和学习属性计算新连接属性;以及
多个计算单元,每个计算单元被配置为利用从多个存储器单元内的相应存储器部分输入的连接属性和反向神经元属性计算新神经元反向属性,并将所述新神经元反向属性反馈给相应存储器部分,或者利用从相应存储器部分输入的连接属性和前向神经元属性计算新神经元前向属性和学习属性,并将所述新前向神经元属性和所述学习属性反馈给相应存储器部件。
58.根据权利要求57所述的神经网络计算系统,其中,所述多个存储器单元内的多个存储器部分以及所述多个计算单元与一个系统时钟同步,并根据所述控制单元的控制以管线方式运作。
59.根据权利要求57或58所述的神经网络计算系统,其中,每个存储器部分包括:
第一存储器,被配置为存储第二存储器的地址值;
所述第二存储器,被配置为存储连接属性;
第三存储器,被配置为存储神经元的唯一编号;
第一存储器组,被配置为存储反向神经元属性;
第二存储器组,被配置为存储通过所述计算单元计算的新神经元属性;
第四存储器,被配置为存储神经元的唯一编号;
第三存储器组,被配置为存储前向神经元属性;
第四存储器组,被配置为存储通过所述计算单元计算的新前向神经元属性;
第一开关,被配置为选择所述第二存储器的输入;
第二开关,被配置为将所述第一或第三存储器组的输出切换到所述计算单元;
第三开关,被配置为将所述计算单元的输出切换到所述第二或第四存储器组;以及第四开关,被配置为将OutSel输入切换到所述第二或第四存储器组。
60.根据权利要求57或58所述的神经网络计算系统,其中,所述计算单元包括:
乘法单元,被配置为对来自相应存储器部分的连接属性和前向神经元属性或者连接属性和反向神经元属性进行乘法运算;
加法单元,其具有树状结构,并被配置为通过一级或多级对来自所述乘法单元的多个输出值进行加法运算;
累加器,被配置为累加来自所述加法单元的输出值;以及
索玛处理器,被配置为从所述控制单元接收学习数据并从所述累加器接收累加输出值,而且计算新前向神经元属性或反向神经元属性。
61.一种数字系统的存储器设备,其中,双存储器交换电路被应用于两个存储器,所述双存储器交换电路利用来自外部控制单元的控制信号控制的多个数字开关交换并连接所述两个存储器的所有输入和输出。
62.一种神经网络计算方法,包括:
根据控制单元的控制,由多个存储器单元分别输出连接属性和神经元属性;以及根据所述控制单元的控制,由计算单元利用从每个存储器单元输入的连接属性和神经元属性计算新神经元属性,并将所述新神经元属性反馈给每个存储器单元,其中,所述多个存储器单元和所述计算单元与一个系统时钟同步,并根据所述控制单元的控制以管线方式运作。
63.一种神经网络计算方法,包括:
根据控制单元的控制,从所述控制单元接收要提供给输入神经元的数据;
根据所述控制单元的控制,将所接收的数据或新神经元属性从计算单元切换到多个存储器单元;
根据所述控制单元的控制,由所述多个存储器单元分别输出连接属性和神经元属性;
根据所述控制单元的控制,由所述计算单元利用从每个存储器单元输入的连接属性和神经元属性计算新神经元属性;以及
由第一和第二输出单元将所述新神经元属性从所述计算单元输出至所述控制单元,其中,所述第一和第二输出单元用双存储器交换电路实现,所述双存储器交换电路根据所述控制单元的控制交换并连接所有输入和输出。
64.一种神经网络计算方法,包括:
根据控制单元的控制,由多个存储器单元内的多个存储器部分分别输出连接属性和神经元属性;以及
根据所述控制单元的控制,由多个计算单元利用从所述多个存储器单元内的相应存储器部分输入的连接属性和神经元属性计算新神经元属性,并将所述新神经元属性反馈给相应存储器部分,
其中,所述多个存储器单元内的多个存储器部分和所述多个计算单元与一个系统时钟同步,并根据所述控制单元的控制以管线方式运作。
65.一种神经网络计算方法,包括:
根据控制单元的控制,由多个存储器单元分别输出连接属性和神经元误差值;以及根据所述控制单元的控制,由计算单元利用从每个存储器单元输入的连接属性和神经元误差值计算新神经元误差值,并将所述新神经元误差值反馈给每个存储器单元,其中,所述多个存储器单元和所述计算单元与一个系统时钟同步,并根据所述控制单元的控制以管线方式运作。
66.一种神经网络计算方法,包括:
根据控制单元的控制,由多个存储器单元分别输出连接属性和神经元属性;
根据所述控制单元的控制,由计算单元利用从每个存储器单元输入的连接属性和神经元属性计算新神经元属性和学习属性;以及
根据所述控制单元的控制,由所述多个存储器单元利用所述连接属性、所述神经元属性和所述学习属性计算新连接属性,
其中,所述多个存储器单元和所述计算单元与一个系统时钟同步,并根据所述控制单元的控制以管线方式运作。
67.一种神经网络计算方法,包括:
根据控制系统的控制,由多个存储器单元分别存储并输出连接属性、前向神经元属性和反向属性,并计算新连接属性;以及
根据所述控制单元的控制,由计算单元基于从每个存储器单元输入的数据计算新前向神经元属性和新反向神经元属性,并将所述新前向神经元属性和所述新反向神经元属性反馈给每个存储器单元,
其中,所述多个存储器单元和所述计算单元与一个系统时钟同步,并根据所述控制单元的控制以管线方式运作。
68.一种神经网络计算方法,包括:
根据控制单元的控制,由多个存储器单元内的多个存储器部分分别输出连接属性和反向神经元属性;
根据控制单元的控制,由多个计算单元利用从所述多个存储器单元内的相应存储器部分输入的连接属性和反向神经元属性计算新反向神经元属性,并将所述新反向神经元属性反馈给相应存储器部分;
根据所述控制单元的控制,由所述多个存储器单元内的多个存储器部分输出连接属性和前向神经元属性,并利用所述连接属性、所述前向神经元属性和所述学习属性计算新连接属性;以及
根据所述控制单元的控制,由所述多个计算单元利用从相应存储器部分输入的连接属性和前向神经元属性计算新前向神经元属性和学习属性,并将所述新前向神经元属性和所述学习属性反馈给相应存储器部分,
其中,所述多个存储器单元内的多个存储器部分和所述多个计算单元与一个系统时钟同步,并根据所述控制单元的控制以管线方式运作。

说明书全文

神经网络计算装置和系统及其方法

技术领域

[0001] 本发明的示例实施例涉及数字神经网络计算技术;具体而言,涉及一种神经网络计算装置及其方法,该装置的所有部件作为与一个系统时钟同步的电路而运作,而且该装置包括用于存储人工神经网络数据的分布式存储结构以及用于通过管线电路以时分方式处理所有神经元的计算结构。

背景技术

[0002] 数字神经网络计算机是模拟生物神经网络以便构造与大脑作用类似的功能的电子电路。
[0003] 为了以人工方式实现生物神经网络,提出了具有与生物神经网络类似的结构的各种计算方法,这种生物神经网络的构造方法可称之为神经网络模型。在大多数神经网络模型中,人工神经元通过有向连接而连接,以形成网络。每个神经元具有唯一属性并通过连接传送该属性,从而影响相邻神经元的属性。各个神经元之间的每个连接具有唯一属性,并用于调整通过该连接传送的信号的强度。在各种神经网络模型中,最常用的神经元属性是与神经元的输出值对应的状态值,并且最常用的连接属性是指示连接的连接强度的权重值。
[0004] 人工神经网络内的神经元可分为输入神经元、输出神经元以及其他隐藏神经元;输入神经元用于从外部接收输入值,输出神经元用于把处理结果传送给外部。
[0005] 与生物神经网络不同,数字神经网络计算机不能线性地改变神经元的值。因而,在计算过程中,数字神经网络计算机逐个地计算全部神经元的值并在下次计算过程中反映已计算的值。可将数字神经网络计算机逐个地计算全部神经元的值的周期称为神经网络更新周期。在执行数字人工神经网络时,可以重复神经网络更新周期。
[0006] 为使人工神经网络得到期望的结果值,以连接属性的形式存储神经网络内的知识信息。将通过调整人工神经网络内的连接属性而积累知识的步骤称为学习模式,而将通过输入数据搜索积累的知识的步骤称为回想模式。
[0007] 在大多数神经网络模型中,回想模式的执行方法如下:为某输入神经元指定输入数据,重复神经网络更新周期以得到输出神经元的状态值。在一个神经网络更新周期内,可根据如下公式1来计算神经网络内的每个神经元j的状态值:
[0008] [公式1]
[0009]
[0010] 其中,yj(T)表示第T次神经网络更新周期所计算的神经元j的状态值(属性),f表示用于确定神经元j的输出的激活函数,pj表示神经元j的输入连接的个数,wij表示神经元j的第i个输入连接的权重值(属性),并且Mij表示与神经元j的第i个输入连接相连接的神经元的个数。
[0011] 在一些神经网络模型中,例如径向基函数和自组织特征映射模型中,可使用下述公式2所示的式子,但该式子不如公式1常用。
[0012] [公式2]
[0013]
[0014] 在最近出现的动态突触模型或脉冲(spiking)神经网络模式中,神经元传送瞬时脉冲信号,接收脉冲信号的连接(突触)在预定时间生成各种模式的信号,这些信号被累加并传送。对于每个连接,传送信号的模式可各不相同。
[0015] 在学习模式中,在一个神经网络更新周期中,更新连接属性以及神经元属性。
[0016] 在学习模式中最常用的学习模型是反向传播算法。反向传播算法是一种监督学习方法,其中系统外部的导师指定与学习模式中的特定输入值对应的最理想输出值,而且反向传播算法在一个神经网络更新周期内包括如下子周期1至子周期4:
[0017] 1.第一子周期,其中根据外部提供的期望输出值和当前输出值来计算全部输出神经元中的每个神经元的误差值;
[0018] 2.第二子周期,其中,在神经网络内的连接方向与原始方向的反方向相对应的反向网络中,将某个输出神经元的误差值传播给其他神经元,使得非输出神经元具有误差值;
[0019] 3.第三子周期,其中将输入神经元的值传播给其他神经元,以在前向网络中计算全部神经元的新状态值,在前向网络中,神经网络内的连接方向与(回想模式的)原始方向相应;以及
[0020] 4.第四子周期,其中,根据连接到与每个神经元连接的所有连接中的每个连接的神经元的状态值,调整该连接的权重值,以提供值以及接收该值的神经元的属性。
[0021] 此时,四个子周期的执行顺序在神经网络更新周期内并不重要。
[0022] 在第一子周期,对所有输出神经元中的每个神经元进行下面公式3的运算。
[0023] [公式3]
[0024] δj(T+1)=teachj-yi(T)
[0025] 其中,teachj表示为输出神经元j提供的学习值(学习数据),δj表示输出神经元j的误差值。
[0026] 在第二子周期,对除输出神经元以外的所有神经元中的每个神经元进行下面公式4的运算。
[0027] [公式4]
[0028]
[0029] 其中,δj(T)表示神经网络更新周期T中神经元j的误差值,P'j表示反向网络中神经元j的反向连接的个数,w'ij表示神经元j的反向连接中的第i个连接的权重值,Rij表示与神经元j的第i个连接相连接的神经元的个数。
[0030] 在第三子周期,对所有神经元中的每个神经元进行上面公式1的运算。这是由于第三子周期与回想模式对应。
[0031] 在第四子周期,对所有神经元中的每个神经元进行下面公式5的运算。
[0032] [公式5]
[0033]
[0034] 其中,η表示常数,netj表示神经元j的输入值
[0035] 就人工神经网络的学习方法而言,除反向传播算法以外,对于学习模式还可根据神经网络模型使用δ(delta)学习规则或者赫布规则。然而,学习方法以及公式5可推广为如下公式6。
[0036] [公式6]
[0037] wij(T+1)=wij(T)+{神经元j的唯一值}*y\Mij
[0038] 作为参考,公式6中的{神经元j的唯一值}对应于
[0039] 在如深度置信网络的神经网络模型中,除了反向传播算法以外,可对一个神经网络的全部网络或部分网络交替地进行前向传播计算和反向传播的计算。
[0040] 神经网络计算机可用于搜索最适于给定输入的模式或基于先验知识预测未来,并可用于各种领域,如机器人控制、军用设备、医学、游戏、天气信息处理和人机界面
[0041] 现有的神经网络计算机大致分为直接实现方法和虚拟实现方法。根据直接实现方法,将人工神经网络的逻辑神经元一对一映射到物理神经元。大多数模拟神经网络芯片属于直接实现方法一类。直接实现方法的处理速度较高。然而,难以使用各类神经网络模型,而且难以将直接实现方法用于大型神经网络。
[0042] 多数虚拟实现方法使用现有的冯诺依曼计算机或使用包括并行连接的多个这种计算机的多处理器系统;而且,“HNC”和“NEP”制造的“ANZAPlus”或“CNAPS”或者“IBM”的“SYNAPSE-1”属于虚拟实现方法一类。虚拟实现方法可用于各种神经网络模型和大型神经网络,但是难以达到高速。

发明内容

[0043] [技术问题]
[0044] 如上所述,传统的直接实现方法的处理速度较高,但是不能用于各种神经网络模型及大型神经网络。传统的虚拟实现方法可执行各种神经网络模型和大型神经网络,但是不能实现较高处理速度。本发明的目的是解决该问题。
[0045] 本发明的实施例针对神经网络计算装置和系统及其方法,该计算装置和系统的所有部件作为与一个系统时钟同步的电路而运作,而且包括用于存储人工神经网络数据的分布式存储结构以及用于通过管线电路以时分方式处理所有神经元的计算结构,从而使得可以应用各种神经网络模型和大型网络并同时以高速处理神经元。
[0046] 通过以下描述,本发明的其他目的和益处可得以理解,并且参考本发明的实施例将变得清楚明了。而且,通过权利要求书所要求保护的手段及其组合可实现本发明的目的及益处,这对本领域所属领域的技术人员而言是显而易见的。
[0047] [技术方案]
[0048] 根据本发明的实施例,神经网络计算装置可包括:控制单元,被配置为控制神经网络计算装置;多个存储器单元,每个存储器单元被配置为输出连接属性和神经元属性;以及计算单元,被配置为利用从每个存储器单元输入的连接属性和神经元属性来计算新神经元属性,并将所述新神经元属性反馈给各个存储器单元。
[0049] 根据本发明的实施例,神经网络计算装置可包括:控制单元,被配置为控制神经网络计算装置;多个存储器单元,每个存储器单元被配置为输出连接属性和神经元属性;计算单元,被配置为利用从每个存储器单元输入的连接属性和神经元属性来计算新神经元属性;输入单元,被配置为从控制单元向输入神经元提供输入数据;切换单元,被配置为根据控制单元的控制将输入数据从输入单元或者将新神经元属性从计算单元切换至所述多个存储器单元;以及以双存储器交换电路实现的第一和第二输出单元,该双存储器交换电路根据控制单元的控制而交换并连接所有输入和输出,并且被配置为将来自计算单元的新神经元属性输出至控制单元。
[0050] 根据本发明的实施例,神经网络计算系统可包括:控制单元,被配置为控制神经网络计算系统;多个存储器单元,每个存储器单元包括被配置为分别输出连接属性和神经元属性的多个存储器部分;以及多个计算单元,每个计算单元被配置为利用从多个存储器单元内的相应存储器部分输入的连接属性和神经元属性来计算新神经元属性,并将新神经元属性反馈给相应的存储器部分。
[0051] 根据本发明的实施例,神经网络计算装置可包括:控制单元,被配置为控制神经网络计算装置;多个存储器单元,每个存储器单元被配置为输出连接属性和神经元误差值;以及计算单元,被配置为利用从每个存储器单元输入的连接属性和神经元误差值来计算新神经元误差值,并将新神经元误差值反馈给各个存储器单元。
[0052] 根据本发明的实施例,神经网络计算装置可包括:控制单元,被配置为控制神经网络计算装置;多个存储器单元,每个存储器单元被配置为输出连接属性和神经元属性,并利用连接属性、神经元属性和学习属性来计算新连接属性;以及计算单元,被配置为利用从每个存储器单元输入的连接属性和神经元属性来计算新神经元属性和学习属性。
[0053] 根据本发明的实施例,神经网络计算装置可包括:控制单元,被配置为控制神经网络计算装置;第一学习属性存储器,被配置为存储神经元的学习属性;多个存储器单元,每个存储器单元被配置为输出连接属性和神经元属性,并利用连接属性、神经元属性和第一学习属性存储器的学习属性来计算新连接属性;计算单元,被配置为利用从每个存储器单元输入的连接属性和神经元属性来计算新神经元属性和新学习属性;以及第二学习属性存储器,被配置为存储通过计算单元计算的新学习属性。
[0054] 根据本发明的实施例,神经网络计算装置可包括:控制单元,被配置为控制神经网络计算装置;多个存储器单元,每个存储器单元被配置为存储并输出连接属性、前向神经元属性和反向神经元属性,并计算新连接属性;以及计算单元,被配置为基于从每个存储器单元输入的数据来计算新前向神经元属性和新反向神经元属性,并将新前向神经元属性和新反向神经元属性反馈给每个存储器单元。
[0055] 根据本发明的实施例,神经网络计算系统可包括:控制单元,被配置为控制神经网络计算系统;多个存储器单元,每个存储器单元包括被配置为分别输出连接属性和反向神经元属性或者输出连接属性和前向神经元属性的多个存储器部分,并利用连接属性、前向神经元属性和学习属性来计算新连接属性;以及多个计算单元,每个计算单元被配置为利用从多个存储器单元内的相应存储器部分输入的连接属性和反向神经元属性来计算新神经元反向属性,并将新神经元反向属性反馈给相应的存储器部分,或者利用从相应的存储器部分中输入的连接属性和前向神经元属性来计算新神经元前向属性和学习属性,并将新神经元前向属性和学习属性反馈给相应的存储器部分。
[0056] 根据本发明的实施例,提供一种数字系统的存储器设备,其中双存储器交换电路被用于两个存储器,双存储器交换电路利用来自外部控制单元的控制信号控制的多个数字开关来交换并连接这两个存储器的所有输入和输出。
[0057] 根据本发明的实施例,神经网络计算方法可包括:根据控制单元的控制,由多个存储器单元分别输出连接属性和神经元属性;以及根据控制单元的控制,利用从每个存储器单元输入的连接属性和神经元属性,由计算单元计算新神经元属性,并将新神经元属性反馈给每个存储器单元。多个存储器单元和计算单元可与一个系统时钟同步并根据控制单元的控制以管线方式运作。
[0058] 根据本发明的实施例,神经网络计算方法可包括:根据控制单元的控制,从控制单元接收待提供给输入神经元的数据;根据控制单元的控制,将接收的数据或新神经元属性从计算单元切换到多个存储器单元;根据控制单元的控制,由多个存储器单元分别输出连接属性和神经元属性;根据控制单元的控制,由计算单元利用从各个存储器单元输入的连接属性和神经元属性计算新神经元属性;以及由第一和第二输出单元将新神经元属性从计算单元输出至控制单元。第一和第二输出单元可以由双存储器交换电路实现,该双存储器交换电路根据控制单元的控制而交换并连接所有输入和输出。
[0059] 根据本发明的实施例,神经网络计算方法可包括:根据控制单元的控制,由多个存储器单元内的多个存储器部分分别输出连接属性和神经元属性;以及根据控制单元的控制使用从多个存储器单元的相应存储器部分输入的连接属性和神经元属性计算新神经元属性,并将新神经元属性反馈给相应的存储器部分,其中多个存储器单元内的多个存储器部分和多个计算单元与一个系统时钟同步并根据控制单元的控制以管线方式运作。
[0060] 根据本发明的实施例,神经网络计算方法可包括:根据控制单元的控制,由多个存储器单元分别输出连接属性和神经元误差值;以及根据控制单元的控制,由计算单元利用从各个存储器单元输入的连接属性和神经元误差值计算新神经元误差值并将新神经元误差值反馈给各个存储器单元。多个存储器单元和多个计算单元可与一个系统时钟同步并根据控制单元的控制以管线方式运作。
[0061] 根据本发明的实施例,神经网络计算方法可包括:根据控制单元的控制,由多个存储器单元分别输出连接属性和神经元属性;根据控制单元的控制,由计算单元利用从各个存储器单元输入的连接属性和神经元属性计算新神经元属性和学习属性;以及根据控制单元的控制,由多个存储器单元利用连接属性、神经元属性和学习属性计算新连接属性。多个存储器单元和计算单元可与一个系统时钟同步并根据控制单元的控制以管线方式运作。
[0062] 根据本发明的实施例,神经网络计算方法可包括:根据控制单元的控制,由多个存储器单元分别存储并输出连接属性、前向神经元属性和反向属性,并计算新连接属性;以及根据控制单元的控制,由计算单元基于从各个存储器单元输入的数据计算新前向神经元属性和新反向神经元属性并将新前向神经元属性和新反向神经元属性反馈给各个存储器单元。多个存储器单元和计算单元可与一个系统时钟同步并根据控制单元的控制以管线方式运作。
[0063] 根据本发明的实施例,神经网络计算方法可包括:根据控制单元的控制,由多个存储器单元内的多个存储器部分分别输出连接属性和反向神经元属性;根据控制单元的控制,由多个计算单元利用从多个存储器单元内的相应存储器部分输入的连接属性和反向神经元属性计算新反向神经元属性,并将新反向神经元属性反馈给相应的存储器部分;根据控制单元的控制,由多个存储器单元内的多个存储器部分输出连接属性和前向神经元属性,并利用连接属性、前向神经元属性和学习属性计算新连接属性;以及根据控制单元的控制,由多个计算单元利用从相应的存储器部分输入的连接属性和前向神经元属性计算新前向神经元属性和学习属性,并将新前向神经元属性和学习属性反馈给相应的存储器部分。多个存储器单元内的多个存储器部分和多个计算单元可与一个系统时钟同步并根据控制单元的控制以管线方式运作。
[0064] [有益效果]
[0065] 根据本发明的实施例,神经网络计算装置和方法在神经网络的网络拓扑、神经元个数以及连接个数方面没有限制,而且可执行包括任意激活函数的各种网络模型。
[0066] 此外,可随意设定并设计可通过神经网络计算系统同时处理的连接的个数p,在每个存储器访问周期,可同时回想或训练p个连接或更少连接,这使得可提高处理速度。
[0067] 此外,在保持最大可能速度的情况下,可随意提高运算精度
[0068] 此外,神经网络计算装置可用于实现大容量的广泛应用神经计算机,可集成到小的半导体设备中,并用于各种人工神经网络应用。附图说明
[0069] 图1是根据本发明实施例的神经网络计算装置的结构图。
[0070] 图2是根据本发明实施例的控制单元的详细结构图。
[0071] 图3是示出通过根据本发明实施例的通过控制信号处理的数据流的示图。
[0072] 图4是用于说明根据本发明实施例的神经网络计算装置的管线结构的示图。
[0073] 图5是用于说明根据本发明实施例的双存储器交换方法的示图。
[0074] 图6和图7是用于说明根据本发明实施例的单存储器交换方法的示图。
[0075] 图8是根据本发明实施例的计算单元的详细结构图。
[0076] 图9是用于说明根据本发明实施例的计算单元中的数据流的示图。
[0077] 图10是用于说明根据本发明实施例的神经网络计算装置的多级管线结构的详细示图。
[0078] 图11是用于说明根据本发明实施例的并行计算线方法的示图。
[0079] 图12是示出根据本发明实施例的并行计算线方法中的输入/输出数据流的示图。
[0080] 图13是示出将根据本发明实施例的并行计算线方法用于乘法器、加法器或激活计算器的情况的示图。
[0081] 图14是示出将根据本发明实施例的并行计算线方法用于累加器的情况的示图。
[0082] 图15是示出将根据本发明实施例的并行计算线方法用于累加器时的输入/输出数据流的示图。
[0083] 图16是用于说明将并行计算线方法应用于根据本发明实施例的神经网络计算装置时的多级管线结构的示图。
[0084] 图17是用于说明根据本发明另一实施例的计算单元的结构的示图。
[0085] 图18是示出图17的计算单元中的输入/输出数据流的示图。
[0086] 图19是用于说明根据本发明另一实施例的激活计算器和YN存储器的结构的示图。
[0087] 图20是根据本发明另一实施例的神经网络计算装置的结构图。
[0088] 图21是用于说明根据本发明实施例的神经网络更新周期的示图。
[0089] 图22是根据本发明实施例的用于计算公式2的计算单元的乘法器的详细示图;
[0090] 图23是根据本发明实施例的神经网络计算系统的结构图。
[0091] 图24是用于说明根据本发明实施例的同时执行反向传播学习算法的第一和第二子周期的神经网络计算装置的结构的示图。
[0092] 图25是用于说明根据本发明实施例的执行学习算法的神经网络计算装置的结构的示图。
[0093] 图26是示出图25的神经网络计算装置中的数据流的表格。
[0094] 图27是根据本发明实施例的对一个神经网络的整个网络或部分网络交替地执行反向传播周期和正向传播周期的神经网络计算装置的示图。
[0095] 图28是用于说明通过简化图27的神经网络计算装置而得到的计算结构的示图。
[0096] 图29是图27或图28的神经网络计算装置的计算单元的详细结构图。
[0097] 图30A和图30B是图29的计算单元中的一些处理器的详细结构图。
[0098] 图31是根据本发明实施例的神经网络计算系统的结构图。
[0099] 图32是由计算单元执行的神经网络的计算模型是动态突触模型或脉冲神经网络模型时的计算单元的乘法器的详细结构图。
[0100] 图33是用于说明根据本发明另一实施例的用于执行学习算法的神经网络计算装置的示图。

具体实施方式

[0101] 下面参考附图更详细地描述本发明的示例实施例。然而,本发明可以用不同形式实现,不应理解为限于此处所述的实施例。相反,提供这些实施例的目的在于使本发明完整完全,并向本领域技术人员充分表达本发明的范围。此外,省略与公知功能或结构相关的具体说明,以免不必要地模糊本发明的主题。下面参考附图更详细地描述本发明的示例实施例。此外,将同时描述根据本发明实施例的设备和系统的结构及其操作。
[0102] 整个说明书中,称某部件“连接”到另一部件时,应该理解前者可以“直接连接”到后者,或者通过中间部件“电连接”到后者。此外,某部件“包括”另一部件时,除非另外指明,前者可能并不排除另一部件,而是另外包括另一部件。
[0103] 图1是根据本发明实施例的神经网络计算装置的结构图,示出了神经网络计算装置的基本结构。
[0104] 如图1所示,根据本发明实施例的神经网络计算装置包括控制单元119、多个存储器单元(即突触单元)100和计算单元101。控制单元119控制神经网络计算装置。多个存储器单元100分别输出连接属性和神经元属性。计算单元利用从各个存储器单元100输入的连接属性和神经元属性计算新神经元属性,并将新神经元属性反馈给各个存储器单元100。新神经元属性用作下一神经网络更新周期的神经元属性。
[0105] 这里,连接到控制单元119的InSel输入112和OutSel输入113共同连接到多个存储器单元100。InSel输入表示连接束编号,OutSel输入表示待存储的下一神经网络更新周期的神经元属性的地址以及写使能信号。各个存储器单元100的输出114和115连接到计算单元101的输入。输出114和115可包括连接属性和神经元属性。此外,计算单元101的输出通过Y总线111共同连接到存储器单元100的输入。计算单元101的输出可包括下一神经网络更新周期的神经元属性。
[0106] 每个存储器单元100可包括W存储器(第一存储器)102、M存储器(第二存储器)103、YC存储器(第三存储器)104和YN存储器(第四存储器)105。W存储器102存储连接属性。M存储器103存储神经元的唯一编号。YC存储器104存储神经元属性。YN存储器105存储通过计算单元101计算的新神经元属性。神经元的唯一编号可表示存储神经元属性的YC存储器的地址值,新神经元属性可表示下一神经网络更新周期的神经元属性。
[0107] 此时,W存储器102和M存储器103的地址输入AD共同连接到InSel输入112,而且M存储器103的数据输出DO连接到YC存储器104的地址输入。W存储器102和YC存储器104的数据输出连接到计算单元101的输入。OutSel输入113连接到YN存储器105的地址/写使能(WE)输入AD/WE,而且Y总线连接到YN存储器105的数据输入DI。
[0108] 存储器单元100的W存储器102的地址输入端还可包括第一寄存器106,该第一寄存器临时存储输入到W存储器的连接束编号;YC存储器104的地址输入端还可包括第二寄存器107,该第二寄存器临时存储从M存储器输出的神经元的唯一编号。
[0109] 第一寄存器106和第二寄存器107可与一个系统时钟同步,这样,W存储器102、M存储器103和YC存储器104根据控制单元119的控制以管线方式运作。
[0110] 根据本发明实施例的神经网络计算装置还可包括位于各个存储器单元100的输出与计算单元101的输入之间的多个第三寄存器108和109。第三寄存器108和109可分别临时存储从W存储器提供的连接属性以及从YC存储器提供的神经元属性。根据本发明实施例的神经网络计算装置还可包括位于计算单元101的输出端的第四寄存器110。第四寄存器110可临时存储从计算单元输出的新神经元属性。第三寄存器和第四寄存器108至110可与一个系统时钟同步,从而多个存储器单元100和计算单元101根据控制单元119的控制以管线方式运作。
[0111] 此外,根据本发明实施例的神经网络计算装置还可包括位于计算单元101的输出与多个存储器单元100的输入之间的数字开关116。数字开关116可在线117和Y总线111之间进行选择,其中,从控制单元119输入的输入神经元的值输出至线117,通过计算单元101计算的新神经元属性从Y总线111输出,并且数字开关将所选择的线或总线连接到相应存储器单元100。此外,计算单元101的输出118连接到控制单元119,以便将神经元属性传送至外部。
[0112] 由控制单元119事先存储存储器单元100的W存储器102、M存储器103和YC存储器104的初始值。控制单元119可根据如下步骤a至h在存储器单元100内的各个存储器中存储值:
[0113] a.搜索神经网络中输入连接个数最大的神经元的输入连接的个数Pmax;
[0114] b.当存储器单元的个数用p表示时,根据下述方法,增加虚拟连接,使得神经网络内的所有神经元中的每个神经元具有[Pmax/p]*p个连接,虽然虚拟连接被连接到神经网络内的任何神经元,但是虚拟连接的连接属性对相邻神经元没有影响:
[0115] (1)增加连接属性对任何神经元的属性都没有影响的虚拟连接,即使该虚拟连接被连接到该神经元;而且
[0116] (2)增加属性对神经网络内的任何神经元都没有影响的一个虚拟神经元,即使该虚拟神经元被连接到该神经元,并将所有的虚拟连接都连接到该虚拟神经元;
[0117] c.按任意顺序对神经网络内的所有神经元排序并为神经元分配连续编号;
[0118] d.将所有神经元的连接除以p个连接,以将这些连接分为[Pmax/p]个束,并按任意顺序对连接束排序;
[0119] e.为从第一神经元的第一连接束至最后一个神经元的最后一个连接束的各个连接束分配连续编号k;
[0120] f.将第k个连接束的第i个连接的属性存储在存储器单元100的第i个存储器单元的W存储器102的第k个地址中;
[0121] g.将第j个神经元的属性存储在每个存储器单元中所包括的YC存储器104的第j个地址中;以及
[0122] h.将连接到第k个连接束的第i个连接的神经元的编号值存储在存储器单元的第i个存储器单元的M存储器103的第k个地址中,神经元的编号值表示神经元的属性存储在存储器单元的第i个存储器单元的YC存储器104中的地址值。
[0123] 在存储器中存储初始值之后开始神经网络更新周期时,控制单元119提供连接束编号给InSel输入,连接束编号从1开始,并在每个系统时钟周期增加1。此外,在开始神经网络更新周期之后经过预定的系统时钟周期时,在每个系统时钟周期,通过各个存储器单元100的输出而顺序地输出特定连接束中所包括的连接的属性和连接到连接输入的神经元的属性。然后,从第一神经元的第一连接束至最后一个连接束重复上述过程,并且从下一神经元的第一连接束至最后一个连接束重复上述过程。这种情况下,重复该过程,直到最后一个神经元的最后一个连接束被输出。
[0124] 计算单元101接收存储器单元100的输出(即,连接属性和神经元属性)并计算新神经元属性。当所有神经元中的每个神经元具有n个连接束时,在神经网络更新周期开始后,在预定的系统时钟周期将每个神经元的连接束的数据顺序地输入到计算单元101的输入,计算新神经元属性,并在每n个系统时钟周期通过计算单元101的输出进行新神经元属性的输出。
[0125] 图2是根据本发明实施例的控制单元的详细结构图。
[0126] 如图2所示,根据本发明实施例的控制单元201用于向参考图1描述的神经网络计算装置202提供各种控制信号,初始化每个存储器单元中所包括的存储器,以实时或非实时方式载入输入数据,或以实时或非实时方式取数据。此外,控制单元201可连接到主计算机200以便用户进行控制。
[0127] 控制存储器204可存储神经网络更新周期中逐一处理连接束和神经元所需的所有控制信号205的时序和控制信息。根据时钟周期计数器203提供的神经网络更新周期内的时钟周期,可提取控制信号。
[0128] 图3是示出根据本发明实施例的通过控制信号处理的数据流的示图。
[0129] 在图3所示例子中,假定所有神经元中的每个神经元具有两个连接束([Pmax/p]=2)。
[0130] 当开始一个神经网络更新周期时,由控制单元201通过InSel输入112顺序地输入连接束的唯一编号。当在特定时钟周期将特定连接束的编号值k提供给InSel输入112时,分别在第一和第二寄存器106和107中存储提供属性给第k个连接束的第i个连接的神经元的编号值k和唯一编号。在下一时钟周期,分别在第三寄存器108和109中存储第k个连接束的第i个连接的属性以及向第k个连接束的第i个连接提供属性的神经元的属性。
[0131] 此外,p个存储器单元100输出属于一个连接束的p个连接的属性和同时连接到各个连接的神经元的属性,并把这些属性提供给计算单元101。然后,在神经元j的两个连接束的数据被输入至计算单元101之后,当计算单元101计算新神经元属性时,在第四寄存器110中存储神经元j的新神经元属性。在下一时钟周期,第四寄存器110中所存储的新神经元属性被共同存储在相应存储器单元100的YN存储器104中。各个YN存储器中所存储的新神经元属性被用作下一神经网络更新周期的神经元属性。此时,由控制单元201通过OutSel输入113提供待存储新神经元属性的地址和写使能信号WE。在图3中,粗线表示的框代表用于计算神经元j(j=2)的新属性的数据流。
[0132] 当计算了神经网络内所有神经元的新属性而且最后一个神经元的新属性被完全存储在YN存储器104中时,则一个神经网络更新周期可以结束,并且可以开始下一神经网络更新周期。
[0133] 图4是用于说明根据本发明实施例的神经网络计算装置的管线结构的示图。
[0134] 如图4所示,根据控制单元的控制,根据本发明实施例的神经网络计算装置如包括多级的管线电路般运作。根据管线理论,管线电路中的时钟周期,即管线周期,可缩短到管线电路的所有步骤中需时最长的步骤的时间。因而,当假定存储器访问时间用tmem表示且计算单元的处理量(throughput)用tcalc表示时,根据本发明实施例的神经网络计算装置的理想管线周期对应于max(tmem,tcalc)。当用如下所述的管线电路实现计算单元的内部结构时,还可进一步缩短计算单元的处理量tcalc。
[0135] 计算单元的特征在于计算单元顺序地接收输入数据、顺序地输出计算结果,而且输入和输出之间没有时间相关性。因而,即便要计算若干数据,在输入数据被输入之后,计算输出数据的延迟对系统性能的影响也不大。然而,计算输出数据的处理量会对系统性能具有影响。因而,为了缩短处理量,计算单元的内部结构可设计成管线方式。
[0136] 即,作为减少计算单元的处理量的一种方法,可在计算单元的各个计算步骤之间增加与系统时钟同步的寄存器,从而可以管线方式处理计算步骤。在这种情况下,计算单元的处理量可被缩短到各个计算步骤的处理量中的最大处理量。无论通过计算单元执行的计算公式的类型如何,都可应用该方法。例如,通过图8的实施例该方法将更清楚,下面将在特定计算公式的预定条件下描述图8。
[0137] 作为减少计算单元的管线周期的另一方法,可以用与系统时钟同步的管线电路来实现属于计算单元的所有或部分计算设备中的每一个计算设备的内部结构。在这种情况下,可将每个计算设备的处理量缩短到内部结构的管线处理量。
[0138] 作为用于将计算单元内的特定计算设备的内部结构实现为管线结构的方法,可应用并行计算线方法。根据并行计算线方法,使用与计算设备的输入个数对应的多个分路器、多个计算设备以及与计算设备的输出个数对应的多个多路器,通过分路器将顺序提供的输入数据分配至多个计算设备,通过多路器集合并累加各个计算设备的计算结果。无论通过计算单元执行的计算公式的类型如何,都可应用该方法。例如,通过图11的实施例该方法将更清楚,下面将在特定计算公式的预定条件下描述图11。
[0139] 如上所述,一个神经网络更新周期所产生的神经元属性被用作下一神经网络更新周期的输入数据。因而,在一个神经网络更新周期结束之后,当开始下一神经网络更新周期时,需将YN存储器401中的内容存储在YC存储器400中。然而,当将YN存储器401的内容复制到YC存储器400中时,需要的处理时间可能会大大降低系统性能。为了解决该问题,可使用(1)双存储器交换方法;(2)单存储器复制存储方法;以及(3)单存储器交换方法。
[0140] 首先,双存储器交换方法的效果可与使用多个一位数字开关完全改变并连接相同的两个设备(存储器)的输入和输出的方法相同。
[0141] 图5是用于说明根据本发明实施例的双存储器交换方法的示图。
[0142] 作为实现一位开关的一种方法,可使用图5(a)所示的逻辑电路。例如,可用图5(b)的500表示一位开关,可如图5(b2)表示包括N个一位开关的N位开关。
[0143] 图5(c)示出了用交换电路实现具有三位输入和一位输出的两个物理设备D1和D2的结构。当所有开关根据控制信号连接到右边位置时,节点a11、a21和a31连接到物理设备D1501的输入,节点a41连接到物理设备D1501的输出。此外,节点a12、a22和a32连接到物理设备D2502的输入,节点a42连接到物理设备D2502的输出。当所有开关根据控制信号连接到左边位置时,节点a12、a22和a32连接到物理设备D1501的输入,节点a42连接到物理设备D1501的输出。此外,节点a11、a21和a31连接到物理设备D2502的输入,节点a41连接到物理设备D2502的输出。因而,两个物理设备501和502的作用得到交换。如图5(d)所示,可通过用虚线连接两个物理设备503和504并输入“交换”来简单地表示交换电路。
[0144] 图5(e)示出了通过将交换电路应用于两个存储器505和506而配置的双存储器交换电路。
[0145] 图5(f)示出了通过将双存储器交换方法应用于图1中的YC存储器104和YN存储器105而配置的电路,其中省略了未使用的输入和输出。
[0146] 当应用该双存储器交换方法时,可在一个神经网络更新周期结束之后,下一神经网络更新周期开始之前,根据控制单元的控制来交换两个存储器的功能。因而,可在YC存储器104中直接使用上一更新周期所存储的YN存储器105的内容,而无需以物理方式传递存储器的内容。
[0147] 单存储器复制存储方法是这样的方法,其使用一个存储器而不是两个存储器(例如,图1的YC存储器和YN存储器),在一个管线周期中以时分方式执行读操作(图1的YC存储器的功能)和写操作(图1的YN存储器的功能),并将神经元属性存储到同一存储位置(存储器),而不考虑已有属性和新属性。
[0148] 单存储器交换方法是这样的方法,其使用一个存储器而不是两个存储器(例如,图1的YC存储器和YN存储器),在一个管线周期中以时分方式执行读操作(图1的YC存储器的功能)和写操作(图1的YN存储器的功能),在存储器存储空间的一半区域中存储已有神经元属性,而在存储器存储空间的另一半区域中存储通过计算单元计算的下一网络更新周期的神经元属性。在下一网络更新周期,可交换两个存储器的功能。
[0149] 图6和图7是用于说明根据本发明实施例的单存储器交换方法的示图。
[0150] 如图6所示,根据本发明实施例的单存储器交换方法可用一个N位开关601、一个异或603和一个存储器602实现。
[0151] N位开关601的读/写控制输入604连接到异或门603的一个输入,偶数周期控制输入605连接到异或门603的另一输入。此外,异或门603的输出连接到存储器602的地址输入的最高有效位(MSB)。
[0152] 如图7所示,一个管线周期分为如下步骤:数字开关601连接到顶部位置并工作于读模式的步骤,以及数字开关601连接到底部位置并工作于写模式的步骤。
[0153] 当读取当前更新周期的神经元属性时,向读/写控制输入604提供值1,当存储新计算的神经元属性时,向读/写控制输入604提供值0。此外,当神经网络更新周期的数量对应于偶数时,向偶数周期控制输入605提供值0,当神经网络更新周期的数量对应于奇数时,向偶数周期控制输入605提供值1。
[0154] 存储器602的整个区域被分为上半区域和下半区域。当神经网络更新周期的数量对应于奇数时,存储器602的上半区域被用作YC存储器,而存储器602的下半区域被用作YN存储器。当神经网络更新周期的数量对应于偶数时,存储器602的上半区域和下半区域交换用作YN存储器和YC存储器。
[0155] 由于根据本发明实施例的单存储器交换方法在一个管线时钟周期内需要两个存储器访问操作,即读访问和写访问,因而,可能会降低处理速度。但是,单存储器交换方法的益处在于该方法可用一个存储器而不是两个存储器(图1的YC存储器和YN存储器)实现。
[0156] 图8是根据本发明实施例的计算单元101的详细结构图。
[0157] 当图1所示的神经网络的计算模型用公式1表示时,计算单元101的基本结构可如图8所示实现。
[0158] 如图8所示,根据本发明实施例的计算单元101包括乘法单元800、多个加法单元802、804和806、累加器808和激活计算器811。乘法单元800包括与存储器单元100的数量对应的多个乘法器,并对从各个存储器单元100提供的神经元属性和连接属性进行乘法操作。多个加法单元802、804和806用树状结构实现,并通过多级对乘法单元800的多个输出值进行加法操作。累加器808累加加法单元802、804和806的输出值。激活计算器
811对累加器808的累加输出值应用激活函数并计算在下一神经网络更新周期待使用的新神经元属性。
[0159] 计算单元101可进一步包括位于各个计算步骤之间的寄存器801、803、805、807和809。
[0160] 即,根据本发明实施例的计算单元101还包括设置于乘法单元800与加法单元树802、804和806的第一加法单元802之间的多个寄存器801、设置于加法单元树802、804和
806的各个步骤之间的多个寄存器803和805、设置于累加器808与加法单元树802、804和
806的最后一个加法单元806之间的寄存器807、以及设置于累加器808与激活计算器811之间的寄存器809。各个寄存器与一个系统时钟同步,并且以管线方式执行各个计算步骤。
[0161] 参考具体例子更详细地描述根据本发明实施例的计算单元101的操作。乘法单元800和具有树状结构的加法单元802、804和806顺序地计算通过一系列神经网络连接束中所包括的连接而提供的输入之和。
[0162] 计算器808用于累计连接束的输入之和,以便计算神经元的输入之和。此时,当从加法单元树的输出输入到累加器808的数据是特定神经元的第一连接束时,数字开关810通过控制单元201切换到左端,并向累加器808的另一输入提供值0,以将累加器808的输出初始化为一新值。
[0163] 激活计算器811用于将激活函数应用于神经元的输入之和,以便计算新神经元属性(状态值)。此时,激活计算器811可用诸如存储器参考表的简单结构来实现,或用通过微代码执行的专用处理器来实现。
[0164] 图9是用于说明根据本发明实施例的计算单元的数据流的示图。
[0165] 如图9所示,当在某特定时间点将某一连接束k的数据提供给乘法单元800的输入端时,在逐步前进的同时处理连接束k的数据。例如,连接束k的数据会在下一时钟周期出现在乘法单元800的输出端处,并在下一时钟周期出现在第一加法单元802的输出端处。最后,当数据接近最后一个加法单元806时,该数据可作为连接束k的净输入来计算。连接束的净输入通过累加器808逐一累加。当一个神经元的连接束的个数为n时,连接束的净输入被相加n次,并作为一个神经元j的净输入而计算。神经元j的净输入在n个时钟周期期间由激活函数作为神经元j的新属性而计算,然后输出。
[0166] 此时,当在特定处理步骤处理连接束k的数据时,连接束k-1的数据在上一处理步骤处理,而连接束k+1的数据在下一处理步骤处理。
[0167] 图10是用于说明根据本发明实施例的神经网络计算装置的多级管线结构的详细示图,用多级结构示出了管线电路。
[0168] 在图10中,tmem表示存储器访问时间,tmul表示乘法器处理时间,tadd表示加法器处理时间,tacti表示激活函数的计算时间。在这种情况下,理想管线周期是max(tmem,tmul,tadd,tacti/B),其中B表示每个神经元的连接束的个数。
[0169] 在图10中,乘法器、加法器和激活计算器中的每一个可用在内部以管线方式执行的电路实现。当假定乘法器的管线级的个数用smul表示、加法器的管线级的个数用sadd表示而且激活计算器的管线级的个数用sacti表示时,整个系统的管线周期是max(tmem,tmul/smul,tadd/sadd,tacti/(B*sacti))。这意味着,当加法器、乘法器和激活计算器可以管线方式充分运作时,管线周期可以额外地缩短。然而,即便加法器、乘法器和激活计算器不能以管线方式运作,可通过多个计算设备把加法器、乘法器和激活计算器中的每一个转换成管线电路。下面要描述的这种方法可称为并行计算线方法。
[0170] 图11用于说明根据本发明实施例的并行计算线方法的示图。图12是示出根据本发明实施例的并行计算线方法中的输入/输出数据流的示图。
[0171] 当通过特定设备C 1102执行不互相依赖的相同单元计算时,设备C1102处理该单元计算所需的时间可用tc表示。在这种情况下,在输入之后直到输出结果所需的时间(延迟)可用tc表示,处理量是一次计算/时间tc。当要将处理量增加到一次计算/时间tck时,其中tck小于时间tc,可使用图11所示的方法。
[0172] 如图11所示,在输入端处使用一个分路器1101,使用[tc/tck]个设备C1102,在输出端处使用一个多路器1103,并且分路器1101和多路器1103根据时钟tck而同步。在每个时钟周期tck,向输入端提供一个输入数据,并且输入数据被顺序地分路到各个内部设备C 1102。每个内部设备C 1102完成计算并在接收输入数据之后的时间tc输出结果,多路器1103选择在每个时钟周期tck完成计算的设备C 1102的输出,并将所选择的输出存储在存器1104中。
[0173] 分路器1101和多路器1103可以用简单的逻辑门解码器电路实现,而且对处理速度基本没有影响。在本发明的实施例中,将该方法称为并行计算线方法。
[0174] 基于并行计算线方法的电路与具有[tc/tck]级的管线电路1105功能相同,在每个时钟周期tck输出一个结果,并且表现出的处理量增加到每个时钟周期tck一次计算。使用并行计算线方法时,可使用多个设备C 1102,以将处理量增加到期望准,虽然特定设备C1102的处理速度较低。这和增加生产线的数量以增加制造工厂的产出的原理一样。例如,当设备C的个数为4时,可形成如图12所示的输入/输出数据流。
[0175] 图13是示出将根据本发明实施例的并行计算线方法应用于乘法器、加法器或激活计算器的情况的示图。
[0176] 如图13所示,当根据上述并行计算线方法用乘法器1301、加法器1303或激活计算器1305替代设备C 1102时,可以实现处理量与替代设备的个数成比例增加的乘法器1302、加法器1304或激活计算器1306。
[0177] 例如,乘法单元800内的每个乘法器可包括一个分路器、多个乘法器1301和一个多路器。因而,在一个时钟周期提供的输入数据通过分路器顺序地分路给多个乘法器1301,计算完成的数据通过多路器顺序地多路传输并在该时钟周期输出。
[0178] 然后,加法单元802、804和806内的每个加法器包括一个分路器、多个加法器1303和一个多路器。因而,在一个时钟周期提供的输入数据通过分路器顺序地分路给多个加法器1303,计算完成的数据通过多路器顺序地多路传输并在该时钟周期输出。
[0179] 此外,激活计算器811包括一个分路器、多个激活计算器1305和一个多路器。因而,在一个时钟周期提供的输入数据通过分路器顺序地分路给多个激活计算器1305,计算完成的数据通过多路器顺序地多路传输并在该时钟周期输出。
[0180] 图14是示出将根据本发明实施例的并行计算线方法应用于累加器的情况的示图。
[0181] 如图14所示,当将上述并行计算线方法应用于累加器时,可以与如上所述相同的方式实现分路器1400和多路器1401。然而,用包括串联连接的FIFO队列1402和累加器1403的电路替代每个内部设备。用这种方式配置的设备用1405表示。此时,在一个时钟周期提供的输入数据通过分路器1400顺序地分路给FIFO队列1402,通过累加器1403计算的数据通过多路器1401顺序地多路传输并在该时钟周期输出。
[0182] 例如,当累加器1403的单位累加时间用taccum表示、管线周期用tck表示而且[taccum/tck]为2时,用于实现图14的电路所需的累加器1403的个数为2。在本例中,当假定为每个神经元额外提供两个连接束时,可形成如图15所示的输入/输出数据流。
[0183] 图15是示出当根据本发明实施例的并行计算线方法应用于累加器时的输入/输出数据流的示图。
[0184] 如图15所示,根据两个连接束对应于每个神经元的连接束的个数,顺序提供给分路器1400的输入的神经元连接束的净输入数据netj交替地存储在第一FIFO队列q1和第二FIFO队列q2中。当将数据存储在单位累加器acc1和acc2的各个前级处的FIFO队列q1和q2中时,单位累加器acc1和acc2逐一取数据并累加数据。然后,当累加完成时,由多路器1401和寄存器1404选择并输出累加结果。
[0185] 如上所述,当应用并行计算线方法的乘法器、加法器和累加器替代图10的相应部件时,可配置如图16所示的结构。
[0186] 图16是用于说明将并行计算线方法应用于根据本发明实施例的神经网络计算装置时的多级管线结构的示图。
[0187] 如图16所示,将并行计算线方法应用于所有乘法器1601、所有加法器1602、累加器1603和激活计算器1604中的每一个。因而,如果必要,可通过增加单位计算设备而任意缩短处理量。可将管线周期缩短到管线结构的级中所需时间最长的级的时间。除存储器访问周期tmem外,可任意缩短其他级。因而,应用了并行计算线方法的神经网络计算设备的理想管线周期可对应于tmem。此外,当用p表示存储器单元的个数时,最大处理速度是p/tmem CPS(连接/秒)。
[0188] 图22是计算公式2的计算单元的乘法器的详细结构图。
[0189] 当由图1的计算单元101执行的神经网络的计算模型用公式2表示时,图8的计算单元中的每个乘法器可用包括连接到两个输入值(连接属性和神经元属性)的减法器2200和连接到减法器2200的输出的平方计算器2201的电路替代。
[0190] 图32是当由计算单元执行的神经网络的计算模型是动态突触模型或脉冲神经网络模型时计算单元的乘法器的详细结构图。
[0191] 当由图1的计算单元101执行的神经网络的计算模型是动态突触模型或脉冲网络模型时,图8的计算单元中的每个乘法器可以用包括一个参考表3200和一个乘法器3201的电路替代。如图32A所示,每个存储器单元的W存储器中所存储的连接属性被分为连接的权重wij和连接的动态类型标识符typeij。动态类型标识符可用于选择参考表3200中所包括的多个表中的一个。神经元的属性yM(i,j)表示参考表3200内的时间轴值。如图32B所示,当特定神经元产生脉冲时,激活计算器发送信号作为输出值,该信号从0开始并在每个神经网络更新周期逐渐增加。该信号由如图32C所示的参考表3200转换成随时间改变的信号,并被传送给乘法器3201的一个输入。
[0192] 在所有神经元具有相同数量的连接束而且将计算单元101的结构用于存储器存储方法的存储器存储方法中,当各个神经元之间的连接个数差别很大时,在连接束个数少的神经元中,空连接的个数可能会增加,从而降低效率。在这种情况下,由于赋予激活计算器1604的计算时间缩短,所以可能需要快速激活计算器1604或者需要在并行计算线方法的配置中增加大量的激活计算器1604。
[0193] 用于解决该问题的计算单元101的结构如图17所示。
[0194] 图17是用于说明根据本发明另一实施例的计算单元的结构的示图。图18是示出图17的计算单元中的输入/输出数据流的示图。
[0195] 如图17所示,可在参考图8或图13描述的累加器和激活计算器直接设置FIFO队列1700。此时,激活函数计算时间可对应于全部神经元中的连接束的平均个数,并且激活计算器的一个输入端与神经网络计算装置的管线周期不同步,而是在需要输入值的任意时刻从FIFO队列1700取最近存储的值。在这种情况下,激活计算器可逐一取FIFO队列1700中累加的数据并计算所取的数据。因而,激活计算器可为所有神经元分配同样的计算时间,以进行计算。
[0196] 当使用上述方法时,为了使激活计算器从FIFO队列1700稳定地取数据,控制单元可通过下面的步骤a至h在图1的存储器单元100的各个存储器中存储值:
[0197] a.根据神经网络内的每个神经元所包括的输入连接的个数,对所有神经元按升序排序,并且为各个神经元顺序地分配编号;
[0198] b.增加其属性对神经网络内的另一神经元没有影响的一个空神经元,虽然该空神经元也连接到该神经元;
[0199] c.当神经元j的输入连接的个数用pj表示时,增加([pj/p]*p-pj)个连接,使得神经网络内的每个神经元具有[pj/p]*p个连接,该([pj/p]*p-pj)个连接连接到空神经元并且具有对神经网络内的任何神经元都没有影响的属性,虽然这些连接也连接到该神经元,其中p代表存储器单元的个数;
[0200] d.将所有神经元的连接除以p个连接,以将连接分为连接束,并以任意顺序为每个连接束中所包括的每个连接分配编号i,编号i从1开始,按1递增;
[0201] e.为从第一神经元的第一连接束至最后一个神经元的最后一个连接束的每个连接束分配编号k,编号k从1开始,按1递增;
[0202] f.将第k个连接束的第i个连接的属性存储在存储器单元100中的第i个存储器单元的W存储器单元102的第k个地址中;
[0203] g.将连接到第k个连接束的第i个连接的神经元的编号存储在存储器单元100中的第i个存储器单元的M存储器103的第k个地址中;以及
[0204] h.将第j个神经元的属性存储在存储器单元100中的第i个存储器单元的YC存储器104的第j个地址中。
[0205] 通过上述方法,存储器中所存储的神经元的连接束按升序从连接束个数最少的神经元开始排序。因而,如图18所示,当激活计算器在与全部神经元的连接束的平均数对应的周期读取FIFO队列1700时,待处理的数据一直存在于FIFO队列1700中。因而,可以无中断地处理数据。
[0206] 当使用该方法时,激活计算器可周期性地处理数据,以提高效率,虽然各个神经元之间的连接束个数非常不平衡
[0207] 在上述神经网络计算装置中,假定激活函数的计算时间是恒定的或是可预测的。因而,可以事先识别输出激活函数的数据时的时间。当激活函数的输出数据存储在每个存储器单元100中所包括的YN存储器105时,根据预定顺序,可通过控制单元201生成与待存储输出值的地址值对应的OutSel输入113的值。
[0208] 当激活函数的计算时间随内部条件而不同因而不能事先识别输出时间时,可使用图19所示的方法。
[0209] 图19是用于说明根据本发明另一实施例的激活计算器和YN存储器的结构的示图。
[0210] 如图19所示,激活计算器1900包括用于接收神经元的净输入数据的第一输入1902和用于输出新属性(状态值)的第一输出1904。此外,激活计算器1900还包括第二输入1903和第二输出1905。此时,当提供给第一输入1902的净输入数据是神经元j的数据时,将神经元的编号j输入至第二输入1903。此外,激活计算器1900在计算激活函数的同时临时存储神经元的编号,并在完成计算之后将新属性(状态值)输出给第一输出1904时,将神经元的编号输出给第二输出1905。此外,当将神经元的属性(状态值)存储在YN存储器1901中时,将神经元的编号1906提供给共同连接到YN存储器1901的地址输入的OutSel输入1906。
[0211] 由于数据是与神经元的编号值相关联地进行处理,虽然激活计算器的处理时间改变,仍可在存储器的正确位置存储结果。
[0212] 可通过下面步骤1至3执行包括输入和输出的人工神经网络的回想模式:
[0213] 1.将输入神经元的值存储在存储器单元(突触单元)的Y存储器中;
[0214] 2.对除输入神经元之外的其他神经元重复应用神经网络更新周期;以及[0215] 3.停止执行,从存储器单元(突触单元)的Y存储器提取输出神经元的值。
[0216] 在该方法中,需要停止计算,以便设定输入数据或提取输出神经元的值。因而,系统的处理速度会降低。为了在执行神经网络的同时设定输入数据并提取输出神经元的值,可以使用图20所示的方法。
[0217] 图20是根据本发明另一实施例的神经网络计算装置的结构图。
[0218] 如图20所示,根据本发明实施例的神经网络计算装置包括控制单元2006、多个存储器单元2002、计算单元2003、输入存储器200、数字开关2004以及第一和第二输出存储器2001和2005。控制单元2006控制神经网络计算装置。多个存储器单元2002分别输出连接属性和神经元属性。计算单元2003利用从各个存储器单元2002输入的连接属性和神经元属性计算新神经元属性。输入存储器2000从控制单元2006向输入神经元提供输入数据。
根据控制单元2006的控制,数字开关2004将输入数据从输入存储器200或者将新神经元属性从计算单元2002切换到多个存储器单元2002。第一和第二输出存储器2001和2005用双存储器交换方法实现,该方法根据控制单元2006的控制交换并连接所有输入和输出,并将新神经元属性从计算单元2003输出给控制单元2006。
[0219] 当控制单元2006以实时方式在神经网络中存储输入神经元的值时,一个神经网络更新周期被分为存储输入神经元的值的步骤和存储神经元的新计算值的步骤。
[0220] 1.存储输入神经元的值的步骤:数字开关2004连接到输入存储器2000的输出,并将存储在输入存储器中的输入神经元的属性从输入存储器2000输出并存储在所有存储器单元2000的YN存储器中。
[0221] 2.存储神经元的新计算值的步骤:数字开关2004连接到计算单元2003的输出,并将从计算单元2002输出的神经元的新计算属性存储在所有存储器单元2002的YN存储器中。
[0222] 在执行步骤2时,控制单元2006可以将下一神经网络更新周期要使用的输入神经元的属性存储在输入存储器200中。
[0223] 作为在神经网络更新周期内安排上述步骤的一种方法,可在神经网络更新循环的第一阶段的某一时间执行存储输入神经元的值的所有步骤1。当使用该方法时,可如图21(b)所示将神经网络更新周期的开始稍微提前,这是由于存储输入神经元的值的步骤1只在YN存储器中使用,而不需在其他存储器中使用。因而,可稍微提高计算效率。然而,当输入神经元的个数增加时,输入处理仍会对神经网络计算装置的性能产生影响。
[0224] 作为在神经网络更新周期内安排上述步骤的另一方法,控制单元可在不进行输出的每个时钟周期根据交织方法切换到步骤1,以便逐一地存储输入数据。这是由于当每个神经元的连接束的个数为两个或更多时,每两个时钟周期出现一次计算单元的输出。在这种情况下,存储输入神经元的值的处理对神经网络计算装置的性能没有影响。
[0225] 为了让控制单元2006以实时方式提取输出神经元的值,第一输出存储器2001和第二输出存储器2005可以用双存储器交换方法实现,该方法根据控制信号交换所有输入和输出。在神经网络更新周期内新计算的神经元属性存储在第一输出存储器2001中。当一个神经网络更新周期结束时,彼此交换两个存储器(第一和第二输出存储器),从而前一更新周期所存储的数据位于第二输出存储器中。控制单元2006可从第二输出存储器2005读取除输入神经元以外的所有神经元的属性,从所读取属性选择输出神经元的属性,并将所选择的属性作为神经网络的实时输出值。该方法的益处在于,控制单元可随时访问输出神经元的属性,无论执行步骤以及神经网络计算装置的时序如何。
[0226] 图21是用于说明根据本发明实施例的神经网络更新周期的示图。
[0227] 图21(a)示出了在神经网络更新周期的第一阶段不执行在存储器单元2002中存储输入神经元的属性的步骤的情况。在这种情况下,在完全结束上一神经网络更新周期2100之后,可开始新的神经网络更新周期2101。图21(b)示出了在神经网络更新周期的第一阶段执行在存储器单元2002中存储输入神经元的属性的步骤的情况。在这种情况下,由于不需要使用计算单元来计算输入神经元2102的值,所以神经网络更新周期之间的间隔可以缩短到比图21(a)所示情况更短。图21(c)示出了在存储器单元2002中存储输入神经元的属性的步骤被交织在计算单元不输出值的时间间隙中。在这种情况下,虽然输入神经元的个数极大增加,但整个处理速度不受影响。
[0228] 神经网络计算装置的缺点在于其可能的最大处理速度受限于存储器访问周期tmem。例如,当神经网络计算装置可同时处理的连接个数p设为1024且存储器访问周期tmem设为10ns时,神经网络计算装置的最大处理速度为102.4GCPS。
[0229] 作为进一步提高神经网络计算装置的最大处理速度的一种方法,可将多个神经网络计算装置彼此连接。
[0230] 作为连接多个神经网络计算装置以提高整体性能的一般方法,可连接多个神经网络计算装置的输入和输出以形成网络,并且一个神经网络计算系统可配置成处理整个神经网络的子网络。然后,由于各个神经网络计算装置同时并行执行,所以可以提高神经网络计算装置的处理速度。然而,该方法的缺点在于,该方法在将整个神经网络划分成子网络的网络结构有限制,并且由于设备之间的通信产生开销和性能下降。
[0231] 作为该方法的替代,如图23所示,可将多个神经网络计算装置耦接成大型同步电路。
[0232] 图23是根据本发明实施例的神经网络计算系统的结构图。
[0233] 如图23所示,根据本发明实施例的神经网络计算系统包括控制单元(参见图2和下面的说明)、多个存储器单元2300和多个计算单元2301。控制单元控制神经网络计算系统。每个存储器单元2300包括分别被配置连接属性和神经元属性的多个存储器部分2309。每个计算单元2301利用从多个存储器单元2300的相应存储器部分2309输入的连接属性和神经元属性来计算新神经元属性并将所计算的属性反馈给各个存储器部分2309。
[0234] 多个存储器单元2301内的多个存储器部分2309以及多个计算单元2301与一个系统时钟同步,并根据控制单元的控制以管线方式运作。
[0235] 每个存储器部分2309包括W存储器(第一存储器)2302、M存储器(第二存储器)2303、YC存储器组(第一存储器组)2304、YC存储器组(第一存储器组)2304和YN存储器组(第二存储器组)2305。W存储器2302存储连接属性。M存储器2303存储神经元的唯一编号。YC存储器组2304存储神经元属性。YN存储器组2305存储通过相应计算单元2301计算的新神经元属性。
[0236] 当将参考图1所述的H个神经网络计算装置耦接成一个集成系统时,耦接之前第h个神经网络计算装置的第i个存储器单元成为神经网络计算系统中的第i个存储器单元的第h个存储器部分。因而,神经网络计算系统中的一个存储器单元2300包括H个存储器部分。一个存储器部分基本上具有与图1所示的存储器单元相同的结构,但具有以下区别1和2:
[0237] 1.通过一个解码器电路耦接成一个存储器组、且容量比YC存储器大H倍的H个YC存储器设置在YC存储器位置;以及
[0238] 2.H个YN存储器共同绑定为一个存储器组并设置在YN存储器位置。
[0239] 用H个神经网络计算装置实现的神经网络计算系统包括H个计算单元2301,并且第h个计算单元连接到每个存储器单元的第h个存储器部分。
[0240] 此时,控制单元可根据下面的步骤a至j在存储器单元2300内的每个存储器部分的存储器中存储值:
[0241] a.将神经网络内的所有神经元划分为H个统一的神经元组;
[0242] b.在神经元组中找到输入连接个数最多的神经元的输入连接的个数Pmax;
[0243] c.当存储器单元的个数用p表示时,增加虚拟连接,使得神经网络内的每个神经元具有[Pmax/p]*p个连接,虽然虚拟链接连接到神经网络内的任何神经元,但是虚拟连接的属性对相邻神经元没有影响;
[0244] d.按任意顺序为每个神经元组内的所有神经元分配编号;
[0245] e.将每个神经元组内的所有神经元的连接除以p个连接,以将连接分为[Pmax/p]个连接束,并按任意顺序为连接束内的每个连接分配编号i,编号i从1开始,按1递增;
[0246] f.为从每个神经元组内的第一神经元的第一连接束至最后一个连接神经元的最后一个连接束的每个连接束顺序分配编号k,编号k从1开始,按1递增;
[0247] g.将第h个神经元组的第k个连接束的第i个连接的属性存储在存储器单元中的第i个存储器单元的第h个存储器部分的W存储器(第一存储器)2302的第j个地址中;
[0248] h.将连接到第h个神经元组的第k个连接束的第i个连接的神经元的唯一编号存储在存储器单元中的第i个存储器单元的第h个存储器部分的M存储器(第二存储器)2303的第j个地址中;
[0249] i.将第g个神经元组内具有唯一编号j的神经元的属性存储在形成所有存储器单元的每个存储器部分包括的YC存储器组(第一存储器组)2304的第g个存储器的第j个地址中;以及
[0250] j.将第h个神经元组内具有唯一编号j的神经元的属性共同存储在每个存储器单元中的第h个存储器部分的YN存储器组(第二存储器组)2305的所有存储器的第j个地址中。
[0251] 当a和b表示任意常数时,图23的每个存储器单元内的用YCa-b表示的每个存储器以及用YNa-b表示的存储器用上述双存储器交换方法(2306和2307)实现。即,第i个存储器部分的YC存储器组(第一存储器组)的第j个存储器和第j个存储器部分的YN存储器组(第二存储器组)的第i个存储器用双存储器交换方法实现,该方法根据控制单元的控制交换并连接所有输入和输出,其中i和j是任意自然数。
[0252] 当开始一个神经网络更新周期时,控制单元为每个存储器部分向InSel输入2308提供连接束编号值,连接束编号值从1开始,在每个系统时钟周期增加1。在开始神经网络更新周期之后,当经过预定系统时钟周期时,存储器单元2300中的第h个存储器部分的存储器2302至2305顺序地输出第h个神经元组内的连接束的连接的属性以及和连接相连接的神经元的属性。每个存储器单元中的第h个存储器部分的输出被输入到第h个计算单元的输入,并形成第h个神经元组的连接束的数据。从第h个神经元组内的第一神经元的第一连接束至最后一个连接束,重复上述过程,并从下一神经元的第一连接束至最后一个连接束,重复该过程。这样,重复该过程,直到输出最后一个神经元的最后一个连接束的数据。
[0253] 当第h个神经元组的每个神经元具有n个连接束时,在开始神经网络更新周期之后,在预定系统时钟周期将第h个神经元组的每个神经元中所包括的连接束的数据顺序地输入到第h个计算单元的输入中。此外,第h个计算单元每n个系统时钟周期计算并输出新神经元属性。通过第h个计算单元2301计算的第h个神经元组的新神经元属性被共同存储在每个存储器单元的第h个存储器部分的所有YN存储器2305中。此时,由控制单元201通过OutSel输入2310为每个存储器部分提供待存储新神经元属性的地址以及写使能信号WE。
[0254] 当一个神经网络更新周期结束时,控制单元交换所有的YC存储器和相应的YN存储器,并在新的神经网络更新周期将前一神经网络更新周期单独存储的YN存储器的值耦合到一个大型YC存储器2304中。这样,所有存储器部分的大型YC存储器2304存储神经网络内所有神经元的属性。
[0255] 在这样的神经网络计算系统中,当存储器单元的个数用p表示、神经网络计算装置的个数用H表示且存储器访问时间用tmem表示时,神经网络计算系统的最大处理速度对应于p*H/tmem CPS。例如,当由一个神经网络计算系统同时处理的连接的个数p被设为1024、存储器访问时间被设为10ns且神经网络计算装置的个数H被设为16时,神经网络计算系统的最大处理速度为1638.5GCPS。
[0256] 神经网络计算系统的上述结构可无限扩展系统的规模,而不受神经网络拓扑的限制。此外,神经网络计算系统的结构与输入资源成比例地改善性能,而没有多系统出现的通信开销。
[0257] 到此为止,描述了回想模式的系统结构。下面将描述用于支持学习模式的系统结构。
[0258] 如上所述,反向传播学习算法的神经网络更新周期包括第一子周期至第四子周期。在本实施例中,将分别描述仅用于执行第一和第二子周期的计算结构以及仅用于执行第三和第四子周期的计算结构,还将描述将两个计算结构集成为一个结构的方法。
[0259] 图24是用于说明根据本发明实施例的同时执行反向传播学习算法的第一子周期和第二子周期的神经网络计算装置的结构的示图。
[0260] 如图24所示,同时执行反向传播学习算法的第一子周期和第二子周期的神经网络计算装置包括控制单元、多个存储器单元2400和计算单元2401。控制单元控制神经网络计算装置。多个存储器单元2400分别输出连接属性和神经元误差值。计算单元2401利用从各个存储器单元2400输入的连接属性和神经元误差值(或除了连接属性和神经元误差值以外还利用通过控制单元从系统外部的导师提供的学习数据)计算新神经元误差值,并将新神经元误差值反馈给各个存储器单元2400。新神经元误差值用作下一神经网络更新周期的神经元误差值。
[0261] 此时,多个存储器单元2400和计算单元2401与一个系统时钟同步,并根据控制单元的控制以管线方式运作。
[0262] 连接到控制单元的InSel输入2408和OutSel输入2409可共同连接到所有的存储器单元2400。此外,所有存储器单元2400的输出连接到计算单元2401的输入,并且计算单元2401的输出共同连接到所有存储器单元100的输入。
[0263] 每个存储器单元2400包括W存储器(第一存储器)2403、R2存储器(第二存储器)2404、EC存储器(第三存储器)2405和EN存储器(第四存储器)2406。W存储器2403存储连接属性。R2存储器2404存储神经元的唯一编号。EC存储器2404存储神经元误差值。EN存储器2406存储通过计算单元2401计算的新神经元误差值。
[0264] 此时,InSel输入2408共同连接到每个存储器单元2400内的W存储器2403的地址输入和R2存储器的地址输入。此外,R2存储器2404的数据输出连接到EC存储器2405的地址输入。此外,W存储器2403的数据输出和EC存储器2405的数据输出用作存储器单元2400的输出并共同连接到计算单元2401的输入。此外,计算单元2401的输出连接到存储器单元2400的EN存储器2406的数据输入,并且EN存储器2406的地址输入连接到OutSel输入2409。EC存储器2405和EN存储器2406用双存储器交换方法实现,该方法根据控制单元的控制交换并连接所有输入和输出。
[0265] 图24的神经网络计算装置具有的结构与图1的神经网络计算装置的结构类似,但存在如下区别:
[0266] ·替代图1的M存储器,R2存储器2404存储连接到反向网络中的特定连接的神经元的唯一编号;
[0267] ·替代图1的YC存储器104和YN存储器105,EC存储器2405和EN存储器2406存储神经元的误差值,而不是存储神经元属性;
[0268] ·替代图1的存储输入神经元的值的步骤,计算单元通过比较由计算单元的学习数据输入2407提供的输出神经元的学习数据和神经元属性(公式2)计算全部神经元中的输出神经元(反向网络中的输入神经元)的误差值;以及
[0269] ·虽然图1的计算单元计算神经元属性,但是图24的计算单元利用通过反向连接提供的误差值作为因子(公式3)计算全部神经元中除输出神经元以外的其他神经元的误差值。
[0270] 当在一个神经网络更新周期内开始用于计算输出神经元的误差值的第一子周期时,由控制单元在每个时钟周期通过计算单元的学习数据输入2407输入输出神经元的学习数据。当计算单元应用公式2来计算误差值并输出误差值时,该误差值被反馈给每个存储器单元2400,然后存储在EN存储器(第四存储器)2406中。重复该过程,直到计算所有输出神经元的误差值。
[0271] 当在一个神经网络更新周期内开始用于计算除输出神经元以外的其他神经元的误差值的第二子周期时,控制单元向InSel输入提供连接束编号值,连接束编号值从1开始,每个系统时钟周期增加1。在开始神经网络更新周期之后,当经过预定系统时钟周期时,通过存储器单元2400的W存储器2403和EC存储器2405的输出顺序地输出连接束的连接属性以及连接到这些连接的神经元的误差值。各个存储器单元2400的输出被输入到计算单元2401的输入,并形成一个连接束的数据。从第一神经元的第一连接束到最后一个连接束,可重复上述过程,然后从第二神经元的第一连接束到最后一个连接束,重复上述过程。这样,重复该过程,直到输出最后一个神经元的最后一个连接束的数据。计算单元2401应用公式3来计算每个神经元中的各个连接束的误差值之和,并将该和反馈给各个存储器单元2400,从而将该和存储在EN存储器(第四存储器)2406中。
[0272] 图25是用于说明根据本发明实施例的执行学习算法的神经网络计算装置的结构的示图。该结构可应用于使用δ学习规则或赫布规则的神经网络模型。
[0273] 如图25所示,执行学习算法的神经网络计算装置包括控制单元、多个存储器单元2500和计算单元2501。控制单元控制神经网络设备。每个存储器单元2500向计算单元
2501输出连接属性和神经元属性,并利用连接属性、神经元属性和计算单元2501提供的学习属性计算新连接属性。新连接属性用作下一神经网络更新周期的连接属性。计算单元
2501利用从每个存储器单元2500输入的连接属性和神经元属性计算新神经元属性和学习属性。
[0274] 多个存储器单元2500和计算单元2501与一个系统时钟同步,并根据控制单元的控制以管线方式运作。
[0275] 每个存储器单元2500包括WC存储器(第一存储器)2502、M存储器(第二存储器)2503、YC存储器(第三存储器)2504、YN存储器(第四存储器)2506、第一FIFO队列(第一延迟单元)2509、第二FIFO队列(第二延迟单元)2510、连接调整模2511和WN存储器(第五存储器)2505。WC存储器2502存储连接属性。M存储器2503存储神经元的唯一编号。YC存储器2504存储神经元属性。YN存储器2506存储通过计算单元2501计算的新神经元属性。第一FIFO队列2509延迟从WC存储器2502提供的连接属性。第二FIFO队列2510延迟从YC存储器2504提供的神经元属性。连接调整模块2511利用从计算单元2501提供的学习属性、从第一FIFO队列2509提供的连接属性以及从第二FIFO队列2510提供的神经元属性计算新连接属性。WN存储器2505存储通过连接调整模块2511计算的新连接属性。
[0276] 此时,第一FIFO队列2509和第二FIFO队列2510用于延迟连接的属性W和连接到连接的神经元的属性Y,并且学习神经元所需的学习属性作为计算单元2501的X输出被输出。当特定连接是神经元j的一个连接时,连接的属性W和连接到连接的神经元的属性Y在各个FIFO队列2509和2510中逐步前进,并在从寄存器2515输出计算单元2501的X输出(即,用于学习神经元j所需的属性)时,从各个FIFO队列2509和2510输出,然后提供给连接调整模块2511的三个输入。连接调整模块2511接收三个输入数据W、Y和X,计算用于下一神经网络更新周期的新连接属性,并将新连接属性存储在WN存储器2505中。
[0277] YC和YN存储器2504和2506以及WC和WN存储器2502和2505中的每对存储器用双存储器交换方法实现,该方法根据控制单元的控制交换并连接所有输入和输出。作为该方法的替代方法,YC存储器2504、YN存储器2506、WC存储器2502和WN存储器2505中的每个存储器可用仅使用一个存储器的单存储器复制存储方法或单存储器交换方法实现。
[0278] 连接调整模块2511执行下述公式7表述的计算。
[0279] [公式7]
[0280] Wij(T+1)=f(Wij(T),Yj(T),Lj)
[0281] 其中,Wij表示神经元j的第i个连接的属性,Yj表示神经元j的属性,Lj表示用于学习神经元j所需的学习属性。
[0282] 公式7是包括公式5的概括函数。与公式5相比,属性Wij对应于连接的权重值wij,属性Yj对应于神经元的状态值yj,学习属性Lj对应于 计算公式表示成下面的公式8。
[0283] [公式8]
[0284] Wij(T+1)=Wij(T)+Yj(T)*Lj
[0285] 可用一个乘法器2513、FIFO队列2512和一个加法器2514来实现用于计算公式8的连接调整模块2511的结构。也就是说,连接调整模块2511包括用于延迟从第一FIFO队列2509提供的连接属性的第三FIFO队列(第三延迟单元)2512、用于将从计算单元2501提供的学习属性和从第二FIFO队列2510提供的神经元属性相乘的乘法器2513、以及用于将从第三FIFO队列2512提供的连接属性和乘法器2513的输出值相加并输出新连接线属性的加法器2514。FIFO队列2512用于在乘法器2513进行乘法运算时延迟属性Wij(T)。
[0286] 图26是示出图25的神经网络计算装置中的数据流的表格。
[0287] 在图26中,假定将每个神经元的连接束的个数设为2并将计算单元、乘法器和加法器中的每一个的管线步骤设为1。此外,连接束k表示神经元j的第一连接束。
[0288] 作为图25所示的神经网络计算装置的替代,可使用图33所示的神经网络计算装置。
[0289] 如图33所示,执行学习算法的神经网络计算装置包括控制单元、多个存储器单元3300、计算单元3301、LC存储器(第一学习属性存储器)3321和LN存储器(第二学习属性存储器)3322。控制单元控制神经网络计算装置。每个存储器单元3300向计算单元3301输出连接属性和神经元属性,并利用连接属性、神经元属性和学习属性计算新连接属性。计算单元3301利用从每个存储器单元3300输入的连接属性和神经元属性计算新神经元属性和学习属性。LC存储器3321和LN存储器3322存储学习属性。
[0290] 此时,多个存储器单元3300和计算单元3301与一个系统时钟同步,并根据控制单元的控制以管线方式运作。
[0291] 每个存储器单元3300包括WC存储器(第一存储器)3302、M存储器(第二存储器)3303、YC存储器(第三存储器)3304、YN存储器(第四存储器)3306、连接调整模块3311和WN存储器(第五存储器)3305。WC存储器3302存储连接属性。M存储器3303存储神经元的唯一编号。YC存储器3304存储神经元属性。YN存储器3306存储通过计算单元3301计算的新神经元属性。连接调整模块3311利用从WC存储器3302提供的连接属性、从YC存储器3304提供的输入神经元属性以及神经元的学习属性计算新连接属性。WN存储器3305存储通过连接调整模块3311计算的新连接属性。此时,存储器单元内的存储器与一个系统时钟同步并以管线方式运作。
[0292] 计算单元3301计算神经元的新属性并将新属性作为Y输出而输出。同时,计算单元3301计算用于学习神经元所需的学习属性并将学习属性作为X输出而输出。计算单元3301的X输出连接到LN存储器3322,并且LN存储器3322用于存储新计算的学习属性Lj(T+1)。
[0293] LC存储器3321存储在前一神经网络更新周期计算的神经元的学习属性Lj(T),而且LC存储器3321的数据输出连接到每个存储器单元3300中的连接调整模块3311的X输入。从存储器单元3300输出的特定连接的属性输出以及连接到该连接的神经元的属性输出被连接到存储器单元3300内的连接调整模块3311的W输入和Y输入。当在特定时间点输出特定连接的信息时,在该连接是神经元j的连接之一的情况下,同时从LC存储器3321提供神经元j的学习属性。连接调整模块3311接收三个输入数据W、Y和L,计算用于下一神经网络更新周期的新连接属性,并将新连接属性存储在WN存储器3305中。
[0294] YC存储器3304和YN存储器3306、WC存储器3302和WN存储器3305、以及LC存储器3321和LN存储器3322中的每对存储器用双存储器交换方法实现,该方法根据控制单元的控制交换并连接所有输入和输出。作为该方法的替代方法,YC存储器3304和YN存储器3306、WC存储器3302和WN存储器3305、以及LC存储器3321和LN存储器3322中的每对存储器可用仅使用一个存储器的单存储器复制存储方法或单存储器交换方法实现。
[0295] 连接调整模块3311的配置可与参考图25所述的方式相同。因而,此处省略其描述。
[0296] 图27是示出根据本发明实施例的对一个神经网络的整个网络或部分网络交替地执行反向传播周期和前向传播周期的神经网络计算装置的示图。除反向传播学习算法外,根据本发明实施例的结构可执行对神经网络的部分网络(如深度置信网络)交替地执行反向传播周期和前向传播周期的神经网络模型的学习模式。在反向传播学习算法的情况下,第一和第二子周期对应于反向传播周期,第三和第四子周期对应于前向传播周期。
[0297] 如图27所示,根据本发明实施例的对一个神经网络的整个网络或部分网络交替地执行反向传播周期和前向传播周期的神经网络计算装置包括控制单元、多个存储器单元2700和计算单元2701。控制单元控制神经网络计算装置。每个存储器单元2700存储和输出连接属性、前向神经元属性和反向神经元属性,并计算新连接属性。计算单元2701基于从每个存储器单元2700输入的数据计算新前向神经元属性和新反向神经元属性,并将新前向神经元属性和新反向神经元属性反馈给相应的存储器单元2700。在反向传播学习算法的情况下,神经元属性对应于前向神经元属性,神经元误差值对应于反向神经元属性。在图27中,根据图25和图33的描述,本领域技术人员可轻易地理解用于计算新连接属性的电路。因而,这里将省略其详细描述。
[0298] 此时,多个存储器单元2700和计算单元2701与一个系统时钟同步,根据控制单元的控制以管线方式运作。
[0299] 每个存储器单元2700包括R1存储器(第一存储器)2705、WC存储器(第二存储器)2704、R2存储器(第三存储器)2706、EC存储器(第四存储器)2707、EN存储器(第五存储器)2710、M存储器(第六存储器)2702、YC存储器(第七存储器)2703、YN存储器(第八存储器)2709、第一数字开关2712、第二数字开关2713、第三数字开关2714和第四数字开关2715。R1存储器2705存储反向网络中的WC存储2704的地址值。WC存储器2704存储连接属性。R2存储器2706存储反向网络中的神经元的唯一编号。EC存储器2707存储反向神经元属性。EN存储器2710存储通过计算单元2701计算的新反向神经元属性。M存储器2702存储反向网络中的神经元的唯一编号。YC存储器2703存储前向神经元属性。YN存储器2709存储通过计算单元2701计算的新前向神经元属性。第一数字开关2712选择WC存储器2704的输入。第二数字开关2713将EC存储器2707或YC存储器2703的输出切换到计算单元2701。第三数字开关2714将计算单元2701的输出切换到EN存储器2710或YN存储器2709。第四数字开关2715将OutSel输入切换到EN存储器2710或YN存储器2709。
[0300] 当计算反向传播周期(对于反向传播学习算法来说是学习模式的第一和第二子周期)时,根据控制单元的控制,神经网络计算装置内的每个N位开关2712至2715位于底部。此外,当计算前向传播周期(对于反向传播学习算法来说是学习模式的第三和第四子周期)时,根据控制单元的控制,神经网络计算装置内的每个N位开关2712至2715位于顶部。
[0301] YC存储器2703和YN存储器2709、EC存储器2707和EN存储器2710、以及WC存储器2704和WN存储器2708中的每对存储器用双存储器交换方法实现,该方法根据控制单元的控制交换并连接所有输入和输出。作为该方法的替代方法,YC存储器2703和YN存储器2709、EC存储器2707和EN存储器2710、以及WC存储器2704和WN存储器2708中的每对存储器可用仅使用一个存储器的单存储器复制存储方法或单存储器交换方法实现。
[0302] 当开始一个神经网络更新周期时,控制单元控制N位开关2712至2715使其位于底部,并执行反向传播周期。然后,控制单元控制N位开关2712至2715使其位于顶部,并执行前向传播周期。当N位开关2712至2715位于底部时,可配置如图24所示的可用系统。然而,这种情况下,InSel输入和WC存储器不直接连接,而是通过R1存储器连接。此外,当N位开关2712至2715位于顶部时,可配置如图25所示的可用系统。
[0303] 反向传播周期中系统执行的过程基本与参考图24所述方式相同。但是,WC存储器2704的内容可通过R1存储器2705间接映射,然后被选择。这表明,虽然WC存储器2704的内容与反向网络中的连接束的顺序不重合,但是,只要WC存储器2704位于存储器单元中,就可通过R1存储器2705引用WC存储器2704的内容。前向传播周期中系统执行的过程基本与参考图25和图33所述方式相同。
[0304] 控制单元可根据下面的步骤a至q在存储器单元2700内的各个存储器中存储值:
[0305] a.当人工神经网络的前向网络中的每条连接线的两端被分为箭头开始的一端以及箭头结束的另一端时,为每条连接线的两端分配编号,编号满足下面的条件1至4:
[0306] 1.从一个神经元到另一神经元的向外连接具有唯一编号,该编号和另外的编号不重复;
[0307] 2、从一个神经元到另一神经元的向内连接具有唯一编号,该编号和另外的编号不重复;
[0308] 3.每个连接的两端具有同一编号;而且
[0309] 4.满足上述条件1至3的情况下,每个连接的编号尽可能小;
[0310] b.搜索分配给所有神经元的向外连接和向内连接的编号中的最大编号Pmax;
[0311] c.增加其属性对神经网络的前向网络内的另一神经元没有影响的一个空神经元,即使该空神经元连接到该神经元;
[0312] d.在保持分配给前向网络内的每个神经元的各个连接的编号的同时,为从1到[Pmax/p]*p范围内的编号中的所有空编号增加新连接,使得每个神经元具有[Pmax/p]*p个输入连接,其中将每个增加的连接设为其连接属性对任何神经元没有影响,即使该连接被连接到神经元,或者被连接到空神经元,其中p表示神经网络计算装置内的存储器单元2700的个数;
[0313] e.按任意顺序为前向网络内的所有神经元中的每个神经元分配一个编号;
[0314] f.将前向网络内的所有神经元的连接除以p个连接,以将连接分为[Pmax/p]个前向连接束,并为连接束内的每个连接顺序地分配编号i,编号i从1开始,按1递增;
[0315] g.为从第一神经元的第一前向连接束到最后一个神经元的最后一个前向连接束的每个前向连接束顺序地分配编号k,编号k从1开始,按1递增;
[0316] h.将第k个前向连接线束的第i个连接的属性的初始值存储在存储器单元2700中的第i个存储器单元的WC存储器2704和WN存储器2708的第k个地址中;
[0317] i.将与第k个前向连接束的第i个连接线相连接的神经元的唯一编号存储到存储器单元2700中的第i个存储器单元的M存储器2702的第k个地址中;
[0318] j.将具有唯一编号j的神经元的前向神经元属性存储在每个存储器单元中的YC存储器2703和YN存储器2709的第j个地址中;
[0319] k.增加其属性对神经网络的反向网络内的另一神经元没有影响的一个空神经元,即使该空神经元通过连接而连接到该神经元;
[0320] l.在保持分配给反向网络内的每个神经元的各个连接的编号的同时,为从1到[Pmax/p]*p范围内的编号中的所有空编号增加新连接,使得每个神经元具有[Pmax/p]*p个输入连接,其中将每个增加的连接设为其连接属性对任何神经元没有影响,即使该连接被连接到神经元,或者被连接到空神经元,其中p表示神经网络计算装置内的存储器单元2700的个数;
[0321] m.将反向网络内的所有神经元的连接除以p个连接,以将连接分为[Pmax/p]个反向连接束,并为连接束内的每个连接顺序地分配新编号i,编号i从1开始,按1递增;
[0322] n.为从第一神经元的第一反向连接束到最后一个神经元的最后一个反向连接束的每个反向连接束顺序地分配编号k,编号k从1开始,按1递增;
[0323] o.将位于存储器单元2700的第i个存储器单元的WC存储器2704中的第k个反向连接束的第i个连接的位置值存储在存储器单元2700中的第i个存储器单元的R1存储器2705的第k个地址中;
[0324] p.将与第k个反向连接束的第i个连接相连接的神经元的唯一编号存储到存储器单元2700中第i个存储器单元的R2存储器2706的第k个地址中;以及
[0325] q.将具有唯一编号j的神经元的反向神经元属性存储在每个存储器单元中的EC存储器2707和EN存储器2710的第j个地址中。
[0326] 当满足步骤a且前向网络的特定连接被存储在第i个存储器单元中时,将同一连接存储在反向网络的第i个存储器单元中。因而,在反向传播周期中,可在R1存储器2705中使用并引用与前向网络的WC存储器相同的WC存储器2704,虽然其存储器顺序与反向网络中的连接束的顺序不重合。
[0327] 为了解决步骤a的问题,可使用边着色算法,该算法对与图论中所有节点附着的边涂以不同颜色。假定与每个神经元连接的连接个数代表不同颜色,则可用边着色算法解决问题。
[0328] 根据图论之一的Vizing定理和柯尼希二分定理,当图内节点中边数最多的节点的边数设为n时,解决该图中的边着色问题所需的颜色个数对应于n。这意味着,当边着色算法应用于步骤a以指定连接个数时,整个网络的连接个数不超过全部神经元中连接个数最大的神经元的连接个数。
[0329] 图28是用于说明通过简化图27的神经网络计算装置而得到的计算结构的示图。
[0330] 图27中的M存储器2702、YC存储器2703和YN存储器2709可以如下方式划分:使用这些存储器的一半,分别用于R2存储器2706、EC存储器2707和EN存储器2710,以简化图28所示的神经网络计算装置。
[0331] 具体而言,图28的M存储器2802的一半存储器区域用于图27的神经网络计算装置的M存储器2702,另一半存储器区域用于图27的神经网络计算装置的R2存储器270。此外,图28的YEC 2803的一半存储器区域用于图27的神经网络计算装置的YC存储器2703,另一半存储器区域用于图27的神经网络计算装置的EC存储器2707。此外,图28的YEN存储器2823的一半存储器区域用于图27的神经网络计算装置的YN存储器2709,另一半存储器区域用于图27的神经网络计算装置的EN存储器2710。
[0332] 这样,图28的每个存储器单元2800包括R1存储器(第一存储器)2805、WC存储器(第二存储器)2804、M存储器(第三存储器)2802、YEC存储器(第四存储器)2803、YEN存储器(第五存储器)2823和数字开关2812。R1存储器2805存储WC存储器2804的地址值。WC存储器2804存储连接属性。M存储器2802存储神经元的唯一编号。YEC存储器2803存储反向神经元属性或前向神经元属性。YEN存储器2823存储通过计算单元2801计算的新反向神经元属性或前向神经元属性。数字开关2812选择W存储器2804的输入。
[0333] 图29是图27或图28的神经网络计算装置的计算单元2701或2801的详细结构图。
[0334] 如图29所示,计算单元2701或2801包括乘法单元2900、加法单元2901、累加器2902和索玛(soma)处理器2903。乘法单元2902包括与存储器单元2700和2800的个数对应的多个乘法器,并对来自各个存储器单元2700和2800的连接属性和前向神经元属性进行乘法运算,或者对连接属性和反向神经元属性进行乘法运算。加法单元2901具有树状结构,通过多级对乘法单元2900的多个输出值进行加法运算。累加器2902累加加法单元2901的输出值。索玛处理器2903接收从系统外部的导师通过控制单元提供的学习数据Teach并从累加器2902接收累加输出值,而且计算下一神经网络更新周期要使用的新前向神经元属性或反向神经元属性。
[0335] 根据本发明实施例的计算单元2701或2801还可包括位于各个计算步骤之间的寄存器。在这种情况下,寄存器与系统时钟同步,并且各个计算步骤以管线方式执行。
[0336] 图29的计算单元具有的结构与图8所述的计算单元基本相同,与图8的计算单元的不同之处在于用索玛处理器2903代替激活计数器。
[0337] 索玛处理器2903根据神经网络更新周期内的子周期执行下面的计算a至c:
[0338] a.为了在执行反向传播学习算法时计算误差计算子周期的输出神经元的误差值,索玛处理器2903从学习数据输入2904接收每个神经元的学习值、应用公式3来计算新误差值、将新误差值存储在其中,并将新误差值输出给Y输出。即,在计算输出神经元的误差值的周期期间,索玛处理器2903基于输入学习数据Teach与其中存储的神经元属性之间的差异计算误差值,将所计算的误差值存储在其中,并将误差值输出给Y输出。当不执行反向学习算法时,可省略该过程;
[0339] b.为了在执行反向传播学习算法时在误差计算子周期计算非输出神经元的其他神经元的误差值,索玛处理器2903从累加器2902接收误差输入之和、存储误差输入之和、并将误差输入之和输出给Y输出。当不执行反向传播学习算法时,索玛处理器2903根据相应的神经网络模型的反向公式进行计算,将结果输出给Y输出;以及
[0340] c.当执行反向传播学习算法时,在神经元属性计算子周期(回想周期),索玛处理器2903从累加器2902接收神经元的净输入值NETk、应用激活函数以计算神经元的新属性(状态值)、在其中存储新属性,并将新属性输出给Y输出。此外,索玛处理器2903计算连接调整所需的神经元属性 并将神经元属性输出给Y输出。当不执行反向传播学习算法时,索玛处理器2903根据相应神经网络模型的前向公式进行计算,并将结果输出给Y输出。
[0341] 图30A和30B是图29的计算单元中的索玛处理器2903的详细示图。
[0342] 单元索玛处理器可具有图30A所示的输入和输出,并在其中存储神经元的各条属性信息。图30B示出了根据并行计算线方法增加处理量的索玛处理器。
[0343] 如图30A所示,单元索玛处理器通过第一输入3000从累加器2902接收神经元的净输入或误差之和、通过第二输入3001接收输出神经元的学习数据、通过第一输出3003输出新计算的神经元属性或误差之和,并通过第二输出3002输出用于连接调整的神经元属性。
[0344] 如图30B所示,索玛处理器包括与各个输入对应的分路器3004和3005、多个单元索玛处理器3006、以及对应于各个输出的多路器3007和3008。索玛处理器通过分路器3004和3005将一个时钟周期提供的输入数据顺序地分路到各个单元索玛处理器3006、通过多路器3007和3008顺序地多路传输所计算的数据,并在该时钟周期输出数据。
[0345] 为了扩展该方法以提供实时输入或输出,专用于回想模式的上述神经网络计算装置即便在学习模式也可以实时地通过输入存储器提供输入神经元的值,并实时地通过输出存储器取输出神经元的值。此外,神经网络计算装置可以实时地通过存储器提供学习数据输入2723所提供的学习数据。
[0346] 在图29的结构用作计算单元的图27或28的神经网络计算装置中,整个学习过程都通过管线电路执行,而且管线周期仅受存储器访问时间tmem的限制。由于在学习模式中在一个神经网络更新周期内存在两个内部周期(第一和第二子周期或第三和第四子周期),所以最大学习处理速度对应于p/(2*tmem)CUPS。
[0347] 图31示出了神经网络计算系统的结构,该神经网络计算系统包括用于支持图27的学习模式的多个神经网络计算装置且具有高几倍的性能。
[0348] 图31是根据本发明实施例的神经网络计算系统的结构图。
[0349] 如图31所示,根据本发明实施例的神经网络计算系统包括控制单元、多个存储器单元3100和多个计算单元3101。控制单元控制神经网络计算系统。每个存储器单元3100包括多个存储器部分,每个存储器部分配置成输出连接属性和反向神经元属性,或者输出连接属性和前向神经元属性,并利用连接属性、前向神经元属性和学习属性计算新连接属性。每个计算单元3101利用从各个存储器单元3100内的相应存储器部分输入的连接属性和反向神经元属性计算新反向神经元属性,并将新反向神经元属性反馈给相应存储器部分,或者利用从相应存储器部分输入的连接属性和前向神经元属性计算新前向神经元属性和学习属性,并将新前向神经元属性和学习属性反馈给相应存储器部分。在图31中,本领域技术人员可基于图25和图33的描述轻易地理解用于计算新连接属性的电路。因而,这里省略其详细描述。
[0350] 此时,各个存储器单元3100内的多个存储器部分和多个计算单元3101与一个系统时钟同步,并根据控制单元的控制以管线方式运作。
[0351] 每个存储器部分包括R1存储器(第一存储器)3103、WC存储器(第二存储器)3102、R2存储器(第三存储器)3115、EC存储器组(第一存储器组)3106、EN存储器(第二存储器组)3108、M存储器(第四存储器)3104、YC存储器组(第三存储器组)3105、YN存储器组(第四存储器组)3107、第一数字开关、第二数字开关、第三数字开关和第四数字开关。R1存储器3103存储WC存储3102的地址值。WC存储器3102存储连接属性。R2存储器3115存储神经元的唯一编号。EC存储器组3106存储反向神经元属性。EN存储器组3108存储通过计算单元3101计算的新反向神经元属性。M存储器3104存储神经元的唯一编号。YC存储器组3105存储前向神经元属性。YN存储器组3107存储通过计算单元3101计算的新前向神经元属性。第一数字开关选择WC存储器3102的输入。第二数字开关将EC存储器组3106或YC存储器组3105的输出切换到计算单元3101。第三数字开关将计算单元3101的输出切换到EN存储器组3108或YN存储器组3107。第四数字开关将OutSel输入切换到EN存储器3108或YN存储器组3107。
[0352] 当参考图27或28描述的支持学习模式的n个神经网络计算装置耦接成一个集成系统时,存储器单元3100用其中各个神经网络计算装置的n个存储器单元2700集成为一个存储器单元的电路来实现。此外,通过解码器电路将n个YC存储器耦接成一个YC存储器组并将其设置在每个YC存储器的位置,YC存储器组的容量是YC存储器的n倍。此外,n个YN存储器共同绑定并设置在YN存储器的位置。此外,通过解码器电路将n个EC存储器耦接成一个EC存储器组并将其设置在每个EC存储器的位置,EC存储器组的容量是EC存储器的n倍。此外,n个EN存储器共同绑定并设置在EN存储器的位置。
[0353] 在包括n个神经网络计算装置的神经网络计算系统中,在将整个系统的神经元划分为n个组时,第h个神经网络计算装置处理第h个组的神经元。
[0354] 在图31中,当a和b表示任意整数时,每个存储器单元中由YCa-b表示的存储器和用YNa-b表示的每个存储器由上述双存储器交换方法(3111和3112)实现。此外,由ECa-b表示的每个存储器和由ENa-b表示的每个存储器用上述双存储器交换方法(3113和3114)实现。
[0355] 由于该系统支持学习模式,所以该系统的操作过程和图23的操作过程不同。然而,该系统的操作过程大部分类似于图23的操作过程,这是本领域技术人员可理解的。因而,这里省略其详细描述。
[0356] 在这种情况下,当用p表示存储器单元的个数、用h表示神经网络计算装置的个数、用tmem表示存储器访问时间时,神经网络计算系统的最大处理速度对应于p*h/tmem CUPS。
[0357] 根据本发明实施例的神经网络计算方法可以用可通过各种计算机单元执行并写入计算机可读介质的程序命令的形式实现。计算机可读介质可独立地包括程序命令、数据文件、数据结构等,或者包括程序命令、数据文件或数据结构的组合。写入介质的程序命令可包括专门设计和配置用于本发明的程序命令,或者包括计算机软件领域的技术人员公知且可用的程序命令。计算机可读介质的实例可包括配置用于存储并执行程序命令的介质,例如:磁介质,如硬盘软盘和磁带;光学介质,如CD-ROM和DVC;磁光介质,如光磁软盘;以及硬件设备,如ROM、RAM和闪存。介质可包括传输介质,如包括用于传输信号以指定程序命令、数据结构等的载波的光学或金属线或波导。程序命令的实例可包括可通过编译器创建的机器语言代码以及可通过计算机利用翻释器执行的高级语言代码。硬件设备可配置成作为用于执行本发明操作的一个或多个软件模块而运行,反之亦然。
[0358] 虽然参考具体实施例描述了本发明,但是,对本领域技术人员很显然,在不脱离所附权利要求所限定的本发明精神和范围的前提下,可做出各种修改和变化。
[0360] 本发明可用于数字神经网络计算系统。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈