当前位置: 首页 > 专利查询>陈小柏专利>正文

一种基于乒乓RAM的条带阵列的卷积模块及其运算方法技术

技术编号:23099440 阅读:25 留言:0更新日期:2020-01-14 20:39
本发明专利技术公开了一种基于乒乓RAM的条带阵列卷积模块及其运算方法,其中所述卷积模块包括直接内存访问模块DMA、DMA控制器、数据分流模块、乒乓RAM、RAM读取模块、条带列阵模块、块累加模块、寄存器模块;所述由DMA控制器用于控制DMA从内存中读取数据,所述数据包括特征feature、权重weight;数据经过数据分流模块将特征feature和权重weight分离,然后存入乒乓RAM;所述RAM读取模块从乒乓RAM读取特征feature和权重weight给到条带阵列模块进行运算处理,运算结果经过块累加模块输出;所述寄存器模块用于接收来自中央处理器配置的寄存器控制所述的卷积模块运算。本发明专利技术能提高乘法器的利用率,同时能兼容不同大小的卷积核。

A convolution module of strip array based on ping pong ram and its operation method

【技术实现步骤摘要】
一种基于乒乓RAM的条带阵列的卷积模块及其运算方法
本专利技术涉及人工智能
,更具体的,涉及一种基于乒乓RAM的条带阵列的卷积模块及其运算方法。
技术介绍
卷积神经网络(CNN)是深度学习的重要算法,在计算机视觉特别是图像识领域有着非常广泛的应用。目前几乎所有的识别和检测问题都把卷积神经网络作为首选方法,世界上各个IT巨头也都争相展开了相关研究。从计算机的角度来看,图像实际上是一个二维矩阵,卷积神经网络所做的工作就是采用卷积、池化等操作从二维数组中提取特征,并对图像进行识别。理论上来说,只要是能转换成二维矩阵的数据,都可以利用卷积神经网络来识别和检测。比如声音文件,可以分割成很短的分段,每段音阶的高低可以转换成数字,这样整段的声音文件就可以转换为二维矩阵,类似的还有自然语言中的文本数据,医药实验中的化学数据等等,都可以利用卷积神经网络来实现识别和检测。卷积是卷积神经网络最核心的概念,也是其名称的由来。卷积用来提取图像的局部特征,它是一个数学计算方法,如图1、图2所示,图中不带有×1、×0的网格组成的矩阵是输入图像叫做输入特征feature,带有×1、×0的网格组成的矩阵是卷积核叫做权重weight,图1、图2中的右子图表示的矩阵是计算得到的卷积特征叫做输出特征feature。卷积操作实际上用卷积核在图像矩阵上滑动,对卷积核矩阵与图像矩阵中对应位置做以下计算:对应元素相乘后求和。输入特征的矩阵以一定的步长在权重的矩阵上滑动,每次卷积计算的结果填入输出特征的矩阵,最后得到特征矩阵。传统的卷积方式有脉动阵列,脉动阵列固定一个卷积核大小的乘法阵列,然后兼容比它更小的卷积核运算,该方法结构简单,但是缺陷也很明显,结构太固化,改变卷积核大小时,乘法器利用率很低,无法兼容更多的卷积核大小。
技术实现思路
本专利技术为了解决传统的卷积模块乘法器利用率低下,无法兼容更多的卷积核大小的问题,提供了一种基于乒乓RAM的条带阵列卷积模块及其运算方法,其能提高乘法器的利用率,同时能兼容不同大小的卷积核。为实现上述本专利技术目的,采用的技术方案如下:一种基于乒乓RAM的条带阵列卷积模块,包括直接内存访问模块DMA、DMA控制器、数据分流模块、乒乓RAM、RAM读取模块、条带列阵模块、块累加模块、寄存器模块;所述DMA控制器用于控制DMA从存储器中读取数据,所述数据包括特征feature、权重weight;数据经过数据分流模块将特征feature和权重weight分离,然后分别存入乒乓RAM;所述RAM读取模块从乒乓RAM读取特征feature和权重weight给到条带阵列模块进行运算处理,运算结果经过块累加模块输出;所述寄存器模块用于接收来自中央处理器配置的寄存器控制所述的卷积模块运算。优选地,所述条带阵列模块包括Mk个PE运算单元,所述的PE运算单元包括Tk*Tk/2个乘法器;所述条带阵列模块一共设有Mk*Tk*Tk/2个乘法器。进一步地,所述乒乓RAM包括特征RAM、权重RAM;所述特征RAM包括两个连续输出RAM,分别记为ramA、ramB,其中所述连续输出RAM包括Mk个子RAM;所述权重RAM包括ramA′、ramB′。基于以上所述的基于乒乓RAM的条带阵列卷积模块,本专利技术还提供一种基于乒乓RAM的条带阵列卷积模块的运算方法,所述运算方法包括步骤如下:S1:设置权重weight单个卷积核寸尺为size×size;其中,size=1、2、3….n,条带阵列的PE运算单元的数量为Mk;S2:特征Feature和权重weight按照N通道排列方式预先存储在存储器中,其中存储器存储的特征为三维矩阵,其宽度为Wi,高度为Hi,总通道数量为C,即特征的所有N通道累加和等于C,且设置每个N通道的特征Feature在存储器里面按连续地址存储;S3:DMA从高度H方向、通道C方向对特征Feature进行分割,得到对应Cm×Hm份子特征,其中m为正整数;S4:所述DMA控制器计算每一份子特征的地址、权重的地址,并通过DMA从内存读取子特征、权重,通过数据分流模块将子特征、权重进行分离;S5:将子特征分成Mk份,缓存在连续输出RAM中的Mk个子RAM中,其中,每个子RAM中存有1/Mk份子特征的数据;同时权重缓存在权重RAM中;S6:RAM读取模块根据地址计算公式计算连续输出RAM中Mk个子RAM中的数据,顺序读取并组成一份子特征;同时RAM读取模块读取在权重RAM中的权重;S7:所述PE运算单元获取RAM读取模块输入的子特征、权重;PE运算单元中的乘法器对输入的子特征、权重进行乘法运算,得到相应的运算结果;S8:块累加模块对高度H方向子特征的运算结果进行累加后输出。优选地,所述N为2的次幂。进一步地,步骤S5,所述子特征缓存在特征RAM的具体步骤如下:A1:所述DMA读取上个地址的子特征分成Mk份,分别存入ramA中Mk个子RAM中,其中每个子RAM存有1/Mk份子特征的数据;A2:在RAM读取模块根据地址计算公式,顺序读取出ramA中Mk个子RAM中数据,组成子特征的同时,DMA将下个地址的子特征分成Mk份,分别存入ramB中Mk个子RAM,其中每个子RAM存有1/Mk份子特征的数据;A3:当RAM读取模块读取完ramA中的子特征后,接着RAM读取模块根据地址计算公式,顺序读取ramB中Mk个子RAM中数据,组成子特征;A4:重复以上步骤,直到读取完子特征。进一步地,步骤S5,所述权重缓存在权重RAM中的具体步骤如下:B1:所述DMA读取上个地址的权重存入ramA′;B2:在PE运算单元通过RAM读取模块读取ramA′中的权重的同时,DMA将下个地址的权重存入ramB′;B3:当PE运算单元读取完ramA′中的权重后,接着读取ramB′中的权重;B4:重复以上步骤,直到读取完权重。进一步地,步骤S6,所述地址计算公式如下:将address=(wr_addr/Mk)Wri-1_en=((wr_addr%Mk)=i-1)写入第i-1个子RAM中;其中i=1、2、…、Mk;wr_addr表示写进子RAM的地址,Wri-1_en表示第i-1个子RAM的写使能信号;条带列阵读取数据,即连续输出RAM连续输出Mk个连续数据地址和与地址对应的数据具体如下:address=(rd_addr/Mk)+((rd_addr/Mk)>0)rdi-1_en=i-1其中,rd_addr表示读子RAM的地址,rdi-1_en表示第i-1个子RAM的读使能信号。在进一步地,步骤S8,所述乘法器运算法则如下:对权重C左移16位再加上下一个地址的权重B,然后再跟子特征A相乘,得到的结果低16bit是特子征A*权重B的结果,高位则是子特征A*权重C的结果,最后将这两个乘法结果分离出来各自累加;所本文档来自技高网
...

【技术保护点】
1.一种基于乒乓RAM的条带阵列卷积模块,其特征在于:包括直接内存访问模块DMA、DMA控制器、数据分流模块、乒乓RAM、RAM读取模块、条带列阵模块、块累加模块、寄存器模块;/n所述DMA控制器用于控制DMA从存储器中读取数据,所述数据包括特征feature、权重weight;数据经过数据分流模块将特征feature和权重weight分离,然后存入乒乓RAM;所述RAM读取模块从乒乓RAM读取特征feature和权重weight给到条带阵列模块进行运算处理,运算结果经过块累加模块输出;/n所述寄存器模块用于接收来自中央处理器配置的寄存器控制所述的卷积模块运算。/n

【技术特征摘要】
1.一种基于乒乓RAM的条带阵列卷积模块,其特征在于:包括直接内存访问模块DMA、DMA控制器、数据分流模块、乒乓RAM、RAM读取模块、条带列阵模块、块累加模块、寄存器模块;
所述DMA控制器用于控制DMA从存储器中读取数据,所述数据包括特征feature、权重weight;数据经过数据分流模块将特征feature和权重weight分离,然后存入乒乓RAM;所述RAM读取模块从乒乓RAM读取特征feature和权重weight给到条带阵列模块进行运算处理,运算结果经过块累加模块输出;
所述寄存器模块用于接收来自中央处理器配置的寄存器控制所述的卷积模块运算。


2.根据权利要求1所述的基于乒乓RAM的条带阵列卷积模块,其特征在于:所述条带阵列模块包括Mk个PE运算单元,所述的PE运算单元包括Tk*Tk/2个乘法器。


3.根据权利要求2所述的基于乒乓RAM的条带阵列卷积模块,其特征在于:所述乒乓RAM包括特征RAM、权重RAM;所述特征RAM包括两个连续输出RAM,分别记为ramA、ramB,其中所述连续输出RAM包括Mk个子RAM;所述权重RAM包括ramA′、ramB′。


4.一种基于权利要求1~3任一项所述的基于乒乓RAM的条带阵列卷积模块的运算方法,其特征在于:所述运算方法包括步骤如下:
S1:设置权重weight单个卷积核寸尺为size×size;其中,size=1、2、3….n,条带阵列的PE运算单元的数量为Mk;
S2:特征Feature和权重weight按照N通道排列方式预先存储在存储器中,其中存储器存储的特征为三维矩阵,其宽度为Wi,高度为Hi,总通道数量为C,即特征的所有N通道累加和等于C,且设置每个N通道的特征Feature在存储器里面按连续地址存储;
S3:DMA从高度H方向、通道C方向对特征Feature进行分割,得到对应Cm×Hm份子特征,其中m为正整数;
S4:所述DMA控制器计算每一份子特征的地址、权重的地址,并通过DMA从内存读取子特征、权重,通过数据分流模块将子特征、权重进行分离;
S5:将子特征分成Mk份,缓存在连续输出RAM中的Mk个子RAM中,其中,每个子RAM中存有1/Mk份子特征的数据;同时权重缓存在权重RAM中;
S6:RAM读取模块根据地址计算公式计算连续输出RAM中Mk个子RAM中的数据,顺序读取并组成一份子特征;同时RAM读取模块读取在权重RAM中的权重;
S7:所述PE运算单元获取RAM读取模块输入的子特征、权重;PE运算单元中的乘法器对输入的子特征、权重进行乘法运算,得到相应的运算结果;
S8:块累加模块对高度H方向子特征的运算结果进行累加后输出。


5.基于权利要求4所述的基于乒乓RAM的条带阵列卷积模块的运算方法,其特征在于:所述N为2的次幂。


6.根据权利要求4所述的基于乒乓RAM的条带阵列卷积模块的运算方法,其特征在于:步骤S5,所述子特征缓存在特征RAM的具体步骤如下:
A1:所述DMA读取上个地址的子特征分成Mk份,分别存入ramA中Mk个子RAM中,其中每个子RAM存有1/Mk份子特征的数据;<...

【专利技术属性】
技术研发人员:陈小柏赖青松
申请(专利权)人:陈小柏
类型:发明
国别省市:广东;44

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

1