[发明专利]一种乘累加器及累加输出方法有效
申请号: | 201811314546.9 | 申请日: | 2018-11-06 |
公开(公告)号: | CN109634556B | 公开(公告)日: | 2021-04-23 |
发明(设计)人: | 刘大可;苗志东;杨兵强 | 申请(专利权)人: | 极芯通讯技术(南京)有限公司 |
主分类号: | G06F7/52 | 分类号: | G06F7/52 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;吴欢燕 |
地址: | 211800 江苏省南京市江苏自贸区南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 累加器 累加 输出 方法 | ||
本发明实施例提供了一种乘累加器,包括:M级运算列,每一级运算列中包括若干个寄存器;其中,第一级运算列包括N个乘法运算单元,每个乘法运算单元连接一个寄存器;第二级至第M‑1级运算列包括加法运算单元,每个加法运算单元连接一个寄存器,第i级的加法运算单元数量为第M级运算列由个多路选择器以及N个寄存器组成,第j个多路选择器包括k+1‑b个输入端口,输入端口分别连接第二级到第k+2‑b级中第j个加法运算单元所连接的寄存器。本发明实施例提供的一种乘累加器及累加输出方法,既可以实现时间维度对乘法运算单元输出的累加,又可以对多路乘法运算单元输出进行分组累加,提高了乘累加器的灵活度,满足多种运算形式对乘累加器的需求。
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种乘累加器及累加输出方法。
背景技术
乘累加器(Multiply and Accumulate,简称MAC)是用于完成向量相乘并将结果累加的运算器。乘累加器结构作为运算子系统的一个重要部分,常常出现在数字信号处理器、向量处理器、专用向量加速器等系统中。乘累加器能够增加向量运算和矩阵运算的并行度,提高运算速度,是很多算法硬件实现的基础子系统,如图像处理算法、深度学习算法等。
现有的乘累加器主要有两种结构:一种是包括两级运算单元组,第一级运算单元组为乘法运算单元,乘法运算单元个数为N,N为正整数,N也是乘累加单元输入数据向量的最大维度。第二级运算单元组为加法运算单元,加法运算单元个数为N。每个运算单元都连接一个寄存器,用于在每个时刻寄存该运算单元的结果并输出。第一级乘法运算单元的输出通过寄存器连接到第二级的加法运算单元的一个输入;加法运算单元的输出通过寄存器连接到加法运算单元的另一个输入。该乘累加单元可以实现两组向量相乘,并且对每个乘法运算单元的结果实现多次累加,图1是现有技术提供的一种乘累加器示意图,其中N=8,R表示寄存器。
另一种是包括M级的运算单元组,M为大于2的正整数。第一级运算单元组为乘法运算单元,乘法运算单元个数为N,N为正整数,N也是乘累加器输入数据向量的最大维度。剩下M-1级运算单元组为加法运算单元组成,且满足:2M-1=N。第2级到第M级的每级中的运算单元组中的加法运算单元个数为上一级的乘法运算单元或加法运算单元个数的二分之一。每个运算单元都连接一个寄存器,用于在每个时刻寄存该运算单元的结果并输出。每一级的输出通过寄存器输出给下一级运算单元组,从第2级开始每一级的运算单元组中的加法器用于实现前一级的两个运算单元的输出结果的相加运算,其结果通过连接的寄存器输出给下一级运算单元组。第M级包含一个加法器,最终输出一个结果,该结果为第1级所有乘法运算单元运算结果的和。图2是现有技术提供的另一种乘累加器示意图,其中N=8,M=4,R表示寄存器。
但是现有技术提供的第一种方案只能实现对单个乘法运算单元输出结果的累加,多个乘法运算单元输出之间的累加操作无法实现,而第二种方案只能实现对同一时刻运算的多路乘法器结果的累加,无法对同一乘法运算单元相邻时刻的结果进行累加。
因此,现在亟需一种新的乘累加器来解决上述现有技术中存在的问题。
发明内容
为了解决上述问题,本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的一种乘累加器及累加输出方法。
第一方面本发明实施例提供一种乘累加器,包括:
M级运算列,每一级运算列中包括若干个寄存器,所述寄存器用于在每个时刻存储运算结果并输出;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于极芯通讯技术(南京)有限公司,未经极芯通讯技术(南京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811314546.9/2.html,转载请声明来源钻瓜专利网。