发明内容
有鉴于此,本发明的目的在于提供一种基于神经网络的存储模块、模组及数据处理方法,提高神经网络中矩阵运算规模和处理速度。
为实现上述目的,本发明有如下技术方案:
一种基于神经网络的存储模块,包括:
由多个存储单元构成的存储阵列,每个存储单元包括非易失性存储器;
在所述存储阵列中,第一方向上每一条非易失性存储器的第一源漏极电连接第一电连线,第二方向上每一条非易失性存储器的第二源漏极电连接第二电连线,第一方向或第二方向上每一条非易失性存储器的栅极电连接第三电连线;
所述第一电连线和所述第二电连线中的一个用于加载输入信号,另一个的用于输出输出信号,所述输入信号用于表征神经网络中层的输入向量数值,所述非易失性存储器的存储数据用于表征所述层到下一层的连接权重数值。
可选地,所述非易失性存储器包括忆阻器、相变存储器、铁电存储器、自旋磁矩耦合存储器、浮栅场效应管或SONOS场效应管。
可选地,所述存储单元还包括MOS器件,所述非易失性存储器的第一源漏极与所述MOS器件的第二源漏极电连接,所述MOS器件的第一源漏极电连接第一电连线,在第一方向或第二方向上每一条场效应晶体管的栅极电连接第四电连线。
可选地,所述存储单元还包括与所述非易失性存储器共用沟道的MOS器件,第一方向或第二方向上每一条MOS器件的栅极电连接第四电连线。
可选地,所述第一电连线用于加载前向传播中的输入信号,所述第二电连线用于输出所述前向传播中的输出信号;所述第二电连线用于加载反向传播中的输入信号,所述第一电连线用于输出所述反向传播中的输出信号。
一种数据处理方法,采用上述任一基于神经网络的存储模块进行数据处理,所述方法包括:
每个存储单元的非易失性存储器处于第一数据状态,在第一电连线上加载输入信号、在第三电连线上加载读取电压信号,在第二电连线输出第一输出数据,所述第一输出数据为前向传播的输出信号。
可选地,还包括:
每个存储单元的非易失性存储器处于第二数据状态,在第二电连线上加载输入信号、在第三电连线上加载读取电压信号,在第一电连线获得第二输出数据,所述第二输出数据为反向传播的输出信号。
可选地,所述第一数据状态和所述第二数据状态为相同的数据状态。
可选地,还包括:
在一个或多个待改变的非易失性存储器上加载写电压或擦电压,以使得待改变的非易失性存储器存储的当前数据状态发生变化。
一种存储模组,包括多个存储单元,每个存储单元包括一个或多个上述的基于神经网络的存储模块;
每个所述存储模块的第一电连线连接至第一信号控制单元的输入端,所述第一信号控制单元包括并联的第一开关单元和第一信号处理单元,所述第一信号处理单元用于第一电连线输出信号的信号处理;
每个所述存储模块的第二电连线连接至第二信号控制单元的输入端,所述第二信号控制单元包括并联的第二开关单元和第二信号处理单元,所述第二信号处理单元用于第二电连线输出信号的信号处理;
多个所述存储单元串行连接,由前一存储单元中存储模块的第二信号控制单元的输出端分别对应电连接至后一存储单元中存储模块的第一信号控制单元的输出端;
其中,当前向传播时,第一开关单元处于导通状态且第二开关单元处于开路状态;当反向传播时,第二开关单元处于导通状态且第一开关单元处于开路状态。
可选地,所述第一信号处理单元所在支路中还串联有第三开关单元,所述第二信号处理单元所在支路中还串联有第四开关单元,且当前向传播时,第三开关单元处于开路状态,第四开关单元处于导通状态;当反向传播时,第四开关单元处于开路状态,第三开关单元处于导通状态。
可选地,所述第一开关单元、第二开关单元、第三开关单元和第四开关单元为双极性晶体管或场效应晶体管。
可选地,所述第一信号处理单元或所述第二信号处理单元包括差分处理单元、加法处理单元或放大处理单元中的一种或多种。
本发明实施例提供的基于神经网络的存储模块、模组及数据处理方法,由包括非易失性存储器的存储单元构成存储阵列,在存储阵列中,一方向上的存储器的一源漏极电连接第一电连线,另一方向上的存储器另一源漏极电连接第二电连线,第一电连线和所述第二电连线中的一个用于加载输入信号,输入信号可以用于表征神经网络中层的输入向量数值,由于非易失性存储器的存储特性,其存储数据即为存储器两源漏极之间的电导值,可以用于表征连接权重数值,那么,另一电连线上输出的输出信号即为进行矩阵运算后的数值。这样,通过该存储阵列可以完成神经网络中数据信号的处理、传输和存储,无需耗费数据存取时间,同时,存储阵列可以执行并行的数据处理和传输,处理速度不受运算量大小的影响,可以有效地提高神经网络中矩阵运算规模和处理速度。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
其次,本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
正如背景技术中的描述,在神经网络算法处理过程中,包含了大量的矩阵运算,目前主要是通过存储器加处理器的方式来实现矩阵运算,而随着神经网络功能的复杂化以及规模化,矩阵运算量也急剧扩大,对执行计算的硬件系统提出了更高的要求。为此,本申请提出了一种基于神经网络的存储模块,用于实现神经网络中的矩阵运算,提高矩阵运算的规模和处理速度。
为了更好地理解本发明的技术方案和技术效果,首先对神经网络及基本计算进行描述。参考图1所示,为包含三层隐藏层的神经网络的示例,在该示例中,包含输入层、输出层以及第1隐藏层、第2隐藏层、第3隐藏层,各层代表的数值关系如下:
其中,X、Y、H1、H2、H3分别代表输入层、输入层、第1隐藏层、第2隐藏层、第3隐藏层的输入向量数值,W1、W 2、W3、W 4分别代表从输入层至输出层相邻层间的连接权重,f为非线性函数,i,j,k,l为每一层的节点数。
在该示例的图示中,圆圈代表节点,连线代表权重,以输入层到第1隐藏层为例,一组输入X
i输入到输入层,通过与第1隐藏层的连接权重
输出一组数据
其中
以该组数据
作为第1隐藏层的输入,通过第1隐藏层节点的函数f激活之后,第1隐藏层节点的输出
同样地,第1隐藏层到第2隐藏层,以第1隐藏层节点的输出
作为第2隐藏层的输入,通过与第2隐藏层的连接权重
输出一组数据
其中
通过第2隐藏层节点的函数f激活之后,第2隐藏层节点的输出
以此类推,则在输出层输出Y
m。可以知道,在上述一个三层隐藏层的示例中,一次信息的处理就需要i×j+j×k+k×l+l×m次运算,在实际的应用中,运算次数往往会超过数百次。
为了提高矩阵运算的规模和处理速度,本发明实施例提供了一种基于神经网络的存储模块,参考图2至图5所示,包括:
由多个存储单元100构成的存储阵列,每个存储单元100包括非易失性存储器101;
在所述存储阵列中,第一方向X上每一条非易失性存储器的第一源漏极DS1电连接第一电连线AL,第二方向Y上每一条非易失性存储器的第二源漏极DS2电连接第二电连线BL,第一方向X或第二方向Y上每一条非易失性存储器的栅极G电连接第三电连线CL;
所述第一电连线AL和所述第二电连线BL中的一个用于加载输入信号,另一个的用于输出输出信号,所述输入信号用于表征神经网络中层的输入向量数值,所述非易失性存储器的存储数据用于表征所述向量数值对应的权重数值。
该存储模块用于神经网络算法中的矩阵运算,该矩阵运算是指相邻层之间的权重运算,也就是上述前层输入与连接权重的运算,例如输入层到第1隐藏层,输入数据X
i与第1隐藏层的连接权重
的计算
第1隐藏层到第2隐藏层,输入数据
与第2隐藏层的连接权重
的计算
可以理解的是,对于相邻的隐藏层之间的矩阵运算,前一隐藏层的输出即为矩阵运算的输入。
在本发明实施例中,第一方向X和第二方向Y为阵列排布的两个方向,阵列通常以行、列排布,在具体的实现中,可以根据需要采用合适的阵列排布方式,参考图2所示,例如可以是整齐对位的行、列排布,也可以为错位的行、列排布,即后一行的存储单元位于前一行两个存储单元之间。在具体的实施例中,第一方向X为行方向,则第二方向Y为列方向,相应地,第一方向X为列方向,则第二方向Y为行方向,行方向上每一条即指每一行,列方向上每一条即指每一列。
需要说明的是,在本发明实施例的图示中,在存储阵列中,仅将第一行和第一列的存储单元进行了图示,其他部分的存储单元省略了图示,而其他部分实际也是设置有存储单元的。
在本发明实施例中,第一源漏极DS1和第二源漏极DS2为存储器或MOS器件的源端或漏端,当第一源漏极DS1为源端时,则第二源漏极DS2为漏端,相应地,当第一源漏极DS1为漏端时,第二源漏极DS2为源端。每个存储单元中至少包含非易失性存储器101,非易失性存储器101具有掉电仍保留数据的特点,运用此特性设计存储阵列用于神经网络的矩阵计算,非易失性存储器101例如可以为忆阻器、相变存储器、铁电存储器、自旋磁矩耦合存储器、浮栅场效应管或SONOS(硅-氧化硅-氮化硅-氧化硅-硅,Si-Oxide-SiN-Oxide-Si)场效应器件等。进一步地,每个存储单元中还可以包括MOS器件(Metal-Oxide-Semiconductor Field-Effect Transistor,金属氧化物半导体场效应晶体管)。
在每个存储单元中,MOS器件用于辅助控制非易失性存储器的状态,MOS器件的栅极G2与存储器的栅极G1分别控制。在一些实施例中,参考图3和图4所示,存储阵列中的每个存储单元200包括非易失性存储器101和MOS器件102,MOS器件102与非易失性存储器101串联,也就是说,MOS器件102的第一源漏端DS1与非易失性存储器101的第二源漏端DS2电连接,在具体实现中,该电连接可以是直接连接或间接连接,例如可以为MOS器件与非易失性存储器共源漏实现串联,也可以为通过互连线或掺杂区实现串联,在这些实施例中,存储器101的第一源漏极DS1电连接一电连线BL,另一源漏极DS2通过MOS器件102连接到另一电连线AL上。非易失性存储器101的栅极G1沿第一方向X或第二方向Y连接至第三电连线CL,MOS器件102的栅极G2沿第一方向X或第二方向Y连接至第四电连线DL,优选地,第三电连线CL和第四电连线DL的方向相互正交。
在另一些实施例中,参考图4所示,存储阵列中的每个存储单元300包括非易失性存储器101和MOS器件103,MOS器件103与非易失性存储器101共沟道,MOS器件103的源漏端DS1也即非易失性存储器101的源漏端DS2,非易失性存储器101的栅极G1沿第一方向X或第二方向Y连接至第三电连线CL,MOS器件103的栅极G2沿第一方向X或第二方向Y连接至第四电连线DL,优选地,第三电连线CL和第四电连线DL的方向相互正交该存储模块的排布可以参见附图3,仅存储单元内的器件连接有所不同。
在本发明实施例的存储阵列中,一方向上的每一条非易失存储器的一源漏端DS1电连接一条电连线BL,另一方向上的每一条非易失性存储器的另一源漏端DS2电连接另一条电连线AL,非易失性存储器的栅极G可以根据需要选择行或列方向连接电连线,由于非易失性存储器的存储特性,存储器中存储的数值,在存储器体现为存储器源漏两端的电导值。
基于此,参考图6(A)所示,以前向传播为例,对利用存储阵列进行矩阵运算的原理进行说明。存储阵列中存储有数据,这些数据可以等效为与电流I
kl相关的电导值E
kl,当在电连线AL上分别加载输入信号V
ink后,在电连线BL上的信号V
outl可以等效表征为为:
该信号则相当于输入信号与存储数据进行了矩阵运算,若以输入信号表征当前层的向量数值,存储数据用于表征当前层到下一层的连接权重数值,那么,该信号就相当于进行过矩阵运算后的输出值,通过该存储矩阵即可实现神经网络的矩阵运算。在具体的应用中,根据需要,可以通过获取用于输出的电连线上的电流信号或电压信号来表征矩阵运算后的结果V'
outl:
F代表获取电连线上输出信号进行的转换,例如输出信号可以为电连线BL上的电流信号或者将电流进一步转换后的电压信号。
该存储阵列可以实现数据的前向传播以及反向传播,源漏两端的一条电连线为输入信号,另一条电连线为输出信号,可以实现前向传播,将输入信号和输出信号的连线交换,则可以实现反向传播。可以理解的是,在传播过程中,需要将存储器的栅极电连线设置合适的偏置电压,使得各存储器处于可读取状态。
通过该存储模块,可以实现神经网络中的矩阵运算,存储阵列可以执行并行的数据处理和传输,处理速度不受运算量大小的影响,无需耗费数据存储时间,大大提高处理速度和效率,同时,可以通过增大矩阵规模或增加矩阵模块数量,实现运算处理规模的增大,存储阵列可以执行并行的数据处理和传输,处理速度不受运算量大小的影响,有效地提高神经网络中矩阵运算规模和处理速度。此外,可以通过半导体技术实现上述存储阵列,相较于专用处理器,具有更低的生产成本,可以广泛应用于图像、声音及其他数据的模式识别领域。
基于以上的存储模块,可以进行神经网络中的前向传播、反向传播以及连接权重的改变,从而实现模型训练中的运算以及利用模型进行的运算。
参考图6(A)所示,在前向传播中,每个存储单元的非易失性存储器已写入所需的数据,为了便于描述,将前向传播中存储器中已写入的数据记做第一数据状态,在该数据状态下,在第一电连线AL上加载输入信号Vink、在第三电连线CL上加载读取电压信号,在第二电连线输出第一输出数据Voutl,所述第一输出数据Voutl为前向传播的输出信号。可以根据具体的情况,合理设置读取电压,使得各存储器都处于可读取状态,这样,从第二电连线上输出的信号即为输出信号,该输出信号可以为第二电连线上的电流信号,也可以是该电流经过转化后的电压信号,该输出信号即为矩阵运算后的数据,这样,通过该存储模块就实现了矩阵运算处理以及前向传播。
参考图6(B)所示,在反向传播中,输入信号端以及输出信号端与前向传播相反,每个存储单元的非易失性存储器已写入所需的数据,为了便于描述,将反向传播中存储器中已写入的数据记做第二数据状态,在该数据状态下,在第二电连线BL上加载输入信号Vinl、在第三电连线CL上加载读取电压信号,在第一电连线AL输出第二输出数据Voutk,所述第二输出数据为反向传播的输出信号。反向传播与前向传播的处理过程相同,区别仅在于输入端与输出端正好相反。同前向传播,可以根据需要合理设置该读取电压,使得各存储器都可以处于可读取状态,这样,从第一电连线上输出的信号即为输出信号。
该存储阵列可以应用于神经网络的样本训练,通常地,在一次样本训练中,前向传播和反向传播时的存储器中所存储的数据是不变的,也就是说,上述前向传播时的第一数据状态和反向传播时的第二数据状态为相同的数据状态。
上述输出信号可以为第一电连线AL或第二电连线BL上的电流信号,也可以是该电流经过转化后的电压信号,例如在电连线输出端设置积分器,通过积分器将电流信号转换为电压信号,该输出信号即为矩阵运算后的数据,这样,通过该存储模块就实现了矩阵运算处理以及反向传播。
在一些实施例中,存储单元中包括了非易失性存储器以及MOS器件,非易失性存储器的一源漏端通过MOS器件连接至输入信号的电连线上,可以理解的是,在前向和反向传播中,为了使得输入信号有效,MOS器件要处于导通状态,可以通过在MOS器件的栅极端加载导通电压实现。
在利用存储模块进行模型训练以及使用模型进行计算时,需要进行很多次的矩阵运算,参加运算的数据也是变化的,在本发明实施例中,通过改变存储单元中的存储数据实现连接权重的改变,在存储器当前状态数据的基础上,通过继续写数据或擦数据,使得存储器中存储数据发生改变,进而使得其表征的连接权重数据的改变。在具体的实现中,在一个或多个待改变的非易失性存储器上加载写电压或擦电压,以使得待改变的非易失性存储器存储的当前数据状态发生变化。其他不需要数据改变的存储器,可以将其栅极电压设置在非写擦电压。
具体的,可以通过第一电连线AL或第二电连线BL或第四电连线DL和第三电连线CL加载写电压或擦电压,在当前数据状态下,在下一次运算时,若连接权重数据需要增大,可以将该存储器加载写电压,使得该存储器继续写操作,若连接权重数据需要减小,可以将该存储器加载擦电压,使得该存储器进行擦除操作。
利用本发明实施例的存储模块可以实现神经网络中的各种数据处理,通过非易失性存储器的擦写特性实现权重数值的修改,速度快且可以实现数值的连续调节,高效地实现大规模和高速度的运算处理。
为了更好地理解本发明的技术方案和技术效果,以下将结合具体的实施例进行说明。
实施例一
参考图6所示,在该实施例中,每个存储单元中包括一个非易失性存储器,第一方向为行方向,第二方向为列方向,存储阵列中,每一行存储器的第一源漏极都连接至第一电连线AL,每一列存储器的第二源漏极都连接至第二电连线BL,每一行存储器的栅极都连接至第三电连线CL,当然,栅极的连接方式还可以为,每一列存储器的栅极连接至一条电连线。
在前向传播中,可以以第一电连线AL为输入端,第二电连线BL为输出端,在进行矩阵运算及传播之前,各存储器中已经写入数据,处于第一数据状态,在进行运算时,可以在第一电连线AL上加载输入信号Vink,输入信号可以同时或顺序加载至各条电连线AL上,第三电连线CL上加载读取电压,这样,从第二电连线BL上输出的信号即为输出信号,通过该存储模块就实现了矩阵运算处理以及前向传播。在一个具体的示例中,存储器可以为浮栅场效应管,例如在第三电连线CL上都施加0V电压,使得各存储器都可以处于可读取状态。
在反向传播中,可以以第二电连线BL为输入端,第一电连线AL为输出端,在进行矩阵运算及传播之前,各存储器中已经写入数据,处于第二数据状态,在进行运算时,可以在第二电连线BL上加载输入信号Vinl,第三电连线上加载读取电压,这样,从第一电连线AL上输出的信号即为输出信号,这样,通过该存储模块就实现了矩阵运算处理以及反向传播。
在改变连接权重时,第一连线和第三连线用于偏置写电压或擦电压,在本实施例中,若需要将连接权重的数值增大,则可以在需要改写的存储单元的第三电连线CL和第二电连线BL上加载写电压,在一个具体的示例中,例如图7(A)中选中的单元为选中的待改变单元,则在该单元对应的第三电连线CL上的电压为10V、第二电连线BL上的电压为0V,其他无需改变的单元的第三电连线CL和第二电连线BL上的电压都可以设置为5V,当然,也可以设置为其他的非写擦电压,例如第三电连线CL上的电压为0V、第二电连线BL上的电压为5V,第三电连线CL上的电压为10V、第二电连线BL上的电压为5V等;若需要将连接权重的数值减小,则可以在需要改写待改变的存储单元的第三电连线CL和第二电连线BL上加载擦电压,在一个具体的示例中,如图7(B)中选中的单元为选中的待改变单元,则在该单元对应的第三电连线CL上的电压为0V、第二电连线BL上的电压为10V,其他无需改变的单元的第三电连线CL和第二电连线BL上的电压都可以设置为5V。
实施例二
参考图3所示,在该实施例中,每个存储单元中包括非易失性存储器和MOS器件,这两个器件串联连接,存储器的第一源漏极连接MOS器件的第二源漏极,第一方向为行方向,第二方向为列方向,存储阵列中,每一行MOS器件的第一源漏极都连接至第一电连线AL,每一列存储器的第二源漏极都连接至第二电连线BL,每一行存储器的栅极都连接至第三电连线CL,每一列MOS器件的栅极电连接至第四电连线DL,当然,栅极的连接方式还可以为,每一列存储器的栅极连接至一条电连线,每一行MOS器件的栅极连接至一条电连线。本实施例中,优选地,非易失性存储器可以为浮栅场效应管或SONOS场效应管,制造时便于与MOS器件制造工艺集成。
在前向传播中,可以以第一电连线AL为输入端,第二电连线BL为输出端,在进行矩阵运算及传播之前,各存储器中已经写入数据,处于第一数据状态,在进行运算时,可以在第四电连线DL上加载开启电压,使得MOS器件处于导通状态,在第一电连线AL上加载输入信号,第三电连线上CL加载读取电压,可以根据需要合理设置该读取电压,使得各存储器都可以处于可读取状态,这样,从第二电连线BL上输出的信号即为输出信号。在一个具体的示例中,存储器可以为浮栅场效应管,例如在MOS器件的第四电连线DL施加1V,MOS器件都处于打开状态,第三电连线CL上都施加0V电压,使得各存储器都可以处于可读取状态。
在反向传播中,与前向传播不同的是,输入端和输出端进行了交换,以第一电连线AL为输出端,第二电连线BL为输入端,运算及传播同前向传播,此处不再赘述。
在改变连接权重时,第一连线和第三连线,或者第三电连线和第四电连线用于偏置写电压或擦电压,在本实施例中,若需要将连接权重的数值增大,则可以在需要改写的存储单元的第三电连线CL和第二电连线BL或第三电连线DL上加载写电压,在一个具体的示例中,例如第三电连线CL上的电压为10V、第二电连线BL上的电压为0V,或者第三电连线CL上的电压为10V、第四电连线DL上的电压为0V;若需要将连接权重的数值减小,则可以在需要改写的存储单元的第三电连线CL和第二电连线BL或第三电连线DL上加载擦电压,在一个具体的示例中,例如第三电连线CL上的电压为0V、第二电连线BL上的电压为10V,或者第三电连线CL上的电压为0V、第四电连线DL上的电压为10V;对于连接权重数值不需要修改的存储单元,则可以加载非擦写电压,例如第三电连线CL上的电压为0V、第二电连线BL上的电压为5V,第三电连线CL上的电压为10V、第二电连线BL上的电压为5V等。
以上对不同的实施例进行了详细的描述,可以理解的是,此处仅为示例,在其他实施例中,存储单元还可以为其他的结构,本发明并不限于此。
此外,本发明还提供了基于上述存储模块组成的存储模组,参考图8所示,存储模组包括:
包括多个存储单元(100-1、100-2、100-3…),每个存储单元100包括一个或多个上述的基于神经网络的存储模块101,各存储模块101中,第一电连线AL用于加载前向传播中的输入信号,第二电连线BL用于输出前向传播中的输出信号;第二电连线BL用于加载反向传播中的输入信号,第一电连线AL用于输出反向传播中的输出信号;
每个所述存储模块101的第一电连线AL连接至第一信号控制单元10的输入端a,所述第一信号控制单元10包括并联的第一开关单元12和第一信号处理单元11,所述第一信号处理单元11用于第一电连线AL输出信号的信号处理;
每个所述存储模块101的第二电连线BL连接至第二信号控制单元20的输入端c,所述第二信号控制单元20包括并联的第二开关单元22和第二信号处理单元21,所述第二信号处理单元21用于第二电连线BL输出信号的信号处理;
多个所述存储单元(100-1、100-2、100-3…)串行连接,由前一存储单元100-1中存储模块101的第二信号控制单元20的输出端d分别对应电连接至后一存储单元100-2中存储模块101的第一信号控制单元10的输出端b;
其中,当前向传播时,第一开关单元12处于导通状态且第二开关单元22处于开路状态;当反向传播时,第二开关单元22处于导通状态且第一开关单元12处于开路状态。
根据具体的神经网络算法,可以将上述的存储模块组合起来,作为存储模组使用,实现神经网络中不同层之间的矩阵运算和信号传输,在本发明实施例中,每个存储单元分别用于相邻两层之间的矩阵运算,包括了前向传播中的矩阵运算以及反向传播中的矩阵运算,每个存储单元可以包括一个或多个上述的存储模块,可以理解的是,存储模块的数量和存储模块中阵列的规模,是根据神经网络算法中节点数量或者是根据不同算法运算量需求决定的。
存储单元之间为串行连接,也就是一个个存储单元顺次连接起来,实现神经网络中层与层之间的信号处理与传输,为了控制存储单元之间,也就是层之间的信号传播方向,对于每个存储模块101,在第一电连线AL上连接第一信号控制单元10,以及在第二电连线BL上连接第二信号控制单元20,第一信号控制单元10包括并联的第一开关单元12和第一信号处理单元11这两条支路,第二信号控制单元20包括并联的第二开关单元22和第二信号处理单元21这两条支路。通过开关单元,控制前向传播和反向传播的信号传输方向,或者,根据不同的运算需求,关闭或打开某些模块。
第一信号控制单元10的输入端a和输出端b是相对于第一信号处理单元11而言的,第一信号处理单元11用于当第一电连线AL用于输出信号时,对第一电连线AL输出信号进行信号处理,第一信号控制单元10的输入端、输出端即指第一信号处理单元11的输入端、输出端。同样地,第二信号控制单元20的输入端和输出端是相对于第二信号处理单元21而言的,第二信号处理单元21用于当第二电连线BL用于输出信号时,对第二电连线BL输出信号进行信号处理,第二信号控制单元20的输入端、输出端即指第二信号处理单元21的输入端、输出端。
上述的第一和第二信号处理单元将矩阵运算后的输出信号进一步进行处理,根据神经网络算法的不同需求,这些信号处理单元可以包括差分处理单元、加法处理单元或放大处理单元中的一种或多种,以满足不同的运算需求。
在存储单元之间的连接为串行连接,由前一存储单元中存储模块的第二信号控制单元的输出端分别对应电连接至后一存储单元中存储模块的第一信号控制单元的输出端。参考图8所示,以三个存储单元为例进行说明,在示例中,包括第一存储单元100-1、第二存储单元100-2和第三存储单元100-3,这三个存储单元依次串接在一起,第一存储单元100-1和第三存储单元100-3分别包括一个存储模块101,第二存储单元100-2包括两个存储模块102,第一存储单元100-1的存储模块101的第二信号控制单元20的输出端d分别对应电连接至第二存储单元100-2的存储模块101的第一信号控制单元10的输出端b,第二存储单元100-2的存储模块101的第二信号控制单元20的输出端d分别对应电连接至第三存储单元100-3的存储模块101的第一信号控制单元10的输出端b,连接的对应关系由神经网络算法中相邻层之间的节点对应关系确定。
基于上述的模组,在当前向传播时,第一开关单元12处于导通状态且第二开关单元22处于开路状态;当反向传播时,第二开关单元22处于导通状态且第一开关单元12处于开路状态,这样,通过控制开关单元的状态,实现相邻存储单元之间信号的前向和反向传播。
此外,参考图9,还可以进一步在第一信号控制单元10的第一信号处理单元11所在支路中串联第三开关单元13,第三开关单元13可以串联在第一信号处理单元11输入端a一侧或者输出端b一侧。同样地,参考图10所示,还可以进一步在第二信号控制单元20的第二信号处理单元21所在支路中串联第四开关单元23,第四开关单元23可以串联在第二信号处理单元21输入端c一侧或者输出端d一侧。这样,在前向传播中,第三开关单元13处于开路状态,第四开关单元23处于导通状态;当反向传播时,第四开关单元23处于开路状态,第三开关单元13处于导通状态。
在具体的应用中,上述这些开关单元可以为双极性晶体管或场效应晶体管。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。