[发明专利]一种基于SOC的数据复用卷积神经网络加速器有效
申请号: | 201711207259.3 | 申请日: | 2017-11-27 |
公开(公告)号: | CN108171317B | 公开(公告)日: | 2020-08-04 |
发明(设计)人: | 秦智勇;陈雷;于立新;庄伟;彭和平;倪玮琳;张世远 | 申请(专利权)人: | 北京时代民芯科技有限公司;北京微电子技术研究所 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06T1/60 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 庞静 |
地址: | 100076 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种基于SOC的数据复用卷积神经网络加速器,本方法提出对卷积神经网络的图像输入、权重参数以及偏置参数等输入数据进行分组,将大量的输入数据划分为可复用的块数据,并通过控制状态机实现复用数据块的读取。卷积神经网络参数量大、所需计算能力强,因此卷积神经网络加速器需要提供很大的数据带宽以及计算能力。本发明对大负载进行了可复用切分,并通过控制单元以及地址产生单元实现数据的复用,减小了卷积神经网络运算的延迟以及所需带宽,提高了运算效率。 | ||
搜索关键词: | 一种 基于 soc 数据 卷积 神经网络 加速器 | ||
主控制模块主控制模块,接收外部输入的启动控制信号,之后,根据预设的卷积神经网络加速器各层卷积运算的时间和全连接运算时间,按照预设时序,将卷积、池化和全连接运算过程都分成多个层运算,每个层运算分为多个块运算,在层运算开始之前,向写控制状态机发送写控制启动指令,当前层运算所需数据全部写入相应的缓冲区后,向写控制状态机发出写控制停止信号;在层运算开始时刻,向权重读控制状态机、偏置读控制状态机、图像读控制状态机发送权重读控制启动信号,向移位逻辑发送移位控制信号和层运算序号;在层运算结束时刻和块运算结束时刻,向权重读控制状态机、偏置读控制状态机、图像读控制状态机,发送层运算结束标志和块运算结束标志信号,向移位逻辑发送的移位控制信号和层运算序号;
权重控制状态机、偏置控制状态机、图像控制状态机和写控制状态机,在主控制模块的控制下,分别向权重缓存区、偏置缓存区、图像缓存区输出相应的读使能信号、写使能信号和片选信号,向权重地址生成器、偏置地址生成器、图像地址生成器输出相应的地址控制信号,权重地址生成器、偏置地址生成器、图像地址生成器根据地址控制信号产生相应的读写地址。
3.根据权利要求1所述的一种基于SOC的数据复用卷积神经网络加速器,其特征在于所述图像缓存以及权重缓存均为分组存储结构,图像缓存区和权重缓存区分成M个子缓存区,M个子缓存区的片选控制端、读写使能端并联连接,地址线相互独立,各子缓存区相对应地址用来存储一个一次块运算所需要的图像数据或者权重数据,同时写入或读出,M为一次块运算所对应的最大图像数据大小。4.根据权利要求1所述的一种基于SOC的数据复用卷积神经网络加速器,其特征在于权重地址生成器、偏置地址生成器包括计数器,计数器的计数值作为地址输出至相应的缓冲区,当地址复位信号“有效”时,计数器的计数值清零;当地址保持信号有效时,计数器的计数值不变;当地址递增信号有效时,计数器的计数值加1。5.根据权利要求1所述的一种基于SOC的数据复用卷积神经网络加速器,其特征在于图像地址生成器,包括读地址生成模块、写地址生成模块、读写地址选通模块;写地址生成模块,包括计数器,计数器的计数值作为图像写地址输出至读写地址选通模块,当地址复位信号“有效”时,计数器的计数值清零;当地址保持信号有效时,计数器的计数值不变;当地址递增信号有效时,计数器的计数值加1。
读地址生成模块,包括R个读地址生成子模块,所述R为层数。每个读地址生成子模块用来控制产生一次层运算中的所有块运算所需要的地址,根据层序号选通相应层的读地址生成子模块,对于某一层的处理,输入为三维图像数据,首先沿图像通道方向递增地址,当图像通道方向数据读取完成,按图像二维平面换列方向递增地址后,继续沿图像通道方向递增地址,当图像二维平面换列方向和图像通道方向数据均读取完成,按图像二维平面换行方向递增地址,继续沿图像通道方向递增地址,直到整块数据处理完成。
6.根据权利要求1所述的一种基于SOC的数据复用卷积神经网络加速器,其特征在于所述图像数据包括X*Y*N块,X表示在行方向的块数,X表示在列方向的块数,N表示在通道方向的块数;每次从外部读取一块三维图像数据存入M个子缓冲区内,每个子缓冲区对应存入三维数据块中的一个元素,提取数据块的顺序如下:(1)、初始化数据块的行序号i为1,列序号j为1,通道序号k为1;
(2)、依次读取行序号为i,列序号j,通道序号为k的数据块;
(3)、将k加1更新k,重复执行步骤(2)~(3),直到k大于等于N,进入步骤(4);
(4)、将j加1更新j,令k等于1,重复执行步骤(2)~(4),直到j大于等于Y,k大于等于N进入步骤(5);
(5)、将i加1更新i,k=1,j=1,重复执行步骤(2)~(5),直到i大于等于X,j大于等于Y,k大于等于N,结束。
7.根据权利要求1所述的一种基于SOC的数据复用卷积神经网络加速器,其特征在于卷积运算时,移位逻辑根据卷积层序号,由此确定卷积运算时二维平面方向两个维度的大小,根据这两个维度的大小变更图像数据组成的序列顺序,并根据控制单元发出的移位控制信号确定图像数据序列移位的多少,使得进入至计算单元阵列的每次块运算的图像数据与权重数据对齐,在池化或者全连接处理时,移位逻辑直接将缓冲区中的图像数据输出到计算单元阵列。8.根据权利要求1所述的一种基于SOC的数据复用卷积神经网络加速器,其特征在于所述计算单元阵列包括乘法器阵列、加法器树、累加器、非线性单元和选通输出单元,其中:乘法器阵列,将图像数据与权重相乘;
加法器树,将乘法器阵列的所有乘积项相加,结果输出到累加器;
累加器,块运算结束时清零,对加法器树输出的结果进行累加,并将累加结果作为卷积结果输出至非线性单元
非线性单元,对卷积结果进行池化处理,并输出,例如:比较累加结果与0,取较大值输出;
选通输出单元,接收控制单元发送的输出选通信号,选通卷积结果或者池化结果输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京时代民芯科技有限公司;北京微电子技术研究所,未经北京时代民芯科技有限公司;北京微电子技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711207259.3/,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置