一种浮点数乘加器融合处理装置及方法

文档序号:6606604阅读:264来源:国知局
专利名称:一种浮点数乘加器融合处理装置及方法
技术领域
本发明涉及计算机或数字信号处理器的核心计算单元(Central ProcessingUnit(CPU))领域,特别涉及一种浮点复数乘加器融合处理装置及方法。
背景技术
在计算机发明后,研究人员就一直围绕着计算基本单元的设计展开了大量的研究工作,尤其是复数形式的浮点数乘法和加法,以及乘加级联方面的设计。到目前为止,在浮点乘加设计方面申请的专利也很多,例如,专利“一种浮点复数乘法器”(陈泽宗,何亮,柯亨玉,武汉大学)。但是,该方法只分析了乘法的方法,没有进一步分析乘法输出到加法输入的接口如何进行简化。另外一个已经申请的专利“最佳化微处理器执行x87浮点加法指令的装置及方法”(汤姆.艾尔摩,泰瑞.派克斯,威盛电子股份有限公司),该方法更注重阐述指令对浮点数执行效率的影响,没有细化到硬件具体如何实现。

发明内容
本发明的目的在于,提供一种浮点复数乘加器融合处理装置,能够更好地应用于傅里叶变换的蝶形运算,能够简化运算步骤,在硬件实现上容易实现节省资源,用较少资源解决了浮点复数乘加的运算。本发明的另一目的在于,提供一种浮点复数乘加器融合处理方法,能够更好地应用于傅里叶变换的蝶形运算,能够简化运算步骤,在硬件实现上容易实现节省资源,用较少资源解决了浮点复数乘加的运算。本发明的浮点数乘加器融合处理方法,包括把浮点复数乘数和被乘数的实部和虚部分解输入到浮点乘法模块MO和M1,先进行浮点乘法运算,该输出结果用进位位和部分和表示乘积,并且把该乘积输入到浮点加法模块A2进行浮点加法运算,该输出结果用进位位和部分和表示相加运算,再把该表示相加运算的输出结果同时输入到浮点加法模块AO 和Al,再把外部输入的加数也输入到浮点加法模块AO和Al,进行浮点加法运算,最后输出运算结果。其中,在把浮点复数乘数和被乘数的实部和虚部分解输入到浮点乘法模块MO和 Ml是指,输入MO的数据分别是\和bp输入Ml的数据分别是 和bi; MO和Ml分别进行浮点数的乘法运算,其中,^为浮点复数乘数的实部;札为浮点复数被乘数的实部;^为浮点复数乘数的虚部办为浮点复数被乘数的虚部。其中,乘法模块MO和Ml,先进行浮点乘法运算,该输出结果用进位位和部分和表示的乘积,并且把该表示的乘积输入到浮点加法模块A2进行浮点加法运算是iijbr-ajbi。其中,把浮点加法模块A2表示的和同时输入浮点加法模块AO和Al,再把外部输入的加数也输入到浮点加法模块AO和Al进行浮点加法运算是指在浮点加法模块AO和Al 中分别执行 ajbr-a^bi+Cr 和 ajbr-a^bi-Cr。
其中,对所述AO和Al分别执行的Eljbr-E^bi+Cr和 补厂 补^。进行规格化运算,转换成标准浮点数格式,该结果是傅里叶变换一个蝶形运算的实部结果。其中,在把浮点复数乘数和被乘数的实部和虚部分解输入到浮点乘法模块MO和 Ml是指,输入MO的数据分别是\和输入Ml的数据分别是 和Iv MO和Ml分别进行浮点数的乘法运算。其中,乘法模块MO和M1,先进行浮点乘法运算,该输出结果用进位位和部分和表示的乘积,并且把该表示的乘积输入到浮点加法模块A2进行浮点加法运算是ii斤bi+ajlv另外,把浮点加法模块A2表示的和同时输入浮点加法模块AO和Al,再把外部输入的加数也输入到浮点加法模块AO和Al进行浮点加法运算是指在浮点加法模块AO和Al 中分别执行 Eijbi+i^br+Ci 和 ajbi+a^br-Ci。其中,对所述AO和Al分别执行的Eljbi+E^br+Ci和Eljbi+i^br-Ci进行规格化运算,转换成标准浮点数格式,该结果是傅里叶变换一个蝶形运算的虚部结果。本发明的浮点数乘加器融合处理装置,其中,包括第一浮点数乘法运算模块M0、第二浮点数乘法运算模块Ml、第一浮点数加法运算模块AO、第二浮点数加法运算模块Al、第三浮点数加法运算模块A2,其中,所述第一浮点数乘法运算模块M0,用于接收输入的被乘数和乘数的实部^和Iv进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;并且,用于进一步接收输入的被乘数的虚部h和乘数的实部^,进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;第二浮点数乘法运算模块M1,用于接收输入的被乘数和乘数的虚部%和进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;并且,用于进一步接收输入的被乘数的实部b,和乘数的虚部%,进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;第三浮点数加法运算模块A2,用于根据第一浮点数乘法运算模块MO 和第二浮点数乘法运算模块Ml输入的乘积进行浮点加法运算然后将输出结果发送至第一浮点数加法运算模块AO和第二浮点数加法运算模块Al ;并进一步用于根据第一浮点数乘法运算模块MO和第二浮点数乘法运算模块Ml输入的乘积进行浮点加法运算 ii斤bi+a^V然后将输出结果发送至第一浮点数加法运算模块AO和第二浮点数加法运算模块Al ;第一浮点数加法运算模块A0,用于将第三浮点数加法运算模块A2发送来的两次结果分别加c,和Ci ;第二浮点数加法运算模块Al,用于将第三浮点数加法运算模块A2发送来的两次结果分别减q和Ci。本发明的有益效果是依照本发明的浮点数乘加器融合处理装置及方法,强调的是浮点复数乘加融合结构的特殊应用,在许多已经申请的关于浮点复数运算的专利中,很多都强调的是如何优化浮点复数数乘加的运算本身,没有强调应用,本发明在浮点复数基本结构的基础上,进行了改进,适用于傅里叶变换中蝶形的运算,并且能够简化运算步骤; 另外,本发明在硬件实现上简单易行,在硬件实现上容易实现节省资源,用较少资源解决了浮点复数乘加的运算。


图1为本发明实施例的浮点数乘加器融合处理方法的流程5
图2为本发明实施例的浮点数乘加器融合处理装置的结构示意图。
具体实施例方式以下,参考附图1 2详细描述本发明的浮点数乘加器融合处理装置及方法。本发明的核心思想是把浮点复数乘数和被乘数的实部和虚部分解输入到浮点乘法模块MO和M1,数据先进行浮点乘法运算,输出结果用进位位和部分和表示的乘积,并且把结果输入到浮点加法模块A2进行加法运算,输出的也是进位位和部分和表示的和的形式,再把结果同时输入浮点加法模块AO和Al,再把外部输入的加数和被加数也输入到浮点加法模块AO和Al,进行浮点加法运算,最后输出运算结果。由于傅里叶计算需要大量蝶形运算,并且这些蝶形输入的数据都是浮点复数,所以每次蝶形运算需要4次浮点数的乘法和6次浮点数的加法。如下是一次蝶形运算的计算公式Z = AjBjCi;其中,Z,Ai, Bi, Ci分别是浮点复数。也就是说Ai = at+a^j ;Bi = Vbi=Kj ;Ci = Cr+Ci*j ;如图1所示,本发明实施例的浮点数乘加器融合处理方法,包括下列步骤步骤100 对输入的被乘数和乘数的实部和虚部分别输入到MO和Ml模块,进行浮点乘法运算。例如,输入MO的数据分别是^和札,输入Ml的数据分别是 和1^,MO和Ml 分别进行浮点数的乘法运算。步骤200 把MO和Ml的输出结果用进位位和部分和表示的乘积,并输入到A2模块中,进行浮点加法运算,即a^b.-a^bi步骤300 把A2的输出结果分别输入到AO和Al模块,同时将c,输入到AO和Al, 进行浮点加法运算。例如,在AO和Al中分别执行a^br-a^bi+Cra^-a^b^步骤400 对AO和Al结果进行规格化运算,转换成标准浮点数格式。这个结果是傅里叶变换一个蝶形运算的实部结果。其中,在步骤400中,进行规格化运算是当AO和Al的指数结果不同时,大的指数比小的指数大N,将小的指数加N,并将小的指数附带的尾数的小数点左移N位。例如AO = 5,Al = 2,此时,将Al的指数加3,变为5,然后将Al的附带的尾数的小数点向左移3位, 最后将AO和Al的附带的尾数相加。该相加后的结果是傅里叶变换一个蝶形运算的实部结果。步骤500 将步骤100中输入MO的数据变为\和bi;输入Ml的数据变为 和Iv MO和Ml分别进行浮点数的乘法运算。步骤600 把MO和Ml的输出结果用进位位和部分和表示的乘积,并输入到A2模块中,进行浮点加法运算。
a^bi+a^b,步骤700 把A2的输出结果分别输入到AO和Al模块,同时将Ci输入到AO和Al, 进行浮点加法运算。例如,在AO和Al中分别执行ar^hi+ai^hr+ciar^hi+ai^hr~ci步骤800 对AO和Al结果进行规格化运算,转换成标准浮点数格式。这个结果是傅里叶变换一个蝶形运算的虚部结果。其中,在步骤800中,进行规格化运算是当AO和Al的指数结果不同时,大的指数比小的指数大N,将小的指数加N,并将小的指数附带的尾数的小数点左移N位。例如AO = 5,Al = 2,此时,将Al的指数加3,变为5,然后将Al的附带的尾数的小数点向左移3位, 最后将AO和Al的附带的尾数相加。该相加后的结果是傅里叶变换一个蝶形运算的虚部结^ ο如图2所示,为本发明实施例的浮点数乘加器融合处理装置的结构示意图。该装置,包括第一浮点数乘法运算模块M0、第二浮点数乘法运算模块Ml、第一浮点数加法运算模块AO、第二浮点数加法运算模块Al、第三浮点数加法运算模块A2以及用于暂存数据的寄存器Reg。其中,第一浮点数乘法运算模块M0,用于接收输入的被乘数和乘数的实部^和札, 进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;并且,用于进一步接收输入的被乘数的虚部h和乘数的实部^,进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2 中;第二浮点数乘法运算模块M1,用于接收输入的被乘数和乘数的虚部 和、,进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;并且,用于进一步接收输入的被乘数的实部\和乘数的虚部%,进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;第三浮点数加法运算模块A2,用于根据第一浮点数乘法运算模块MO和第二浮点数乘法运算模块Ml输入的乘积进行浮点加法运算(ajbr-ajbi),然后将输出结果发送至第一浮点数加法运算模块AO和第二浮点数加法运算模块Al ;并进一步用于根据第一浮点数乘法运算模块MO和第二浮点数乘法运算模块Ml输入的乘积进行浮点加法运算 (a jbi+ajb,),然后将输出结果发送至第一浮点数加法运算模块AO和第二浮点数加法运算模块Al ;第一浮点数加法运算模块A0,用于将第三浮点数加法运算模块A2发送来的结果力口 cr,艮口 a^br—ajbi+Cr 禾口 a^bi+ajbr+Cr ;第二浮点数加法运算模块Al,用于将第三浮点数加法运算模块A2发送来的结果 M cr,艮口 ar^br-ai^bi-cr 禾口氺IDfai^br-Cr0规格化模块,用于将AO和Al的结果进行规格化,转换成标准浮点数的格式,将相应的结果作为傅里叶变换一个蝶形运算的实部结果和虚部结果。具体地,在AO为Eijb厂ajbi+c^Al为厂ajbi-q时,如果AO和Al的指数结果不同,大的指数比小的指数大N,将小的指数加N,并将小的指数附带的尾数的小数点左移N位,并将AO中的E^br-ajbi+C,和Al中的E^br-Eljbi-Cr的附带的尾数相加。该相加后的结果是傅里叶变换一个蝶形运算的实部结果。在AO为ii斤bi+ajbr+c^Al为iijbi+ajbr-Cr 时,如果AO和Al的指数结果不同,大的指数比小的指数大N,将小的指数加N,并将小的指数附带的尾数的小数点左移N位,并将AO中的Eljbi+ajbr+Cr和Al中的Eljbi+ajbr-Cr的附带的尾数相加。该相加后的结果是傅里叶变换一个蝶形运算的虚部结果。综上所述,依照本发明的浮点数乘加器融合处理装置及方法,突破现有技术中过分强调浮点复数的单纯注重乘加运算的优化,更注重强调这种结构应用于傅里叶变换的蝶形运算中;另外,本发明用较少资源解决了浮点复数乘加的运算,与现有技术和装置相比, 取得了设计简单易行的目的,达到了既实现了系统要求的功能又精简了硬件设计的效果, 节省了硬件资源的开销,提高了产品竞争力等,是一种高效的装置。以上是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细描述, 但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改, 这些变化和修改均在本发明的保护范围内。
权利要求
1.一种浮点数乘加器融合处理方法,其特征在于,把浮点复数乘数和被乘数的实部和虚部分解输入到浮点乘法模块MO和M1,先进行浮点乘法运算,该输出结果用进位位和部分和表示乘积,并且把该乘积输入到浮点加法模块A2进行浮点加法运算,该输出结果用进位位和部分和表示相加运算,再把该表示相加运算的输出结果同时输入到浮点加法模块AO 和Al,再把外部输入的加数也输入到浮点加法模块AO和Al,进行浮点加法运算,最后输出运算结果。
2.如权利要求1所述的浮点数乘加器融合处理方法,其特征在于,在把浮点复数乘数和被乘数的实部和虚部分解输入到浮点乘法模块MO和Ml是指,输入MO的数据分别是^和 Iv输入Ml的数据分别是%和bi; MO和Ml分别进行浮点数的乘法运算,其中,ar为浮点复数乘数的实部;札为浮点复数被乘数的实部叫为浮点复数乘数的虚部屯为浮点复数被乘数的虚部。
3.如权利要求2所述的浮点数乘加器融合处理方法,其特征在于,乘法模块MO和Ml, 先进行浮点乘法运算,该输出结果用进位位和部分和表示的乘积,并且把该表示的乘积输入到浮点加法模块A2进行浮点加法运算是
4.如权利要求3所述的浮点数乘加器融合处理方法,其特征在于,把浮点加法模块 A2表示的和同时输入浮点加法模块AO和Al,再把外部输入的加数也输入到浮点加法模块 AO和Al进行浮点加法运算是指在浮点加法模块AO和Al中分别执行、^^- 补广。和 ar;!<br-ai;!<bi-cro
5.如权利要求4所述的浮点数乘加器融合处理方法,其特征在于,对所述AO和Al分别执行的iijbr-ajbi+c,和iijbr-ajbi-c,进行规格化运算,转换成标准浮点数格式,该结果是傅里叶变换一个蝶形运算的实部结果。
6.如权利要求1所述的浮点数乘加器融合处理方法,其特征在于,在把浮点复数乘数和被乘数的实部和虚部分解输入到浮点乘法模块MO和Ml是指,输入MO的数据分别是^和 bi;输入Ml的数据分别是%和b,,MO和Ml分别进行浮点数的乘法运算。
7.如权利要求6所述的浮点数乘加器融合处理方法,其特征在于,乘法模块MO和Ml, 先进行浮点乘法运算,该输出结果用进位位和部分和表示的乘积,并且把该表示的乘积输入到浮点加法模块A2进行浮点加法运算是iijbi+ajlv
8.如权利要求7所述的浮点数乘加器融合处理方法,其特征在于,把浮点加法模块 A2表示的和同时输入浮点加法模块AO和Al,再把外部输入的加数也输入到浮点加法模块 AO和Al进行浮点加法运算是指在浮点加法模块AO和Al中分别执行iijbi+ajbr+Ci和
9.如权利要求8所述的浮点数乘加器融合处理方法,其特征在于,对所述AO和Al分别执行的iijbi+ajbr+Ci和iijbi+ajbr-Ci进行规格化运算,转换成标准浮点数格式,该结果是傅里叶变换一个蝶形运算的虚部结果。
10.一种浮点数乘加器融合处理装置,其特征在于,包括第一浮点数乘法运算模块Mo、 第二浮点数乘法运算模块Ml、第一浮点数加法运算模块AO、第二浮点数加法运算模块Al、 第三浮点数加法运算模块A2,其中,所述第一浮点数乘法运算模块M0,用于接收输入的被乘数和乘数的实部^和bp进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;并且,用于进一步接收输入的被乘数的虚部h和乘数的实部^,进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;第二浮点数乘法运算模块M1,用于接收输入的被乘数和乘数的虚部%和bi;进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2 中;并且,用于进一步接收输入的被乘数的实部札和乘数的虚部%,进行浮点乘法运算,并将输出结果用进位位和部分和表示的乘积输入到第三浮点数加法运算模块A2中;第三浮点数加法运算模块A2,用于根据第一浮点数乘法运算模块MO和第二浮点数乘法运算模块Ml输入的乘积进行浮点加法运算然后将输出结果发送至第一浮点数加法运算模块AO和第二浮点数加法运算模块Al ;并进一步用于根据第一浮点数乘法运算模块MO和第二浮点数乘法运算模块Ml输入的乘积进行浮点加法运算ajbi+ajb,,然后将输出结果发送至第一浮点数加法运算模块AO和第二浮点数加法运算模块Al ;第一浮点数加法运算模块A0,用于将第三浮点数加法运算模块A2发送来的两次结果分别加q和Ci ;第二浮点数加法运算模块Al,用于将第三浮点数加法运算模块A2发送来的两次结果分别减q和Ci。
全文摘要
本发明提供一种浮点数乘加器融合处理装置及方法,其中,该方法包括把浮点复数乘数和被乘数的实部和虚部分解输入到浮点乘法模块M0和M1,先进行浮点乘法运算,该输出结果用进位位和部分和表示乘积,并且把该乘积输入到浮点加法模块A2进行浮点加法运算,该输出结果用进位位和部分和表示相加运算,再把表示相加运算的输出结果同时输入到浮点加法模块A0和A1,再把外部输入的加数也输入到浮点加法模块A0和A1,进行浮点加法运算,最后输出运算结果。本发明能够更好地应用于傅里叶变换的蝶形运算,能够简化运算步骤,在硬件实现上容易实现节省资源,用较少资源解决了浮点复数乘加的运算。
文档编号G06F7/57GK102339217SQ20101023745
公开日2012年2月1日 申请日期2010年7月27日 优先权日2010年7月27日
发明者田丙辛 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1