卷积运算芯片和通信设备的制作方法

文档序号:12665874阅读:来源:国知局

技术特征:

1.一种卷积运算芯片,其特征在于,包括数据缓存模块、M×N乘法累加器阵列和输出控制模块,其中,

所述数据缓存模块用于向所述M×N乘法累加器阵列中的第一乘法累加窗口传输用于卷积运算的多个卷积数据和多个卷积参数,其中,所述多个卷积参数由所述数据缓存模块根据第一卷积参数矩阵确定,所述多个卷积数据由所述数据缓存模块根据第一卷积数据矩阵确定,所述第一卷积参数矩阵为A行B列,所述第一卷积数据矩阵为D行E列,所述第一乘法累加窗口为A行C列,A为大于或等于2的整数,B和C均为大于或等于1的整数,D为大于或等于A的正整数,E为大于或等于max(B,C)的整数,M为大于或等于A的正整数,N为大于或等于C的正整数;

所述第一乘法累加窗口包括A×C个处理单元,第i行第j列的处理单元标记为PEi,j,i按照从小到大的顺序每次取一个整数,依次从1取值到A,对应于i的每一取值,j按照从小到大的顺序每次取一个整数,依次从1取值到C;所述第一乘法累加窗口的处理单元PEX,Y用于将PEX,Y的卷积数据和PEX,Y的卷积参数进行乘法运算,当C大于或等于2时,所述处理单元PEX,Y还用于将所述PEX,Y的卷积参数传输至PEX,Y+1,将所述PEX,Y的卷积数据传输至PEX-1,Y+1,分别作为所述PEX,Y+1和所述PEX-1,Y+1进行乘法运算的乘数,其中,X为大于或等于2且小于或等于A的整数,Y为大于或等于1且小于或等于C-1的整数,所述PEX,Y的卷积数据为所述数据缓存模块传输的所述多个卷积数据中的一个卷积数据,所述PEX,Y的卷积参数为所述数据缓存模块传输的所述多个卷积参数中的一个卷积参数;

所述第一乘法累加窗口用于将PEi,J进行乘法运算得到的乘积进行加法运算以获得卷积结果,其中,J为大于或等于1且小于或等于C的整数;

所述输出控制模块用于输出所述卷积结果。

2.根据权利要求1所述的卷积运算芯片,其特征在于,所述卷积运算芯片还包括:

阵列控制模块,用于从所述M×N乘法累加器阵列中确定用于卷积运算的所述第一乘法累加窗口,其中,根据所述第一卷积参数矩阵的行数确定所述第一乘法累加窗口的行数,根据所述第一卷积参数矩阵的行数和所述第一卷积数据矩阵的行数确定所述第一乘法累加窗口的列数。

3.根据权利要求2所述的卷积运算芯片,其特征在于,所述阵列控制模块具体根据如下公式确定所述第一乘法累加窗口的列数:

C=D-A+1。

4.根据权利要求1至3中任一项所述的卷积运算芯片,其特征在于,所述第一乘法累加窗口具体用于:

第t时钟周期,第1列处理单元PEi,1将PEi,1的卷积数据和PEi,1的卷积参数进行乘法运算获得乘积其中,所述PEi,1的卷积数据和所述PEi,1的卷积参数由所述数据缓存模块传输至所述PEi,1而获得;

将PEx,1的卷积参数传输至PEx,2,将PEx,1的卷积数据传输至PEx-1,2,分别作为所述PEx,2和所述PEx-1,2在第t+1时钟周期进行乘法运算的乘数,x按照从小到大的顺序每次取一个整数,依次从2取值到A;

在t分别取[nB+1,nB+B]区间内每一整数的情况下,将对应于t所有取值的所有所述乘积利用如下公式进行加法运算获得卷积结果S1

<mrow> <msub> <mi>S</mi> <mn>1</mn> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>t</mi> <mo>=</mo> <mi>n</mi> <mi>B</mi> <mo>+</mo> <mn>1</mn> </mrow> <mrow> <mi>n</mi> <mi>B</mi> <mo>+</mo> <mi>B</mi> </mrow> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>A</mi> </munderover> <msubsup> <mi>X</mi> <mrow> <mi>i</mi> <mo>,</mo> <mn>1</mn> </mrow> <mi>t</mi> </msubsup> <mo>,</mo> </mrow>

其中,n为大于或等于0并且小于或等于(E-B)的整数。

5.根据权利要求3或4所述的卷积运算芯片,其特征在于,当C大于或等于2时,所述第一乘法累加窗口具体还用于:

第T时钟周期,第J’列处理单元PEi,J’将PEi,J’的卷积数据和PEi,J’的卷积参数进行乘法运算获得乘积其中,J’为大于或等于2且小于或等于C的整数,所述PEi,J’的卷积参数由PEi,J’-1的卷积数据传输至所述PEi,J’而获得,PEh,J’的卷积数据由PEh+1,J’-1的卷积数据传输至所述PEh,J’而获得,PEA,J’的卷积参数和PEA,J’的卷积数据由所述数据缓存模块传输至所述PEA,J’而获得,h按照从小到大的顺序每次取一个整数,依次从1取值到A-1;

在T分别取[nB+J’,nB+J’+B-1]区间内每一整数的情况下,将对应于T所有取值的所有所述乘积通过如下公式进行加法运算获得卷积结果SJ’

<mrow> <msub> <mi>S</mi> <msup> <mi>J</mi> <mo>&prime;</mo> </msup> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>T</mi> <mo>=</mo> <mi>n</mi> <mi>B</mi> <mo>+</mo> <msup> <mi>J</mi> <mo>&prime;</mo> </msup> </mrow> <mrow> <mi>n</mi> <mi>B</mi> <mo>+</mo> <msup> <mi>J</mi> <mo>&prime;</mo> </msup> <mo>+</mo> <mi>B</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>A</mi> </munderover> <msubsup> <mi>X</mi> <mrow> <mi>i</mi> <mo>,</mo> <msup> <mi>J</mi> <mo>&prime;</mo> </msup> </mrow> <mi>T</mi> </msubsup> <mo>,</mo> </mrow>

其中,n为大于或等于0并且小于或等于(E-B)的整数。

6.根据权利要求5所述的卷积运算芯片,其特征在于,所述D×E卷积数据矩阵包括D*E个卷积数据ap,q,p按照从小到大的顺序每次取一个整数,依次从1取值到D,对应于p的每一取值,q按照从小到大的顺序每次取一个整数,依次从1取值到E,所述A×B卷积参数矩阵包括A*B个卷积参数bp’,q’,p’按照从小到大的顺序每次取一个整数,依次从1取值到A,对应于p’的每一取值,q’按照从小到大的顺序每次取一个整数,依次从1取值到B,所述数据缓存模块包括:

缓存器,用于缓存所述D*E个卷积数据和所述A*B个卷积参数;

计数器,用于在第nB+P时钟周期,确定所述PEi,1的卷积数据为ai,n+P,所述PEi,1的卷积参数为bi,P,其中,P取值为大于或等于1且小于或等于B的整数;

所述计数器还用于在第nB+J’+Z-1时钟周期,确定所述PEA,J’的卷积数据为aA+J’-1,n+Z,所述PEA,J’的卷积参数为bA,Z,其中,Z取值为大于或等于1且小于或等于B的整数。

7.根据权利要求1至6中任一项所述的卷积运算芯片,其特征在于,所述第一乘法累加窗口具体还用于:

第nB+J时钟周期,将乘积传输至PE2,J,与乘积进行加法运算,获得卷积中间结果其中,所述乘积为PE1,J在第nB+J时钟周期将PE1,J的卷积数据和PE1,J的卷积参数进行乘法运算获得的乘积,所述乘积为PE2,J在第nB+J时钟周期将PE2,J的卷积数据和PE2,J的卷积参数进行乘法运算获得的乘积;

将PEf,J进行加法运算得到的卷积中间结果传输至PEf+1,J,其中,f按照从小到大的顺序每次取一个整数,依次从2取值到A-1;

将所述卷积中间结果与所述PEf+1,J进行乘法运算获得的乘积进行加法运算,获得卷积中间结果

将在PEA,J内获得的卷积中间结果传输给所述输出控制模块用于缓存;

在第nB+J+1时钟周期向所述PE1,J传输所述卷积中间结果作为在第nB+J+1时钟周期进行加法运算的累加初始值;

将第(n+1)B+J-1时钟周期获得的卷积中间结果确定为卷积结果SJ

8.根据权利要求7所述的卷积运算芯片,其特征在于,当C大于或等于2时,所述第一乘法累加窗口还包括:

第一寄存器,设置于PEX,Y+1与所述PEX,Y之间,用于所述PEX,Y的卷积参数的寄存与传输;

第二寄存器,设置于所述PEX,Y+1与PEX+1,Y之间,用于PEX+1,Y的卷积数据的寄存与传输;

第三寄存器,设置于所述PEX,Y+1与PEX+1,Y+1之间,用于卷积中间结果的寄存与传输;

其中,所述第一寄存器和所述第二寄存器还用于在所述PEX,Y+1在进行乘法运算时使PEX,Y+1的卷积数据和PEX,Y+1的卷积参数节拍对齐,所述第三寄存器还用于在所述第一乘法累加窗口进行加法运算时使所述PEX,Y+1传输的卷积中间结果与所述PEX+1,Y+1进行乘法运算获得的乘积节拍对齐。

9.根据权利要求1至8中任一项所述的卷积运算芯片,其特征在于,所述M×N乘法累加器阵列还包括第二乘法累加窗口,其中,所述第一乘法累加窗口和所述第二乘法累加窗口没有交集。

10.根据权利要求9所述的卷积运算芯片,其特征在于,所述第一卷积数据矩阵与第二卷积数据矩阵相同,所述第二卷积数据矩阵为所述数据缓存模块向所述第二乘法累加窗口传输的卷积数据所属的卷积数据矩阵;

所述第一卷积参数矩阵与第二卷积参数矩阵不同,所述第二卷积参数矩阵为所述数据缓存模块向所述第二乘法累加窗口传输的卷积参数所属的卷积参数矩阵。

11.根据权利要求9所述的卷积运算芯片,其特征在于,所述第一卷积数据矩阵与第二卷积数据矩阵不同,所述第二卷积数据矩阵为所述数据缓存模块向所述第二乘法累加窗口传输的卷积数据所属的卷积数据矩阵;

所述第一卷积参数矩阵与第二卷积参数矩阵相同,所述第二卷积参数矩阵为所述数据缓存模块向所述第二乘法累加窗口传输的卷积参数所属的卷积参数矩阵。

12.一种通信设备,其特征在于,包括通信连接的中央处理器CPU、双倍数据速率同步动态随机存取存储器DDR SDRAM和权利要求1至11中任一项所述的卷积运算芯片,其中,所述CPU用于控制所述卷积运算芯片启动所述卷积运算,所述DDR SDRAM用于向所述卷积运算芯片的所述数据缓存模块输入所述多个卷积数据和所述多个卷积参数。

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