【技术实现步骤摘要】
乘法器、乘累加电路、运算电路、处理器和计算装置
[0001]本公开涉及数据处理
,并且更具体地,涉及一种乘法器、乘累加电路、运算电路以及包含这种乘法器或乘累加电路或运算电路的处理器和计算装置。
技术介绍
[0002]乘累加(Multiply and Accumulate,MAC)电路用于完成向量相乘、矩阵相乘和向量矩阵互乘等乘累加运算,是协处理器、数字信号处理器、中央处理器和专用指令处理器、神经网络处理器等处理器中极其重要的运算子系统。特别地,人工智能的飞速发展凸显了神经网络处理器的重要作用,使得神经网络处理器逐渐成为智能计算技术的基石。卷积计算单元是神经网络处理器的核心单元,其实现离不开乘累加电路对激活数据和权重(Weight)数据的乘累加运算,因此乘累加电路的设计对于卷积计算单元和神经网络处理器至关重要。
技术实现思路
[0003]根据本公开的第一方面,提供了一种乘法器,用于执行第一乘数与第二乘数的乘法运算,所述第一乘数是无符号数,所述第二乘数是预先已知的无符号数或有符号数。所述乘法器包括:部分积产生电路,被配置为接收所述第一乘数与所述第二乘数并输出其部分积;部分积求和电路,所述部分积求和电路的输入端耦接到所述部分积产生电路的输出端,所述部分积求和电路被配置为接收由所述部分积产生电路输出的部分积并对其进行求和。所述部分积产生电路包括用于输出所述第二乘数的最高一位与所述第一乘数的部分积的第一部分积产生单元。所述第一部分积产生单元被配置为:在所述第二乘数是无符号数的情况下,输出所述第二乘数的最高 ...
【技术保护点】
【技术特征摘要】
1.一种乘法器,用于执行第一乘数与第二乘数的乘法运算,所述第一乘数是无符号数,所述第二乘数是预先已知的无符号数或有符号数,所述乘法器包括:部分积产生电路,被配置为接收所述第一乘数与所述第二乘数并输出其部分积;部分积求和电路,所述部分积求和电路的输入端耦接到所述部分积产生电路的输出端,所述部分积求和电路被配置为接收由所述部分积产生电路输出的部分积并对其进行求和,其中,所述部分积产生电路包括用于输出所述第二乘数的最高一位与所述第一乘数的部分积的第一部分积产生单元,所述第一部分积产生单元被配置为:在所述第二乘数是无符号数的情况下,输出所述第二乘数的最高一位与所述第一乘数的部分积;在所述第二乘数是有符号数的情况下,输出所述第二乘数的最高一位与所述第一乘数的部分积的取反结果。2.根据权利要求1所述的乘法器,其中,所述第一部分积产生单元被配置为:接收指示所述第二乘数是无符号数还是有符号数的符号标志位;在所述符号标志位指示所述第二乘数是无符号数的情况下,输出所述第二乘数的最高一位与所述第一乘数的部分积;在所述符号标志位指示所述第二乘数是有符号数的情况下,输出所述第二乘数的最高一位与所述第一乘数的部分积的取反结果。3.根据权利要求2所述的乘法器,其中,所述第一部分积产生单元包括:与门组,被配置为接收所述第二乘数的最高一位与所述第一乘数并对其执行与运算;异或门组,被配置为接收所述与门组的与运算结果与所述符号标志位并对其执行异或运算,其中,所述异或门组的异或运算结果被提供作为所述第一部分积产生单元的输出。4.根据权利要求2所述的乘法器,其中,所述第一部分积产生单元包括:与非门组,被配置为接收所述第二乘数的最高一位与所述第一乘数并对其执行与非运算;异或门组,被配置为接收所述与非门组的与非运算结果与所述符号标志位并对其执行异或运算,其中,所述异或门组的异或运算结果被提供作为所述第一部分积产生单元的输出。5.根据权利要求2所述的乘法器,其中,所述第一部分积产生单元包括:异或门,被配置为接收所述第二乘数的最高一位与所述符号标志位并对其执行异或运算;多路选择器组,所述多路选择器组中的每个多路选择器被配置为接收所述符号标志位作为第一输入,接收所述异或门的异或运算结果作为第二输入,接收所述第一乘数的相应位作为选择信号,并根据所述选择信号输出所述第一输入或所述第二输入,其中,所述多路选择器组的输出被提供作为所述第一部分积产生单元的输出。6.根据权利要求2所述的乘法器,其中,所述第一部分积产生单元包括:异或门,被配置为接收所述第二乘数的最高一位与所述符号标志位并对其执行异或运算;
反相多路选择器组,所述反相多路选择器组中的每个反相多路选择器被配置为接收所述符号标志位作为第一输入,接收所述异或门的异或运算结果作为第二输入,接收所述第一乘数的相应位作为选择信号,并根据所述选择信号输出所述第一输入或所述第二输入,其中,所述反相多路选择器组的输出被提供作为所述第一部分积产生单元的输出。7.根据权利要求2所述的乘法器,其中,所述第一部分积产生单元包括:与门组,被配置为接收所述第二乘数的最高一位与所述第一乘数并对其执行与运算;多路选择器组,被配置为接收所述与门组的与运算结果作为第一输入,接收所述与门组的所述与运算结果的取反结果作为第二输入,接收所述符号标志位作为选择信号,并根据所述选择信号输出所述第一输入或所述第二输入,其中,所述多路选择器组的输出被提供作为所述第一部分积产生单元的输出。8.根据权利要求1至7中任一项所述的乘法器,其中,所述部分积产生电路还包括用于输出经修改的第二乘数与所述第一乘数的部分积的第二部分积产生单元,所述经修改的第二乘数是通过移除所述第二乘数的最高一位得到的并且是无符号数,所述第二部分积产生单元包括用于执行无符号数与无符号数的乘法运算的乘法器。9.根据权利要求1至7中任一项所述的乘法器,其中,所述部分积产生电路还包括多个第二部分积产生单元,所述多个第二部分积产生单元中的每个第二部分积产生单元用于输出所述第二乘数的除最高一位以外的相应位与所述第一乘数的部分积。10. 根据权利要求9所述的乘法器,其中,所述多个第二部分积产生单元中的每个第二部分积产生单元包括以下之一:与门组,被配置为接收所述第二乘数的除最高一位以外的相应位与所述第一乘数并对其执行与运算,其中,所述与门组的与运算结果被提供作为所述第二部分积产生单元的输出;或者与非门组,被配置为接收所述第二乘数的除最高一位以外的相应位与所述第一乘数并对其执行与非运算,其中,所述与非门组的与非运算结果被提供作为所述第二部分积产生单元的输出。11.根据权利要求1所述的乘法器,其中,所述部分积求和电路的输出端耦接到附加相加电路的输入端,所述附加相加电路被配置为在所述第二乘数是有符号数的情况下将所述部分积求和电路的输出与常数相加,所述常数是(1
‑2z
)
·2w
‑1,其中z是所述第一乘数的位宽,w是所述第二乘数的位宽。12. 一种乘累加电路,用于执行多对第一数和第二数的乘累加运算,所述第二数是预先已知的,所述乘累加电路包括至少一个乘累加单元,所述乘累加单元包括:乘法子电路,所述乘法子电路包括用于执行第一乘数与第二乘数的乘法运算的乘法器,所述第一乘数从所述第一数获得并且是无符号数,所述第二乘数从所述第二数获得并且是预先已知的无符号数或有符号数,所述乘法器被配置为提供作为无符号数的输出;以及累加子电路,所述累加子电路的输入端耦接到所述乘法子电路的输出端,所述累加子电路被配置为接收所述乘法子电路的输出并对其累加。13.根据权利要求12所述的乘累加电路,其中,所述乘法子电路的所述乘法器是根据权利要求1至11中任一项所述的乘法器。
14.根据权利要求12所述的乘累加电路,其中,所述乘法子电路包括多个所述乘法器,每个所述乘法器被配置为接收相应一对第一乘数与第二乘数并对所述相应一对第一乘数与第二乘数求积。15. 根据权利要求14所述的乘累加电路,其中,所述累加子电路包括以下之一:n级压缩树、第一加法器、第二加法器与寄存器组,所述乘法子电路的输出端耦接到所述n级压缩树中的第1级压缩树的相应输入端,所述n级压缩树中的第i级压缩树的输出端耦接到所述n级压缩树中的第(i+1)级压缩树的相应输入端,所述n级压缩树中的第n级压缩树的输出端耦接到所述第一加法器的相应输入端,所述第一加法器的输出端耦接到所述第二加法器的相应输入端,所述第二加法器的输出端耦接到所述寄存器组的输入端,所述寄存器组的输出端耦接到所述第二加法器的相应输入端,其中,n为正整数,i=1,2,
…
,n
‑
1;或者n级压缩树、全加器、加法器与寄存器组,所述乘法子电路的输出端耦接到所述n级压缩树中的第1级压缩树的相应输入端,所述n级压缩树中的第i级压缩树的输出端耦接到所述n级压缩树中的第(i+1)级压缩树的相应输入端,所述n级压缩树中的第n级压缩树的输出端耦接到所述全加器的相应输入端,所述全加器的输出端耦接到所述加法器的相应输入端,所述加法器的输出端耦接到所述寄存器组的输入端,所述寄存器组的输出端耦接到所述全加器的相应输入端,其中,n为正整数,i=1,2,
…
,n
‑
1;或者n级压缩树、加法器与寄存器组,所述乘法子电路的输出端耦接到所述n级压缩树中的第1级压缩树的相应输入端,所述n级压缩树中的第i级压缩树的输出端耦接到所述n级压缩树中的第(i+1)级压缩树的相应输入端,所述n级压缩树中的第n级压缩树的输出端耦接到所述加法器的相应输入端,所述加法器的输出端耦接到所述寄存器组的输入端,所述寄存器组的输出端耦接到所述n级压缩树中的第1级压缩树的相应输入端,其中,n为正整...
【专利技术属性】
技术研发人员:王丹阳,薛天志,翟云,范志军,杨作兴,
申请(专利权)人:深圳比特微电子科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。