一种存算一体化电路及神经网络的计算方法与流程

文档序号:17929466发布日期:2019-06-15 00:42阅读:252来源:国知局
一种存算一体化电路及神经网络的计算方法与流程

本发明涉及神经网络计算领域,尤其涉及一种存算一体化电路及神经网络的计算方法。



背景技术:

如图1所示,为了完成图像、语音和其他信号的识别,一个完整的神经网络结构通常包括多个神经元层,其中,第一个神经元层作为输入层,最后一个神经元层作为输出层,其余的神经元层作为隐藏层,所述多个神经元层中任意相邻神经元层之间的连接关系均由权重参数决定,其中,所述多个神经元层中任意相邻神经元层之间的连接关系可以包括全连接或卷积等。

如图2所示,在存算一体化电路中,用于计算神经网络的模块往往是由存储器阵列组成的,具体工作时,待处理的信号被输入到存有权重参数的存储器阵列里进行处理,经过一个存储器列阵处理的信号相当于完成了从神经网络的一层神经元层向下一层神经元层的传播,以此类推,将多个存储器阵列连接在一起后,即可执行多层神经网络的计算。

但是,现有存算一体化电路设计生产完成后,其能计算的神经网络的神经元层数目范围和每个神经元层内的节点数目范围较为有限。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种存算一体化电路,以增大所述存算一体化电路所能计算的神经网络的神经元层数目范围和每个神经元层内的节点数目范围。

为解决上述问题,本发明实施例提供了如下技术方案:

一种存算一体化电路,包括:

多条沿行方向延伸的第一信号线以及多条沿列方向延伸的第二信号线;

呈阵列排布的多个存储单元,位于同一行的所述存储单元的第一端连接至同一所述第一信号线,位于不同行的所述存储单元的第一端电连接至不同的所述第一信号线;位于同一列的所述存储单元的第二端电连接至同一所述第二信号线,位于不同列的所述存储单元的第二端电连接至不同的所述第二信号线。

可选的,还包括:

多个沿行方向的第三信号线,所述第三信号线与所述第一信号线一一对应,用于控制与同一条所述第一信号线电连接的所有所述存储单元与其对应的所述第一信号线或所述第二信号线之间的连接状态;

和/或,

多个沿列方向的第四信号线,所述第四信号线与所述第二信号线一一对应,用于控制与同一条所述第二信号线电连接的所有所述存储单元与其对应的所述第一信号线或所述第二信号线之间的连接状态。

可选的,还包括:

与所述第一信号线的至少一端电连接的第一信号处理结构,用于对所述第一信号线输出的信号进行接收。

可选的,所述第一信号处理结构包括一个第一信号处理单元和多个第一开关,所述第一开关与所述第一信号线一一对应,所述第一信号处理单元通过各所述第一开关与各所述第一信号线电连接;

或,

所述第一信号处理结构包括多个第一信号处理单元,所述第一信号处理单元与所述第一信号线一一对应,且与其对应的所述第一信号线电连接。

可选的,还包括:与所述第一信号处理结构电连接的第一信号存储结构,用于对所述第一信号处理结构输出的信号进行存储。

可选的,还包括:与所述第二信号线的至少一端电连接的第二信号处理结构,用于对所述第二信号线输出的信号进行接收。

可选的,所述第二信号处理结构包括一个第二信号处理单元和多个第二开关,所述第二开关与所述第二信号线一一对应,所述第二信号处理单元通过各所述第二开关与各所述第二信号线电连接;

或,

所述第二信号处理结构包括多个第二信号处理单元,所述第二信号处理单元与所述第二信号线一一对应,且与其对应的所述第二信号线电连接。

可选的,还包括:与所述第二信号处理结构电连接的第二信号存储结构,用于对所述第二信号处理结构输出的信号进行存储。

可选的,所述第一信号存储结构还与所述第二信号处理结构电连接,用于对所述第二信号处理结构输出的信号进行存储。

可选的,还包括:

位于所述第一信号线与所述第一信号处理结构之间的第一控制结构,所述第一控制结构包括多个第一控制开关,所述第一控制开关与所述第一信号线一一对应,所述第一控制开关包括电连接所述第一信号线与所述第一信号处理结构的第一状态和断开所述第一信号线与所述第一信号处理结构的第二状态;

位于所述第二信号线与所述第二信号处理结构之间的第二控制结构,所述第二控制结构包括多个第二控制开关,所述第二控制开关与所述第二信号线一一对应,所述第二控制开关包括电连接所述第二信号线与所述第二信号处理结构的第三状态和断开所述第二信号线与所述第二信号处理结构的第四状态。

一种神经网络的计算方法,应用于上述任一项所述的存算一体化电路,该计算方法包括:

从第一预设信号线输入第一数据,经所述第一预设信号线和第二预设信号线交错形成的权重参数计算后得到第二数据,从所述第二预设信号线输出所述第二数据;

其中,所述第一预设信号线和所述第二预设信号线为多条所述第一信号线和多条所述第二信号线中不同的信号线。

可选的,该方法还包括:

从第三预设信号线输入所述第二数据,经所述第三预设信号线和第四预设信号线交错形成的权重参数计算后得到第三数据,从所述第四预设信号线输出所述第三数据;

其中,所述第三预设信号线和所述第四预设信号线为多条所述第一信号线和多条所述第二信号线中不同的信号线。

可选的,如果所述存算一体化电路包括与所述第一信号线的至少一端电连接的第一信号处理结构,则所述第一预设信号线和所述第三预设信号线为所述第二信号线,且为多条所述第二信号线中不同的信号线,所述第二预设信号线和所述第四预设信号线为所述第一信号线,且为多条所述第一信号线中不同的信号线。

可选的,如果所述存算一体化电路包括与所述第二信号线的至少一端电连接的第二信号处理结构,则所述第一预设信号线和所述第三预设信号线为所述第一信号线,且为多条所述第一信号线中不同的信号线,所述第二预设信号线和所述第四预设信号线为所述第二信号线,且为多条所述第二信号线中不同的信号线。

可选的,所述存算一体化电路包括与所述第一信号线的至少一端电连接的第一信号处理结构,所述存算一体化电路包括与所述第二信号线的至少一端电连接的第二信号处理结构,则:

所述第一预设信号线和所述第三预设信号线为所述第二信号线,且为多条所述第二信号线中不同的信号线,所述第二预设信号线和所述第四预设信号线为所述第一信号线,且为多条所述第一信号线中不同的信号线;

或,

所述第一预设信号线和所述第三预设信号线为所述第一信号线,且为多条所述第一信号线中不同的信号线,所述第二预设信号线和所述第四预设信号线为所述第二信号线,且为多条所述第二信号线中不同的信号线;

或,所述第一预设信号线为多条所述第一信号线中部分第一信号线,所述第二预设信号线为多条所述第二信号线中部分所述第二信号线,所述第三预设信号线为多条所述第一信号线中部分第一信号线,所述第四预设信号线为多条所述第二信号线中部分所述第二信号线;

或,所述第一预设信号线为多条所述第一信号线中部分第一信号线,所述第二预设信号线为多条所述第二信号线中部分所述第二信号线,所述第三预设信号线为多条所述第二信号线中部分第二信号线,所述第四预设信号线为多条所述第一信号线中部分所述第一信号线;

或,所述第一预设信号线为多条所述第二信号线中部分第二信号线,所述第二预设信号线为多条所述第一信号线中部分所述第一信号线,所述第三预设信号线为多条所述第二信号线中部分第二信号线,所述第四预设信号线为多条所述第一信号线中部分所述第一信号线。

或,所述第一预设信号线为多条所述第二信号线中部分第二信号线,所述第二预设信号线为多条所述第一信号线中部分所述第一信号线,所述第三预设信号线为多条所述第一信号线中部分第一信号线,所述第四预设信号线为多条所述第二信号线中部分所述第二信号线。

与现有技术相比,上述技术方案具有以下优点:

本发明实施例所提供的技术方案中,呈阵列排布的多个存储单元中,任意n条第一信号线和任意m条第二信号线限定的区域均可以作为一个存储阵列,从而大大增加所述存算一体化电路中的存储阵列的数量以及各存储阵列大小的灵活性,进而增加所述存算一体化电路所能计算的神经网络的神经元层数目范围以及每一神经元层内节点个数范围。其中,n为不小于1且不大于所述存算一体化电路中所包括第一信号线的数量,m为不小于1且不大于所述存算一体化电路中所包括的第二信号线的数量。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中存算一体化电路的结构示意图;

图2为现有技术中存算一体化电路的结构框图;

图3为本发明一个实施例所提供的存算一体化电路的结构示意图;

图4为本发明一个实施例所提供的存算一体化电路中存储单元的结构示意图;

图5为本发明一个实施例所提供的存算一体化电路计算神经网络时的信号处理示意图;

图6为本发明另一个实施例所提供的存算一体化电路中存储单元的结构示意图;

图7为本发明另一个实施例所提供的存算一体化电路计算神经网络时的信号处理示意图;

图8为本发明又一个实施例所提供的存算一体化电路计算神经网络时的信号处理示意图;

图9为本发明又一个实施例所提供的存算一体化电路中存储单元的结构示意图;

图10为本发明再一个实施例所提供的存算一体化电路计算神经网络时的信号处理示意图;

图11为本发明另一个实施例所提供的存算一体化电路的结构示意图;

图12为本发明又一个实施例所提供的存算一体化电路的结构示意图;

图13为本发明再一个实施例所提供的存算一体化电路的结构示意图;

图14为本发明又一个实施例所提供的存算一体化电路的结构示意图;

图15为本发明一个实施例所提供的存算一体化电路中第二信号处理单元的结构示意图;

图16为本发明另一个实施例所提供的存算一体化电路中第二信号处理单元的结构示意图;

图17为本发明又一个实施例所提供的存算一体化电路中第二信号处理单元的结构示意图;

图18为本发明再一个实施例所提供的存算一体化电路中第二信号处理单元的结构示意图;

图19为本发明又一个实施例所提供的存算一体化电路的结构示意图;

图20为本发明再一个实施例所提供的存算一体化电路的结构示意图;

图21为本发明又一个实施例所提供的存算一体化电路的结构示意图;

图22为本发明再一个实施例所提供的存算一体化电路计算神经网络时的信号处理示意图;

图23为本发明又一个实施例所提供的存算一体化电路计算神经网络时的信号处理示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

正如背景技术部分所述,现有存算一体化电路设计生产完成后,其能计算的神经网络的神经元层数目范围和每个神经元层内的节点数目范围较为有限。

发明人研究发现,现有存算一体化电路的结构中多个存储器阵列采用类似串联的方式连接,一旦生产完成,其所包括的存储器阵列的个数为固定值,且多个存储器阵列中的任一存储器阵列只能接收位于其一侧与其相连的存储器阵列输出的信号,并将其处理后的信号输出给位于其另一侧与其相连的存储器阵列,如图1和图2所示,当所述存算一体化电路包括四个存储器阵列、五个神经元层(输入层、隐藏层1、隐藏层2、隐藏层3、输出层)时,其隐藏层2只能接收隐藏层1输出的信号,且隐藏层2输出的信号也只能输出给隐藏层3,从而使得该存算一体化电路所能计算的神经网络包括的神经元层数不能大于所述存算一体化电路包括的神经元层数,即如图1所示的存算一体化电路只能计算包括1层神经元层、2层神经元层、3层神经元层、4层神经元层或5层神经元层的神经网络,而不能处理包括其他数量神经元层数目的神经网络,导致现有存算一体化电路能计算的神经网络的神经元层数目范围较为有限。

另外,现有存算一体化电路一旦设计生产完成,其所包括的存储器阵列中各存储器阵列的大小也为固定值,从而使其所能计算的神经网络中每个神经元层的最大节点数被限制住了,一旦待计算神经网络中任一神经元层的最大节点数超过其对应的存储器阵列的大小,该存算一体化电路则不再适用,导致现有存算一体化电路能计算的神经网络中每个神经元层内的节点数目范围较为有限。

发明人研究发现,为了适应更多的神经网络结构,可以通过增加所述存算一体化电路中的存储器阵列的个数和每个存储器阵列的大小,来使得所述存算一体化电路中存储器阵列的个数和每个存储器阵列都有一定的冗余,这种方法虽然可以通过增加所述存算一体化电路的大小和生产成本来适当增加所述存算一体化电路能够计算的神经网络的神经元数量以及每个神经元层内的节点数目,但是,其仍然没有改变现有存算一体化电路一旦设计生产完成,其所包括的存储器阵列数和各存储器阵列的大小即为固定值的本质,对所述存算一体化电路所能计算的神经网络的结构数量提升范围较为有限。

有鉴于此,本发明实施例提供了一种存算一体化电路,如图3所示,该存算一体化电路包括:

多条沿行方向延伸的第一信号线10以及多条沿列方向延伸的第二信号线20,可选的,所述第一信号线和所述第二信号线为导线,所述行方向为x方向,所述列方向为y方向;

呈阵列排布的多个存储单元30,所述多个存储单元30组成存储单元阵列,位于同一行的所述存储单元30的第一端连接至同一所述第一信号线10,位于不同行的所述存储单元30的第一端电连接至不同的所述第一信号线10;位于同一列的所述存储单元30的第二端电连接至同一所述第二信号线20,位于不同列的所述存储单元30的第二端电连接至不同的所述第二信号线20。

需要说明的是,在本发明实施例中,所述存储单元用于存储其输入端到输出端的计算参数。具体的,在本发明一个实施例中,所述存储单元30包括浮栅场效应晶体管(fg-mosfet)、硅-氧化硅-氮化硅-氧化硅-硅场效应管(sonos-fet)、忆阻器(rram)、相变存储器(pcram)、磁性存储器(mram)等器件中的至少一个,即所述存储单元可以为浮栅场效应晶体管(fg-mosfet)、硅-氧化硅-氮化硅-氧化硅-硅场效应管(sonos-fet)、忆阻器(rram)、相变存储器(pcram)、磁性存储器(mram)等器件,也可以为这些器件中至少两个器件的组合,还可以为这些器件中的至少一个器件与场效应管(mosfet)的组合,本发明对此并不做限定,具体视情况而定。

在上述实施例的基础上,在本发明的一个实施例中,如图4所示,所述存储单元为浮栅场效应晶体管(fg-mosfet),所述存算一体化电路还包括多个沿行方向的第三信号线,所述第三信号线与所述第一信号线一一对应,用于控制与同一条第一信号线电连接的所有存储单元与其对应的第一信号线或第二信号线之间的连接状态,即选通同一条第一信号线电连接的所有存储单元与其对应的第一信号线或第二信号线之间的连接,或,关闭同一条第一信号线电连接的所有存储单元与其对应的第一信号线或第二信号线之间的连接。具体的,所述第一信号线和所述第二信号线分别电连接所述浮栅场效应晶体管的源/漏端,所述第三信号线电连接所述浮栅场效应晶体管的控制端。

在上述实施例的基础上,在本发明的一个实施例中,如图5所示,所述第一信号线为信号输入线,所述第二信号线为信号输出线,所述存算一体化电路具体工作时,在使用到存储单元阵列中某一区域的权重时,通过打开其对应的第三信号线选通其对应的存储单元,实现该区域存储的权重参数的计算,关闭其他第三信号线,从而避免其他区域的存储单元对所述存算一体化电路的计算结果造成影响。

在本发明的另一个实施例中,如图6所示,所述存储单元为浮栅场效应晶体管(fg-mosfet),所述存算一体化电路还包括多个沿列方向的第四信号线,所述第四信号线与所述第二信号线一一对应,用于控制与同一条第二信号线电连接的所有存储单元与其对应的第一信号线或第二信号线之间的连接状态,即选通同一条第二信号线电连接的所有存储单元与其对应的第一信号线或第二信号线之间的连接,或关闭同一条第二信号线电连接的所有存储单元与其对应的第一信号线或第二信号线之间的连接。具体的,所述第一信号线和所述第二信号线分别电连接所述浮栅场效应晶体管的源/漏端,所述第四信号线电连接所述浮栅场效应晶体管的控制端。

在上述实施例的基础上,在本发明的一个实施例中,所述存算一体化电路具体工作时,如图7所示,所述第二信号线为信号输入线,所述第一信号线为信号输出线,在使用到存储单元阵列中某一区域的权重时,通过打开第四信号线选通其对应的存储单元,实现该区域存储的权重参数的计算,关闭其他第四信号线,从而避免其他区域的存储单元对所述存算一体化电路的计算结果造成影响。

在本发明的又一个实施例中,如图8所示,所述存储单元包括串联的浮栅场效应晶体管(fg-mosfet)和场效应管(mosfet),所述存算一体化电路还包括多个沿行方向的第三信号线以及多个沿列方向的第四信号线,其中,所述第三信号线与所述第一信号线一一对应,用于控制与同一条第一信号线电连接的所有存储单元与其对应的第一信号线之间的连接状态,即选通同一条第一信号线电连接的所有存储单元与其对应的第一信号线的连接,或,关闭同一条第一信号线电连接的所有存储单元与其对应的第一信号线之间的连接,所述第四信号线与所述第二信号线一一对应,用于控制与同一条第二信号线电连接的所有存储单元与其对应的第二信号线之间的连接状态,即选通同一条第二信号线电连接的所有存储单元与其对应的第二信号线之间的连接,或关闭同一条第二信号线电连接的所有存储单元与其对应的第二信号线之间的连接。具体的,所述浮栅场效应管(fg-mosfet)的第一端与第一信号线电连接,所述浮栅场效应管(fg-mosfet)的第二端与所述场效应管(mosfet)的第一端电连接,所述浮栅场效应管(fg-mosfet)的控制端与所述第三信号线电连接,所述场效应管的第一端与所述浮栅场效应管(fg-mosfet)的第二端电连接,所述场效应管的第二端与所述第二信号线电连接,所述场效应管的控制端与所述第四信号线电连接。

在上述实施例的基础上,在本发明的一个实施例中,如图9所示,所述第一信号线为信号输入线,所述第二信号线为信号输出线,所述存算一体化电路具体工作时,在使用到存储单元阵列中某一区域的权重时,通过打开其对应的第三信号线和第四信号线选通其对应的存储单元,实现该区域存储的权重参数的计算,关闭其他第三信号线和/或第四信号线,从而避免其他区域的存储单元对所述存算一体化电路的计算结果造成影响。

在本发明的再一个实施例中,如图10所示,所述存储单元包括串联的第一场效应管(mosfet1)、忆阻器(rram)和第二场效应管(mosfet2),所述存算一体化电路还包括多个沿行方向的第三信号线以及多个沿列方向的第四信号线,其中,所述第三信号线与所述第一信号线一一对应,用于控制与同一条第一信号线电连接的所有存储单元与其对应的第一信号线之间的连接状态,即选通同一条第一信号线电连接的所有存储单元与其对应的第一信号线之间的连接,或,关闭同一条第一信号线电连接的所有存储单元与其对应的第一信号线之间的连接,所述第四信号线与所述第二信号线一一对应,用于控制与同一条第二信号线电连接的所有存储单元与其对应的第二信号线之间的连接状态,即选通同一条第二信号线电连接的所有存储单元与其对应的第二信号线之间的连接,或关闭同一条第二信号线电连接的所有存储单元与其对应的第二信号线之间的连接。具体的,所述第一场效应管的第一端与所述第一信号线电连接,所述第一场效应管的第二端与所述忆阻器的第一端电连接,所述第一场效应管的控制端与所述第三信号线电连接;所述忆阻器的第二端与所述第二场效应管的第一端电连接,所述第二场效应管的第二端与所述第二信号线电连接,所述第二场效应管的控制端与所述第四信号线电连接。

在上述实施例的基础上,在本发明的一个实施例中,所述第一信号线为信号输入线,所述第二信号线为信号输出线,所述存算一体化电路具体工作时,在使用到存储单元阵列中某一区域的权重时,通过打开其对应的第三信号线和第四信号线选通其对应的存储单元,实现该区域存储的权重参数的计算,关闭其他第三信号线和/或第四信号线,从而避免其他区域的存储单元对所述存算一体化电路的计算结果造成影响。

在上述实施例的基础上,在本发明的一个实施例中,多个所述第一信号线作为信号输入线,多个所述第二信号线作为信号输出线,在本发明实施例中,具体计算时,待计算的数据可以转换成一系列电压或电流信号从第一信号线输入到存储单元阵列中,经过同一条第一信号线上任一存储单元后,以电压或电流的形式达到第二信号线进行输出;在本发明的另一个实施例中,多个所述第二信号线作为信号输入线,多个所述第一信号线作为信号输出线,在本发明实施例中,具体计算时,待计算的数据可以转换成一系列电压或电流信号从第二信号线输入到存储单元阵列中,经过同一条第二信号线上任一存储单元后,以电压或电流的形式达到第一信号线进行输出;在本发明的又一个实施例中,多个所述第一信号线中部分第一信号线作为信号输入线,部分第一信号线作为信号输出线,多个所述第二信号线中部分第二信号线作为信号输出线,部分第二信号线作为信号输入线,本发明对此并不做限定,具体视情况而定。

本发明实施例所提供的存算一体化电路在计算神经网络时,呈阵列排布的多个存储单元中,任意n条第一信号线和任意m条第二信号线限定的区域均可以作为一个存储阵列,从而大大增加所述存算一体化电路中的存储阵列的数量以及各存储阵列大小的灵活性,进而增加所述存算一体化电路所能计算的神经网络的神经元层数目范围以及每个神经元层内的节点数目范围。其中,n为不小于1且不大于所述存算一体化电路中所包括第一信号线的数量,m为不小于1且不大于所述存算一体化电路中所包括的第二信号线的数量。

具体的,在本发明的一个实施例中,所述存算一体化电路包括h行k列存储单元,则所述存算一体化电路所能计算的神经网络所包括的存储阵列数最小为1(即所述存算一体化电路中h行k列存储单元组成的存储阵列),神经元层数为2,所能计算的神经网络所包括的存储阵列数最大为h乘以k(即一个存储单元对应一个存储阵列),神经元层数为h乘以k再加1。

由此可见,本发明实施例所提供的存算一体化电路就能增加其所能计算的神经网络所包括的神经元层数目范围及其所能计算的神经网络中每一神经元层内节点个数范围较大,且所述存算一体化电路中包括的存储单元行数和列数越多,本发明实施例所提供的存算一体化电路所能计算的神经网络所包括的神经元层数目范围和每一神经元层内节点个数范围越广,所能计算的神经网络的结构数量越多,优势越明显。

在上述任一实施例的基础上,在本发明的一个实施例中,为了便于对任一存储阵列输出的信号进行检测和/或处理,如图11所示,所述存算一体化电路还包括:与所述第一信号线10的至少一端电连接的第一信号处理结构40,用于对所述第一信号线10输出的信号进行接收,以便于对所述第一信号线10输出的信号进行检测和/或预设处理等,其中,所述预设处理包括但不限于电压和电流的转换、积分处理、叠加、差分以及模数转换等。

具体的,在上述实施例的基础上,在本发明的一个实施例中,继续如图11所示,所述第一信号处理结构40包括多个第一信号处理单元41,所述第一信号处理单元41与所述第一信号线10一一对应,且与其对应的所述第一信号线10电连接,以使得所述存算一体化电路中,每条第一信号线10输出的信号都可以由其各自对应的第一信号处理单元41进行处理,简化所述存算一体化电路工作时的控制难度。

在本发明的另一个实施例中,所述第一信号处理结构40包括一个第一信号处理单元和多个第一开关,所述第一开关与所述第一信号线一一对应,所述第一信号处理单元通过各所述第一开关与各所述第一信号线电连接,以利用一个第一信号处理单元对所有第一信号线输出的信号进行接收和处理,简化所述存算一体化电路的结构,并利用所述多个第一开关使得所述第一信号处理结构在同一时刻仅与一条所述第一信号线电连接,对该第一信号线输出的信号进行接收和处理。

需要说明的是,上述实施例仅仅是对所述第一信号处理结构的两种实现方式进行描述,但本发明对此并不做限定,在本发明的其他实施例中,所述第一信号处理结构还可以采用其他实现方式,如所述第一信号处理包括多个第一信号处理单元和多个第一开关,其中,所述第一信号处理单元的数量小于所述第一信号线的数量,所述第一开关的数量也小于所述第一信号线的数量,即所述多个第一信号线中,部分第一信号线电连接至一第一信号处理单元,部分第一信号线连接至另一第一信号处理单元,如果所述多个第一信号处理单元中某一第一信号处理单元电连接多个第一信号线,则电连接至同一第一信号处理单元的多个第一信号线通过第一开关电连接,如果多个第一信号处理单元中某一第一信号处理单元仅电连接至一个第一信号线,该第一信号线可与其对应的第一信号处理单元直接电连接,而无需经过所述第一开关。

在上述任一实施例的基础上,在本发明的一个实施例中,所述第一信号处理单元包括积分器、电阻、电容或模数转换电路等结构中的至少一个,即所述第一信号处理单元可以是积分器,也可以是一个串联的电阻,还可以是一个串联的电容,或是一个模数转换电路(adc),或是上述这些结构的组合,本发明对此并不做限定,具体视情况而定。

需要说明的是,由于所述存储单元输出的信号为模拟信号,而模拟信号的处理方式较为有限,处理结构较为复杂,故在上述任一实施例的基础上,在本发明的一个实施例中,所述第一信号处理单元可选为包括模数转换电路,以便于将一层神经元层输出的模拟信号转换为数字信号后,再对该数字信号进行预设处理,从而便于对所述第一信号线输出的信号进行更多的函数处理后,再将其输入给下一层神经元层,从而提高所述存算一体化电路中信号处理方式的灵活性,同时降低处理难度。

还需要说明的是,在上述实施例中,由于所述第一信号线的至少一端设置有第一信号处理结构,故在本发明的一个可选实施例中,多个所述第二信号线作为信号输入线,多个所述第一信号线作为信号输出线,以便于一层神经元层的信号输出后,经过所述第一信号处理结构的处理,再进入下一神经元层。

在上述任一实施例的基础上,在本发明的一个实施例中,如图12所示,所述存算一体化电路还包括:与所述第一信号处理结构40电连接的第一信号存储结构50,所述第一信号存储结构50用于对所述第一信号处理结构40输出的信号进行存储。

需要说明的是,在本发明实施例中,当所述第一信号处理结构40包括多个第一信号处理单元41时,所述第一信号存储结构50可以只包括一个第一信号存储单元51,以使得多个第一信号处理单元41共用同一第一信号存储单元51,也可以如图12所示,包括多个第一信号存储单元51,以使得所述第一信号存储单元51与所述第一信号处理单元41一一对应,各第一信号处理单元41输出的信号分别利用其对应的第一信号存储单元51进行存储,还可以包括多个第一信号存储单元51,所述第一信号存储单元51的数量大于所述第一信号处理单元41的数量,以使得至少一个所述第一信号处理单元对应至少两个第一信号存储单元,从而可以利用所述第一信号存储结构中多余的第一信号存储单元对之前该第一信号处理单元输出的信号进行暂时存储,进而对该第一信号处理单元之前输出的信号和当前输出的信号进行求和或求平均等处理,但本发明对此并不做限定,具体视情况而定。

还需要说明的是,在上述任一实施例中,如果所述第一信号处理单元的输出信号为模拟信号,即所述第一信号处理单元不包括模数转换电路,所述第一信号存储单元为模拟信号存储结构,如电容、电感(带有开关)或其他模拟信号存储结构(或其他模拟信号存储电路)等;如果所述第一信号处理单元输出的信号为数字信号,即所述第一信号处理单元包括模数转换电路,则所述第一信号存储单元为数字信号存储结构,如静态随机存储器(staticrandom-accessmemory,简称sram)、动态随机存储器(dynamicrandomaccessmemory,简称dram)或其他数字信号存储结构(或其他数字信号存储电路)等。

在上述任一实施例的基础上,在本发明的一个实施例中,如图13和图14所示,所述存算一体化电路还包括:与所述第二信号线20的至少一端电连接的第二信号处理结构60,所述第二信号处理结构60用于对所述第二信号线20输出的信号进行接收,以便于对所述第二信号线20输出的信号进行检测和/或预设处理等,其中,所述预设处理包括但不限于电压和电流的转换、积分处理、叠加、差分以及模数转换等。

具体的,在上述实施例的基础上,在本发明的一个实施例中,继续如图13和如图14所示,所述第二信号处理结构60包括多个第二信号处理单元61,所述第二信号处理单元61与所述第二信号线20一一对应,且与其对应的所述第二信号线20电连接,以使得所述存算一体化电路中,每条第二信号线20输出的信号都可以由其各自对应的第二信号处理单元61进行处理,简化所述存算一体化电路工作时的控制难度。

在本发明的另一个实施例中,所述第二信号处理结构包括一个第二信号处理单元和多个第二开关,所述第二开关与所述第二信号线一一对应,所述第二信号处理单元通过各所述第二开关与各所述第二信号线电连接,以利用一个第二信号处理单元对所有第二信号线输出的信号进行接收和处理,简化所述存算一体化电路的结构,并利用所述多个第二开关使得所述第二信号处理结构在同一时刻仅与一条所述第二信号线电连接,对该第二信号线输出的信号进行接收和处理。

需要说明的是,上述实施例仅仅是对所述第二信号处理结构的两种实现方式进行描述,但本发明对此并不做限定,在本发明的其他实施例中,所述第二信号处理结构还可以采用其他实现方式,如所述第二信号处理包括多个第二信号处理单元和多个第二开关,其中,所述第二信号处理单元的数量小于所述第二信号线的数量,所述第二开关的数量也小于所述第二信号线的数量,即所述多个第二信号线中,部分第二信号线电连接至一第二信号处理单元,部分第二信号线连接至另一第二信号处理单元,如果所述多个第二信号处理单元中某一第二信号处理单元电连接多个第二信号线,则电连接至同一第二信号处理单元的多个第二信号线通过第二开关电连接,如果多个第二信号处理单元中某一第二信号处理单元仅电连接至一个第二信号线,该第二信号线可与其对应的第二信号处理单元直接电连接,而无需经过所述第二开关。

在上述任一实施例的基础上,在本发明的一个实施例中,所述第二信号处理单元包括积分器、电阻、电容或模数转换电路等结构中的至少一个,即所述第二信号处理单元61可以是积分器(如图15所示),也可以是一个串联的电阻(如图16所示),还可以是一个串联的电容(如图17所示),或是一个模数转换电路(adc)(如图18所示),或是上述这些结构的组合,本发明对此并不做限定,具体视情况而定。

需要说明的是,由于所述存储单元输出的信号为模拟信号,而模拟信号的处理方式较为有限,处理结构较为复杂,故在上述任一实施例的基础上,在本发明的一个实施例中,所述第二信号处理单元可选为包括模数转换电路,以便于将一层神经元层输出的模拟信号转换为数字信号后,再对该数字信号进行预设处理,从而便于对所述第二信号线输出的信号进行更多的函数处理后,再将其输入给下一层神经元层,从而提高所述存算一体化电路中信号处理方式的灵活性,同时降低处理难度。

还需要说明的是,在上述实施例中,由于所述第二信号线的至少一端设置有第二信号处理结构,故在上述实施例的基础上,在本发明的一个实施例中,如果所述第一信号线10的至少一端不设置有所述第一信号处理结构40,如图13所示,则在本发明实施例中,多个所述第一信号线10作为信号输入线,多个所述第二信号线20作为信号输入线;在本发明的另一个实施例中,如果所述第一信号线10的至少一端设置有第一信号处理结构40,如图14所示,则在本发明实施例中,可以多个所述第一信号线10作为信号输入线,多个所述第二信号线20作为信号输出线,也可以多个所述第二信号线20作为信号输入线,多个所述第一信号线作10为信号输出线,还可以部分第一信号线10作为信号输入线,部分第一信号线10作为信号输出线,部分第二信号线20作为信号输入线,部分第二信号线20作为信号输入线,本发明对此并不做限定,具体视情况而定。

在上述任一实施例的基础上,在本发明的一个实施例中,如图19-图21所示,所述存算一体化电路还包括:与所述第二信号处理结构60电连接的第二信号存储结构70,所述第二信号存储结构70用于对所述第二信号处理结构60输出的信号进行存储。

需要说明的是,在本发明实施例中,当所述第二信号处理结构60包括多个第二信号处理单元61时,所述第二信号存储结构70可以只包括一个第二信号存储单元71,以使得多个第二信号处理单元61共用同一第二信号处理单元71,也可以如图19和图20所示,包括多个第二信号存储单元71,以使得所述第二信号存储单元71与所述第二信号处理单元61一一对应,各第二信号处理单元61输出的信号分别利用其对应的第二信号存储单元71进行存储,还可以包括多个第二信号存储单元71,所述第二信号存储单元71的数量大于所述第二信号处理单元61的数量,以使得至少一个第二信号处理单元对应至少两个第二信号存储单元,从而可以利用所述第二信号存储结构中多余的第二信号存储单元对之前该第二信号处理单元输出的信号进行暂时存储,进而对该第二信号处理单元之前输出的信号和当前输出的信号进行求和或求平均等处理,但本发明对此并不做限定,具体视情况而定。

还需要说明的是,在上述任一实施例中,如果所述第二信号处理单元的输出信号为模拟信号,即所述第二信号处理单元不包括模数转换电路,所述第二信号存储单元为模拟信号存储结构,如电容、电感(带有开关)或其他模拟信号存储结构(或其他模拟信号存储电路)等;如果所述第二信号处理单元输出的信号为数字信号,即所述第二信号处理单元包括模数转换电路,则所述第二信号存储单元为数字信号存储结构,如静态随机存储器(staticrandom-accessmemory,简称sram)、动态随机存储器(dynamicrandomaccessmemory,简称dram)或其他数字信号存储结构(或其他数字信号存储电路)等。

在本发明的另一个实施例中,为了进一步简化所述存算一体化电路的结构,还可以利用所述第一信号存储结构对所述第二信号处理结构输出的信号进行存储,具体的,如图21所示,在本发明实施例中,所述第一信号存储结构50还与所述第二信号处理结构60电连接,用于对所述第二信号处理结构60输出的信号进行存储。需要说明的是,在本发明实施例中,所述第一信号存储结构60可以设置在所述第一信号线10的一端,也可以设置在距离所述第一信号线10一端的一定距离的地方,以便于所述第一信号存储结构50接收所述第二信号处理结构60输出的信号,但本发明对此并不做限定,具体视情况而定。

在上述任一实施例的基础上,在本发明的一个实施例中,如果所述第一信号线10的至少一端电连接所述第一信号处理结构40,所述第二信号线20的至少一端电连接所述第二信号处理结构60,继续如图20和图21所示,则所述存算一体化电路还包括:位于所述第一信号线10与所述第一信号处理结构40之间的第一控制结构80,所述第一控制结构80包括多个第一控制开关81,所述第一控制开关81与所述第一信号线10一一对应,所述第一控制开关81包括电连接所述第一信号线10与所述第一信号处理结构40的第一状态以及断开所述第一信号线10与所述第一信号处理结构40的第二状态。可选的,所述第一控制开关为单刀双掷开关。

具体工作时,当所述第一信号线作为信号输入线时,所述第一控制开关处于第二状态,断开所述第一信号线与所述第一信号处理结构之间的电连接,使得所述第一信号线可以用于信号输入;当所述第一信号线作为信号输出线时,所述第一控制开关处于第一状态,电连接所述第一信号线与所述第一信号处理结构,以便于所述第一信号线输出的信号可以经过所述第一信号处理结构处理后再输出。

同理,继续如图20和图21所示,所述存算一体化电路还包括:位于所述第二信号线20与所述第二信号处理结构60之间的第二控制结构90,所述第二控制结构90包括多个第二控制开关91,所述第二控制开关91与所述第二信号线20一一对应,所述第二控制开关91包括电连接所述第二信号线20与所述第二信号处理结构60的第三状态以及断开所述第二信号线20与所述第二信号处理结构60的第四状态。可选的,所述第二控制开关为单刀双掷开关。

具体工作时,当所述第二信号线作为信号输入线时,所述第二控制开关处于第四状态,断开所述第二信号线与所述第二信号处理结构之间的电连接,使得所述第二信号线可以用于信号输入;当所述第二信号线作为信号输出线时,所述第二控制开关处于第三状态,电连接所述第二信号线与所述第二信号处理结构,以便于所述第二信号线输出的信号可以经过所述第二信号处理结构处理后再输出。

由此可见,本发明实施例所提供的存算一体化电路,可以通过控制所述第一控制结构中各第一控制开关的状态和所述第二控制结构中各第二控制开关的状态,来控制所述存算一体化电路中各存储阵列的信号输入方向,使得多个第一信号线作为信号输入线,多个第二信号线作为信号输出线,或多个第二信号线作为信号输入线,多个第一信号线作为信号输出线,或部分第一信号线作为信号输入线,部分第一信号线作为信号输出线,部分第二信号线作为信号输入线,部分第二信号线作为信号输出线,以使得所述存算一体化电路中存储阵列的划分更灵活,从而便于所述存算一体化电路能够计算更多结构的神经网络。

具体的,如果所述第一控制结构80中的各第一控制开关81处于第一状态,则各第二控制结构90中各第二控制开关91处于第四状态,多个第二信号线作为信号输入线,多个第一信号线作为信号输出线,如图21所示;如果所述第一控制结构中的各第一控制开关处于第二状态,则各第二控制结构中各第二控制开关处于第三状态,多个第一信号线作为信号输入线,多个第二信号线作为信号输出线。

需要说明的是,本发明实施例所提供的存算一体化电路在用于计算多层神经网络时,将神经网络计算所用的权重参数存储到存储单元阵列中,每一层参数占据若干条第一信号线和若干条第二信号线交错形成的单独的一块区域,其中,一层神经元计算的结果可以从对应的第一信号线(或第二信号线)输出,并通过第一信号处理结构和第一信号存储结构(或第二信号处理结构和第二存储结构)后,输入到下一层神经元对应的第一信号线或第二信号线中。

相应的,本发明实施例还提供了一种神经网络的计算方法,应用于上述任一实施例所提供的存算一体化电路,该计算方法包括:

从第一预设信号线输入第一数据,经所述第一预设信号线和第二预设信号线交错形成的权重参数计算后得到第二数据,从所述第二预设信号线输出所述第二数据;

其中,所述第一预设信号线和所述第二预设信号线为多条所述第一信号线和多条所述第二信号线中不同的信号线。

需要说明的是,在本发明实施例中,所述神经网络可以包括一层神经元层,也可以包括多层神经元层,如果所述神经网络包括多层神经元层,以所述神经网络包括两层神经元层为例,该计算方法还包括:

从第三预设信号线输入所述第二数据,经所述第三预设信号线和第四预设信号线交错形成的权重参数计算后得到第三数据,从所述第四预设信号线输出所述第三数据;

其中,所述第三预设信号线和所述第四预设信号线为多条所述第一信号线和多条所述第二信号线中不同的信号线。

在上述实施例的基础上,在本发明的一个实施例中,如果所述存算一体化电路包括与所述第一信号线的至少一端电连接的第一信号处理结构,或所述存算一体化电路包括与所述第一信号线的至少一端电连接的第一信号处理结构以及与所述第一信号处理结构电连接的第一信号存储结构,则多条所述第二信号线作为信号输入线,多条所述第一信号线作为信号输出线,所述第一预设信号线和所述第三预设信号线为所述第二信号线,且为多条所述第二信号线中不同的信号线,所述第二预设信号线和所述第四预设信号线为所述第一信号线,且为多条所述第一信号线中不同的信号线。

具体的,在计算神经网络时,输入层数据(即第一数据,也即第一层神经元层数据)从第一层权重对应的第二信号线(即第一预设信号线)输入,计算所得的第二层神经元层数据(即隐藏层1数据,也即第二数据)从对应的第一信号线(即第二预设信号线)输出,经过所述第一信号处理结构,存储在第一信号存储结构中,然后该第一信号存储结构输出的数据被送入第二层权重对应的第二信号线(即第三预设信号线),计算所得的第三层神经元层数据(即隐藏层2数据,也即第三数据)从对应的第一信号线(即第四预设信号线)输出,经过所述第一信号处理结构,存储在第一信号存储结构,并经所述第一存储结构输出后被送入下一层权重对应的第二信号线中,直至其对应的神经网络计算完成。

在本发明的另一个实施例中,如果所述存算一体化电路包括与所述第二信号线的至少一端电连接的第二信号处理结构,或所述存算一体化电路包括与所述第二信号线的至少一端电连接的第二信号处理结构以及与所述第二信号处理结构电连接的第二信号存储结构,则所述多条第一信号线作为信号输入线,所述多条第二信号线作为信号输出线,所述第一预设信号线和所述第三预设信号线为所述第一信号线,且为多条所述第一信号线中不同的信号线,所述第二预设信号线和所述第四预设信号线为所述第二信号线,且为多条所述第二信号线中不同的信号线。

具体的,在计算神经网络时,如图22所示,输入层数据(即第一数据,也即第一层神经元层数据)从第一层权重对应的第一信号线(即第一预设信号线)输入,计算所得的第二层神经元层数据(即隐藏层1数据,也即第二数据)从对应的第二信号线(即第二预设信号线)输出,经过所述第二信号处理结构,存储在第二信号存储结构中,然后该第二信号存储结构输出的数据被送入第二层权重对应的第一信号线(即第三预设信号线),计算所得的第三层神经元层数据(即隐藏层2数据,也即第三数据)从对应的第二信号线(即第四预设信号线)输出,经过所述第二信号处理结构,存储在第二信号存储结构,并经所述第二存储结构输出后被送入下一层权重对应的第一信号线中,直至其对应的神经网络计算完成。

在本发明的又一个实施例中,所述存算一体化电路包括与所述第一信号线的至少一端电连接的第一信号处理结构,所述存算一体化电路包括与所述第二信号线的至少一端电连接的第二信号处理结构,或所述存算一体化电路包括与所述第一信号线的至少一端电连接的第一信号处理结构以及与所述第一信号处理结构电连接的第一信号存储结构,与所述第二信号线的至少一端电连接的第二信号处理结构以及与所述第二信号处理结构电连接的第二信号存储结构,则:

在本实施例的第一种实现方式中,所述第一预设信号线和所述第三预设信号线为所述第二信号线,且为多条所述第二信号线中不同的信号线,所述第二预设信号线和所述第四预设信号线为所述第一信号线,且为多条所述第一信号线中不同的信号线;

在本实施例的第二种实现方式中,所述第一预设信号线和所述第三预设信号线为所述第一信号线,且为多条所述第一信号线中不同的信号线,所述第二预设信号线和所述第四预设信号线为所述第二信号线,且为多条所述第二信号线中不同的信号线;

在本实施例的第三种实现方式中,所述第一预设信号线为多条所述第一信号线中部分第一信号线,所述第二预设信号线为多条所述第二信号线中部分所述第二信号线,所述第三预设信号线为多条所述第一信号线中部分第一信号线,所述第四预设信号线为多条所述第二信号线中部分所述第二信号线;

在本实施例的第四种实现方式中,所述第一预设信号线为多条所述第一信号线中部分第一信号线,所述第二预设信号线为多条所述第二信号线中部分所述第二信号线,所述第三预设信号线为多条所述第二信号线中部分第二信号线,所述第四预设信号线为多条所述第一信号线中部分所述第一信号线;

在本实施例的第五种实现方式中,所述第一预设信号线为多条所述第二信号线中部分第二信号线,所述第二预设信号线为多条所述第一信号线中部分所述第一信号线,所述第三预设信号线为多条所述第二信号线中部分第二信号线,所述第四预设信号线为多条所述第一信号线中部分所述第一信号线;

在本实施例的第六种实现方式中,所述第一预设信号线为多条所述第二信号线中部分第二信号线,所述第二预设信号线为多条所述第一信号线中部分所述第一信号线,所述第三预设信号线为多条所述第一信号线中部分第一信号线,所述第四预设信号线为多条所述第二信号线中部分所述第二信号线。

具体的,在本发明的一个实施例中,所述多条第一信号线中部分第一信号线作为信号输入线,部分第一信号线作为信号输出线,所述多条第二信号线中部分第二信号线作为信号输出线,部分第二信号线作为信号输入线,如图23所示,输入层数据(即第一数据,也即第一层神经元层数据)从第一层权重对应的第一信号线(第一预设信号线)输入,计算所得的第二层神经元层数据(即隐藏层1数据,也即第二数据)从对应的第二信号线(第二预设信号线)输出,经过所述第二信号处理结构,存储在第二信号存储结构中,然后该第二信号存储结构输出的数据(即第二数据)被送入第二层权重对应的第二信号线(即第三预设信号线),计算所得的第三层神经元层数据(即隐藏层2数据,也即第三数据)从对应的第一信号线(即第四预设信号线)输出,经过所述第一信号处理结构,存储在第一信号存储结构,并经所述第一存储结构输出后被送入下一层权重对应的信号输入线中,直至其对应的神经网络计算完成。

在本发明的其他实施例中,所述存算一体化电路还可以利用所述多条第二信号线作为信号输入线,所述多条第一信号线作为信号输出线,由于其原理与所述多条第一信号线作为信号输入线,所述多条第二信号线作为信号输出线相似,本发明对此不再举例描述。

需要说明的是,对于同一组第一信号线和同一组第二信号线组成的存储单元阵列,第一数据从所述第一信号线输入,计算所的第二数据从所述第二信号线输出与所述第一数据从第二信号线输入,计算所得的第二数据从所述第一信号线输出时对应的所述第一数据和第二数据可能不同。

具体的,如果a条第一信号线和b条第二信号线交错组成存储单元阵列,其中,a、b不相等,对于该存储单元阵列,如果第一信号线作为信号输入线,所述第二信号线作为信号输出线,则所述第一数据为长度为a的数列,如果所述第二信号线作为信号输入线,所述第一信号线作为信号输出线,则所述第一数据为长度为b的数列。

在上述任一实施例的基础上,在本发明的一个可选实施例中,所述存储单元阵列中未使用的存储单元的数值写为0,以免对所述存算一体化电路的计算产生干扰。

由上所述可知,本发明实施例所提供的存算一体化电路,在用于神经网络的计算时,可以在总体权重数不超过所述存储单元阵列大小的前提下,自由地配置神经网络的神经元数和每层神经元层内节点数以及自由地选择每层隐藏层是全连接层还是卷积层,以在存储单元数量冗余较小,成本较低的前提下,尽可能的增加所述存算一体化电路所能计算的神经元层数目范围和每一神经元内节点数目范围,从而增加所述存算一体化电路所能计算的神经网络结构数量。

另外,本发明实施例所提供的存算一体化电路中,所述第一信号线电连接第一信号处理结构和/或所述第二信号线和电连接第二信号处理结构时,可以很方便的对每一神经元层的计算结果进行检测,有利于提高计算结果的准确性。

本说明书中各个部分采用递进的方式描述,每个部分重点说明的都是与其他部分的不同之处,各个部分之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1