本发明专利技术公开了一种高速分裂式乘累加器MAC装置,包括输入和输出,该装置还包括四个功能单元:功能单元Ⅰ是数据选择单元,在输入中选择合适的乘数和被乘数输出;功能单元Ⅱ是半字位宽的乘累加器,根据累加选择信号A_mul和符号选择信号U_mul将功能单元Ⅰ输入的乘数和被乘数相乘得到乘累加器结果;功能单元Ⅲ包含两部分电路,一是两个半字模式乘加结果的输出电路,二是全字模式乘法或乘累加运算的预处理电路;功能单元Ⅳ是全字模式乘法或乘累加运算的输出电路,其是一个进位选择结构,包含选择器和一个比特加法器。本发明专利技术的高速分裂式乘累加器MAC装置,工作频率快、流水线深度不大、计算并行度高,能够解决多种模式的乘累加运算。
【技术实现步骤摘要】
本专利技术涉及一种用于解决多种乘累加算法的高速分裂式乘累加器MAC装置。
技术介绍
在数字信号处理应用中,很多操作如FIR、IIR、卷积算法和FFT等,都涉及各种不同模式的乘法或乘累加操作,乘累加算法的处理能力直接影响到处理器的性能。乘累加运算的乘数和被乘数很可能在有些情况下是有符号数,另一些情况是无符号数,也有可能出现一个是有符号数,一个是无符号数的情况;另外,在某些场合,不只需要乘累加操作,还需要考虑不同位宽操作数的乘法操作,乘累加操作以及并行的先乘再加操作。同时,现代信号处理器的处理能力要求越来越高,包括对工作频率以及单周期信号处理能力的要求,这就需要乘累加运算满足高速并且能够单周期处理多个数据即SIMD指令。而现有的乘累加MAC装置的计算并行度不高,通常在一个周期内只可以进行一个乘法或者乘累加操作,这不能够满足多媒体流的需求。并且,高速的处理器要求乘累加单元也具有高速的性能,有些设计中为了实现高速要求而牺牲了流水线的深度,使得启动乘累加操作时需要多个周期才能输出一个结果。由于现有乘累加设计中存在的这些不足,本专利技术提出了一种高速分裂式乘累加器MAC装置,这种用于解决多种乘累加算法的乘累加装置实现了高速、流水线深度小并且单周期内可以处理多个数据即SIMD指令。
技术实现思路
本专利技术的主要目的在于克服现有技术中的不足,提供一种高速分裂式乘累加器MAC装置。为了解决上述技术问题,本专利技术是通过以下技术方案实现的一种高速分裂式乘累加器MAC装置,包括输入和输出,该装置还包括四个功能单元功能单元I是数据选择单元,在输入中选择合适的乘数和被乘数输出;功能单元II是半字位宽的乘累加器,根据累加选择信号A_mul和符号选择信号U_mul将功能单元I输入的乘数和被乘数相乘得到乘累加器结果;功能单元III包含两部分电路,一是两个半字模式乘加结果的输出电路,二是全字模式乘法或乘累加运算的预处理电路;功能单元IV是全字模式乘法或乘累加运算的输出电路,其是一个进位选择结构,包含选择器和一个比特加法器。作为本专利技术的高速分裂式乘累加器MAC装置的改进功能单元I为乘法器的数据选择逻辑,其接收多位乘数和被乘数数据以及颗粒度选择信号G_mul,根据颗粒度选择信号G_mul选择四组合适的数据输出到乘法器中。作为本专利技术的高速分裂式乘累加器MAC装置的进一步改进功能单元II是由四个16比特乘累加器组成,分别对由功能单元I送来的信号根据累加选择信号A_mul信号的状态进行运算,输出四个并行的结果。作为本专利技术的高速分裂式乘累加器MAC装置的进一步改进功能单元III包括两部分电路第一部分电路是由两个32比特加法器组成,为半字模式下的乘加操作服务,输出两个半字模式乘加操作结果;另一部分电路是由一个改进型的3输入48比特加法器组成,是全字模式乘法或乘累加操作的一个预处理电路,得到三个全字模式操作的中间结果;所述的功能单元III是根据颗粒度选择信号G_mul、符号选择信号U_mul和累加选择信号A_mul信号的状态来对输入数据进行累加。作为本专利技术的高速分裂式乘累加器MAC装置的进一步改进功能单元IV包含了两个选择器和一个64比特加法器,其根据累加选择信号A_mul信号的状态对功能单元III送来的三个输出和先前的需要累加的数据进行运算,得到最终的全字模式乘法或乘累加结果。作为本专利技术的高速分裂式乘累加器MAC装置的进一步改进功能单元II中还包含了一个基于不同位宽的先行进位加法器的压缩电路。该基于不同位宽的先行进位加法器的压缩电路是通过如下方法实现的当部分积的个数M是奇数时,采用 组位宽为 比特的先行进位加法器错位排列,将部分积的个数压缩为 ,压缩率为 ;当M是偶数时,采用 组位宽为 比特的先行进位加法器错位排列,将部分积的个数压缩为 ,压缩率为 。功能单元II中所包含的混合型的部分积压缩电路方案,它是根据部分积的个数来选择合适的压缩电路对部分积进行压缩处理,以达到最大的压缩效率。这里使用的压缩电路包括全加器、4-2压缩器,5-2压缩器以及本专利技术提出的一种新型的基于不同位宽的先行进位加法器的压缩电路。具体实现方法为当部分积的个数是5的倍数并且为偶数时,采用5-2压缩器将部分积的个数由M压缩为2M/5。当部分的个数是4的倍数时,采用4-2压缩器将部分积的个数由M压缩为M/2。当部分积的个数是3的倍数时,采用全加器将部分积的个数由M压缩为2M/3。当不是以上各种情况时,采用基于不同位宽的先行进位加法器来进行压缩。与现有技术相比,本专利技术的有益效果是本专利技术提供的一种高速分裂式乘累加器MAC装置工作频率快、流水线深度不大、计算并行度高,能够解决多种模式的乘累加运算,其中包括不同位宽(半字、全字)的无符号/有符号乘法操作、乘累加操作以及半字模式下的乘加操作。本专利技术划分为若干个顺序执行单元,通过对这些单元的安排和组合以匹配处理器的流水线结构,同时它易于通过流水线重新划分以实现频率扩展满足不同频率处理器的要求。附图说明图1为本专利技术实施例的高速分裂式MAC结构装置系统构架图。图2为传统的基于全加器的部分积压缩原理图。图3为本专利技术实施例提出的基于先行进位加法器的压缩原理图。图4为16比特乘累加器的结构框图。图5为本专利技术实施例的基于各种压缩电路的混合型部分积累加方案图。具体实施例方式结合附图,下面对本专利技术进行详细说明。在图1中,本专利技术实例将高速分裂式乘累加器MAC装置分为4个顺序执行的功能单元,每个功能单元分别完成MAC装置的部分功能。I为功能单元I,其为乘法器的数据选择逻辑。其接收多位乘数和被乘数数据以及颗粒度选择信号,它根据颗粒度选择信号选择合适的数据输出到四个乘法器中。其具体逻辑为G_mul置高执行全字(32bit)运算。乘法器1的操作数为AH,BH乘法器2的操作数为AL,BL乘法器3的操作数为AH,BL乘法器4的操作数为AL,BHG_mul置低执行半字(16bit)运算。乘法器1的操作数为A1,B1乘法器2的操作数为A2,B2乘法器3的操作数为A3,B3 乘法器4的操作数为A4,B4II为功能单元II,它是由四个16比特乘累加器组成,分别对由功能单元I送来的四组信号根据累加选择信号A_mul信号的状态决定是进行乘法还是乘累加运算,输出四个并行的结果。其具体逻辑为A_mul置高执行16bit乘累加操作,将这次乘法运算结果与之前的结果进行累加。A_mul置低执行16bit乘法操作。当为全字模式,即G_mul=1时,四个结果将作为四个部分积累加得到最终的全字乘法或乘累加的结果。R20=AH×BH,R21=AL×BL,R22=AH×BL,R23=AL×BH。当为半字模式,即G_mul=0时,四个结果作为四个16比特乘累加器的结果输出半字模式下乘法或乘累加操作的最终结果。R20=A1×B1,R21=A2×B2,R22=A3×B3,R23=A4×B4。III为功能单元III,其接受功能单元II送来的四个32bit乘法或乘累加运算结果,根据颗粒度选择信号G_mul、符号选择信号U_mul和累加选择信号A_mul信号的状态来进行累加得到需要的结果。这一功能单元可以划分为两部分电路,分别执行不同的功能。第一部分电路是由两个32比特加法器组成,为半字模式的乘加操作服务,输出两个本文档来自技高网...
【技术保护点】
一种高速分裂式乘累加器MAC装置,包括输入和输出,其特征在于,该装置还包括四个功能单元:功能单元Ⅰ是数据选择单元,在输入中选择合适的乘数和被乘数输出;功能单元Ⅱ是半字位宽的乘累加器,根据累加选择信号A_mul和符号选择信号U_mul将功能单元Ⅰ输入的乘数和被乘数相乘得到乘累加器结果;功能单元Ⅲ包含两部分电路,一是两个半字模式乘加结果的输出电路,二是全字模式乘法或乘累加运算的预处理电路;功能单元Ⅳ是全字模式乘法或乘累加运算的输出电路,其是一个进位选择结构,包含选择器和一个比特加法器。
【技术特征摘要】
【专利技术属性】
技术研发人员:刘鹏,夏冰洁,姚庆栋,
申请(专利权)人:浙江大学,
类型:发明
国别省市:86[中国|杭州]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。