一种高效的神经网络电路架构和方法技术

技术编号:21479320 阅读:17 留言:0更新日期:2019-06-29 05:11
本发明专利技术公开一种高效的神经网络电路架构和方法,其中神经网络电路架构包括读请求仲裁单元、写请求仲裁单元、两个以上的模块读数控制单元、两个以上的模块写数控制单元、一个以上的多路选通单元、两个以上的神经网络运算模块,读请求仲裁单元与模块读数控制单元分别连接。本发明专利技术可以实现每个神经网络运算模块单独运算并与存储器进行交互,也可以实现多个神经网络运算模块的互联工作,这样可以适应不同情况的神经网络运算。

【技术实现步骤摘要】
一种高效的神经网络电路架构和方法
本专利技术涉及神经网络领域,尤其涉及一种高效的神经网络电路架构和方法。
技术介绍
当前的神经网络加速电路都是按照网络层进行运算,基本的流程就是先进行网络层参数配置,然后开始取数和运算直到该层运算结束后,发出中断给CPU,然后CPU再配置下一层的参数,再开始工作。这样有一个问题就是加速电路中的各个子模块都是串行工作,在每一层网络的运算过程中总会出现不同程度的空闲,这对大幅降低了加速电路的运行效率。同时由于神经网络的发展迅速,各种网络结构层出不穷,因此按照经典CNN设计的加速电路经常会遇到网络层只需求其中一个或者几个运算的情况,比如某层网络只需要激活运算,或者只需要池化运算,这就造成了运算资源的浪费。
技术实现思路
为此,需要提供一种高效的神经网络电路架构和方法,解决现有神经网络模块资源浪费、运行效率不高的问题。为实现上述目的,专利技术人提供了一种高效的神经网络电路架构,包括读请求仲裁单元、写请求仲裁单元、两个以上的模块读数控制单元、两个以上的模块写数控制单元、一个以上的多路选通单元、两个以上的神经网络运算模块,读请求仲裁单元与模块读数控制单元分别连接,每个模块读数控制单元分别与一个神经网络运算模块单独连接,上一级的神经网络运算模块的输出端与多路选通单元连接,多路选通单元的两个输出端分别与一个模块写数控制单元和下一级的神经网络运算模块连接,模块写数控制单元分别与写请求仲裁单元连接,其中:读请求仲裁单元用于根据读优先级配置对各个模块读数控制单元的读请求进行仲裁,并把仲裁胜出者的读请求送往存储器进行数据读取;写请求仲裁单元用于根据写优先级配置对各个模块读数控制单元的写请求进行仲裁,并把仲裁胜出者的写请求送往存储器进行数据写入;神经网络运算模块用于进行神经网络运算,并将运算结果发送到与之连接的多路选通单元;多路选通单元用于根据配置决定将数据送往下一级神经网络运算模块或者是与之连接的模块写数控制单元;读数控制单元用于从存储器取数;写数控制单元用于存入存储器。进一步地,还包括寄存器选通控制单元和两个配置寄存器,所述寄存器选通控制单元与神经网络运算模块连接;配置寄存器用于存储神经网络配置信息;寄存器选通控制单元用于获取与之连接的模块工作完成的信号后,从当前选择的配置寄存器切换到另一个配置寄存器。进一步地,还包括处理器,所述处理器用于获取神经网络运算模块的完成信号,将下一层的神经网络配置信息更新到已被读取的配置寄存器。进一步地,所述处理器用于在下一层要进入神经网络运算模块联合工作时,在神经网络运算模块运算完成后暂停配置寄存器的切换直到所有的神经网络运算模块运算完成。进一步地,神经网络运算模块包括卷积乘加运算模块、激活运算模块或者池化运算模块;卷积乘加运算模块用于进行神经网络的卷积运算;激活运算模块用于进行神经网络的激活函数运算;池化运算模块用于进行神经网络的池化运算。本专利技术提供一种高效的神经网络运算方法,用于神经网络运算电路,神经网络运算电路包括读请求仲裁单元、写请求仲裁单元、两个以上的模块读数控制单元、两个以上的模块写数控制单元、一个以上的多路选通单元、两个以上的神经网络运算模块,读请求仲裁单元与模块读数控制单元分别连接,每个模块读数控制单元分别与一个神经网络运算模块单独连接,上一级的神经网络运算模块的输出端与多路选通单元连接,多路选通单元的两个输出端分别与一个模块写数控制单元和下一级的神经网络运算模块连接,模块写数控制单元分别与写请求仲裁单元连接,其中本方法包括如下步骤:读数控制单元从存储器取数;读请求仲裁单元根据读优先级配置对各个模块读数控制单元的读请求进行仲裁,并把仲裁胜出者的读请求送往存储器进行数据读取;神经网络运算模块进行神经网络运算,并将运算结果发送到与之连接的多路选通单元;多路选通单元根据配置决定将数据送往下一级神经网络运算模块或者是与之连接的模块写数控制单元;写数控制单元用于存入存储器;写请求仲裁单元用于根据写优先级配置对各个模块读数控制单元的写请求进行仲裁,并把仲裁胜出者的写请求送往存储器进行数据写入。进一步地,神经网络运算电路还包括寄存器选通控制单元和两个配置寄存器,所述寄存器选通控制单元与神经网络运算模块连接;所述方法还包括步骤:配置寄存器存储神经网络配置信息;寄存器选通控制单元获取与之连接的模块工作完成的信号后,从当前选择的配置寄存器切换到另一个配置寄存器。进一步地,神经网络运算电路还包括处理器;所述方法还包括步骤:所述处理器获取神经网络运算模块的完成信号,将下一层的神经网络配置信息更新到已被读取的配置寄存器。进一步地,所述方法还包括步骤:所述处理器在下一层要进入神经网络运算模块联合工作时,在神经网络运算模块运算完成后暂停配置寄存器的切换直到所有的神经网络运算模块运算完成。进一步地,神经网络运算模块包括卷积乘加运算模块、激活运算模块或者池化运算模块;所述方法还包括步骤:卷积乘加运算模块进行神经网络的卷积运算;激活运算模块进行神经网络的激活函数运算;池化运算模块进行神经网络的池化运算。区别于现有技术,上述技术方案通过读请求仲裁单元、写请求仲裁单元、模块读数控制单元、模块写数控制单元以及多路选通单元,可以实现每个神经网络运算模块单独运算并与存储器进行交互,也可以实现多个神经网络运算模块的互联工作,这样可以适应不同情况的神经网络运算,避免神经网络运算资源出现浪费的情况,同时运算后的数据可以直接存储到存储器,也提高了效率。附图说明图1为一具体实施方式所述的电路结构示意图;图2为本专利技术改进前后的时间消耗对比图;图3为本专利技术一实施例的方法流程图。附图标记说明:101、读请求仲裁单元;102、写请求仲裁单元;103、模块读数控制单元;104、模块写数控制单元;105、多路选通单元;115、卷积乘加运算模块;116、激活运算模块;117、池化运算模块;108、寄存器选通控制单元;109、配置寄存器;110、处理器;120、存储器。具体实施方式为详细说明技术方案的
技术实现思路
、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。请参阅图1到图3,本实施例提供一种高效的神经网络电路架构,包括读请求仲裁单元101、写请求仲裁单元102、两个以上的模块读数控制单元103、两个以上的模块写数控制单元104、一个以上的多路选通单元105、两个以上的神经网络运算模块。神经网络运算模块即用于完成神经网络运算的模块,包括卷积乘加运算模块115、激活运算模块116或者池化运算模块117;当然,随着神经网络的发展,也可以包含更多的模块,这些神经网络运算模块都可以分别连接有一个模块读数控制单元和一个多路选通单元以及多路选通单元再连接一个模块写数控制单元。读请求仲裁单元与模块读数控制单元分别连接,每个模块读数控制单元分别与一个神经网络运算模块单独连接,上一级的神经网络运算模块的输出端与多路选通单元连接,多路选通单元的两个输出端分别与一个模块写数控制单元和下一级的神经网络运算模块连接,模块写数控制单元分别与写请求仲裁单元连接。其中:读请求仲裁单元用于根据读优先级配置对各个模块读数控制单元的读请求进行仲裁,并把仲裁胜出者的读请求送往存储器120进行数据读取;写请求仲裁单元用于根据写优先级配置对本文档来自技高网
...

【技术保护点】
1.一种高效的神经网络电路架构,其特征在于:包括读请求仲裁单元、写请求仲裁单元、两个以上的模块读数控制单元、两个以上的模块写数控制单元、一个以上的多路选通单元、两个以上的神经网络运算模块,读请求仲裁单元与模块读数控制单元分别连接,每个模块读数控制单元分别与一个神经网络运算模块单独连接,上一级的神经网络运算模块的输出端与多路选通单元连接,多路选通单元的两个输出端分别与一个模块写数控制单元和下一级的神经网络运算模块连接,模块写数控制单元分别与写请求仲裁单元连接,其中:读请求仲裁单元用于根据读优先级配置对各个模块读数控制单元的读请求进行仲裁,并把仲裁胜出者的读请求送往存储器进行数据读取;写请求仲裁单元用于根据写优先级配置对各个模块读数控制单元的写请求进行仲裁,并把仲裁胜出者的写请求送往存储器进行数据写入;神经网络运算模块用于进行神经网络运算,并将运算结果发送到与之连接的多路选通单元;多路选通单元用于根据配置决定将数据送往下一级神经网络运算模块或者是与之连接的模块写数控制单元;读数控制单元用于从存储器取数;写数控制单元用于存入存储器。

【技术特征摘要】
1.一种高效的神经网络电路架构,其特征在于:包括读请求仲裁单元、写请求仲裁单元、两个以上的模块读数控制单元、两个以上的模块写数控制单元、一个以上的多路选通单元、两个以上的神经网络运算模块,读请求仲裁单元与模块读数控制单元分别连接,每个模块读数控制单元分别与一个神经网络运算模块单独连接,上一级的神经网络运算模块的输出端与多路选通单元连接,多路选通单元的两个输出端分别与一个模块写数控制单元和下一级的神经网络运算模块连接,模块写数控制单元分别与写请求仲裁单元连接,其中:读请求仲裁单元用于根据读优先级配置对各个模块读数控制单元的读请求进行仲裁,并把仲裁胜出者的读请求送往存储器进行数据读取;写请求仲裁单元用于根据写优先级配置对各个模块读数控制单元的写请求进行仲裁,并把仲裁胜出者的写请求送往存储器进行数据写入;神经网络运算模块用于进行神经网络运算,并将运算结果发送到与之连接的多路选通单元;多路选通单元用于根据配置决定将数据送往下一级神经网络运算模块或者是与之连接的模块写数控制单元;读数控制单元用于从存储器取数;写数控制单元用于存入存储器。2.根据权利要求1所述的一种高效的神经网络电路架构,其特征在于:还包括寄存器选通控制单元和两个配置寄存器,所述寄存器选通控制单元与神经网络运算模块连接;配置寄存器用于存储神经网络配置信息;寄存器选通控制单元用于获取与之连接的模块工作完成的信号后,从当前选择的配置寄存器切换到另一个配置寄存器。3.根据权利要求2所述的一种高效的神经网络电路架构,其特征在于:还包括处理器,所述处理器用于获取神经网络运算模块的完成信号,将下一层的神经网络配置信息更新到已被读取的配置寄存器。4.根据权利要求3所述的一种高效的神经网络电路架构,其特征在于:所述处理器用于在下一层要进入神经网络运算模块联合工作时,在神经网络运算模块运算完成后暂停配置寄存器的切换直到所有的神经网络运算模块运算完成。5.根据权利要求1到4任一项所述的一种高效的神经网络电路架构,其特征在于:神经网络运算模块包括卷积乘加运算模块、激活运算模块或者池化运算模块;卷积乘加运算模块用于进行神经网络的卷积运算;激活运算模块用于进行神经网络的激活函数运算;池化运算模块用于进行神经网络的池化运算。6.一种高效的神经网络运算方法,用于神经网络运算电路,其特征在...

【专利技术属性】
技术研发人员:廖裕民强书连
申请(专利权)人:福州瑞芯微电子股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1