一种浮点乘加器及其乘法csa压缩树的进位校验装置的制作方法

文档序号:6610070阅读:261来源:国知局
专利名称:一种浮点乘加器及其乘法csa压缩树的进位校验装置的制作方法
技术领域
本发明涉及微处理器技术领域,特别是涉及一种微处理器中的浮点乘加部件设计技术,尤其是涉及一种浮点乘加器及其乘法进位保留加法器(CSA)压缩树的进位校验装置。
背景技术
为了达到浮点计算的高效率,在微处理器中浮点乘法和加法都使用一个浮点运算单元一浮点乘加器(Floating-point Multiply-Add Fused Unit,FMAF)来实现。浮点乘加器(FMAF)的指令执行需要3个操作数A,B,C,执行(A×B)+C操作,当把乘加指令中操作数C置为0时执行的是乘法指令,把操作数B置为1时,执行的是加法指令。
在本文提到的浮点乘加器的操作数是符合IEEE754的标准的64比特双精度浮点数。IEEE754标准对64比特双精度做了如下表1的规定。表1中隐藏了尾数的整数位1,加上常为1的整数位,双精度尾数为53位。
表1IEEE754标准中双精度格式表

双精度的乘法A×B计算的是2个53比特的尾数的乘法,如果结果不进行舍入得到的是53+53=106比特的结果。
在现有技术实现的微处理器中,浮点乘加运算一般通过以下步骤实现(相关内容请参考文献1Floating-Point Multiply-Add-Fused with Reduced latency,IEEE transactions on computers,VOL.53,No.8,August 2004和参考文献2Architectural design of a fast floating-point multiplication-add fused unit usingsigned-digit addition,IEE proceedings online no.20020409)步骤1,操作数A×B利用乘法压缩树进行压缩(见说明书附图1中的第一CSA),得到2个106比特(bit)的值,分别是压缩进位部分(mulcarry)与压缩和部分(mulsum)。为了降低延迟,在进行乘法树压缩的同时,操作数C进行取反(如果做减法)和对齐移位操作。
在运算时,操作数A×B和C的符号可能相同,也可能相反。如果A×B和C的符号相反,将A×B和C做有效减法,需要得到C的补码进行相加,C需要取反。否则如果A×B和C的符号相同做有效加法,C不需要取反。
双精度操作数C的尾数是53比特,再加上2个额外的舍入(rounding)比特,取反后得到的取反操作数Cinv比A×B的结果的最高位最多左移55位,或者比A×B结果的最高位最多右移106比特,即移位范围在(-55,106)之间。在浮点乘加的设计中,为了使移位简单化,规一化取反操作数Cinv的移位方向为向右移位,移位的范围是(0,161)比特。所以Ginv移位结果Cinvshift是一个161比特数。
步骤2,对齐移位的取反操作数Cinvshift的低106比特和A×B的压缩和部分(mulsum)与压缩进位部分(mulcarry)的106比特利用3:2的进位保留加法器(Carry Save Add,CSA)进行压缩得到2个106比特数据。其中一个106比特数据和Cinvshift的高55比特合成161比特数据,另一个高位直接填充55比特0得到161比特数据,这2个161比特数据送入到后续的161比特加法器中得到乘加的一个161比特结果。
但是,在上述步骤中,A×B的2个结果,即压缩进位部分(mulcarry)与压缩和部分(mulsum),与对齐移位的取反操作数Cinvshift利用3:2的进位保留加法器(CSA)进行压缩时,如果不进行处理,A×B的2个结果,压缩进位部分(mulcarry)与压缩和部分(mulsum)在某种特定的数据情况下,例如mulcarry和mulsum的最高位都为1时,两者相加会向最高位107比特产生一个进位,这个进位在3:2的CSA压缩树中被带入了压缩后的106比特结果中。而这个向107比特进位是个假进位,实际上浮点双精度操作数A×B是53比特×53比特的数,只会得到一个53+53=106比特的结果,107比特不可能有值,所以这个进位是错误的。这个错误是由乘法压缩树CSA的中的波茨(booth)编码所导致的。由于乘法只取其中的106比特,所以这个错误在乘法器中是被屏蔽的,而在乘加器中如果不做任何的处理,会由于错误的进位而导致对某些数据的计算错误。

发明内容
本发明的目的是针对乘法进位保留加法器(CSA)压缩进位错误,提供一种浮点乘加器及其乘法进位保留加法器(CSA)压缩树的进位校验装置。其使得进位保留加法器(CSA)压缩结果得到纠正,使得乘加器的计算正确。
为实现本发明目的而提供的一种浮点乘加器中乘法CSA压缩树的进位校验装置,包括一进位判断单元和一进位检验单元,其中所述进位判断单元,用于以浮点乘加器两个操作数A和B经过第一乘法进位保留加法器压缩得到的压缩进位部分与压缩和部分的数据为输入值,判断相加的结果是否进位,并根据进位情况输出进位校验位M;所述进位校验单元,用于根据进位判断单元输出的进位校验位M、操作数C取反对齐后的Cinvshift的高55比特,第二3:2进位保留加法器的进位压缩结果最高比特,进行进位纠正,输出两组55比特的值到161比特加法器的两组数据的高55位中。
所述进位判断单元包括多个由一判断进位电路单元和一连接电路单元组成的电路单元。
所述判断进位电路单元为4比特判断进位电路;所述连接电路单元为4比特的连接电路。
利用所述4比特的判断进位电路单元和所述4比特连接电路单元搭建16比特进位判断电路单元,32比特的进位判断电路单元和112比特的进位判断电路单元。
所述进位判断单元,是利用所述112比特的进位判断电路单元,低6比特填充0,进行106比特的进位判断得到。
所述进位判断单元和第二3:2进位保留加法器并行运算,进行进位纠正。
所述进位校验单元包含一个4:1的选择器,由进位判断输出的校验位M和第二3:2进位保留加法器的进位压缩结果的最高比特进行选择输一个55比特值。
所述进位校验单元的另一个55比特值是Cinvshift的高55比特。
为实现本发明目的还提供一种浮点乘加器,包括取反器,比特对齐移位器,第一乘法进位保留加法器,第二3:2进位保留加法器,161比特的加法器,以及规格化和舍入单元,其特征在于,还包括与第二进位保留加法器并行的乘法CSA压缩树的进位校验装置;所述装置包括一进位判断单元和一进位检验单元,其中所述进位判断单元,用于以浮点乘加器两个操作数A和B经过第一乘法进位保留加法器压缩得到的压缩进位部分与压缩和部分的数据为输入值,判断相加的结果是否进位,并根据进位情况输出进位校验位M;所述进位校验单元,用于根据进位判断单元输出的进位校验位M、操作数C取反对齐后的Cinvshift的高55比特,第二3:2进位保留加法器的进位压缩结果最高比特,进行进位纠正,输出两组55比特的值到161比特加法器的两组数据的高55位中。
所述进位判断单元包括多个由一判断进位电路单元和一连接电路单元组成的电路单元。
所述判断进位电路单元为4比特判断进位电路;所述连接电路单元为4比特的连接电路。
所述进位判断单元,是利用所述112比特的进位判断单元,低6比特填充0,进行106比特的进位判断得到。
所述进位校验单元是包含一个4:1的选择器,由进位判断输出的校验位M和第二3:2进位保留加法器的进位压缩结果的最高比特进行选择输出一个55比特值。
所述进位校验单元输出的另一个55比特值是Cinvshift的高55比特。
本发明的有益效果是本发明的浮点乘加器及其乘法进位保留加法器(CSA)压缩树的进位校验装置,通过进位判断单元和第二3:2进位保留加法器并行,使得其在增加尽量少的延迟的情况下得到乘加器的正确结果。


图1为本发明浮点乘加器及其乘法进位保留加法器(CSA)的进位校验装置结构示意图;图2A为本发明实施例4比特判断进位电路示意图;图2B为4比特判断进位电路图;图3A为4比特的判断连接电路示意图;
图3B为4比特的判断连接电路图;图4A为16比特进位判断单元示意图;图4B为32比特进位判断单元示意图;图4C为112比特进位判断单元示意图;图5为进位校验单元的电路图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种浮点乘加器及其乘法进位保留加法器(CSA)压缩树的进位校验装置进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了达到本发明的目的,如图1所示,本发明的浮点乘加器包括取反器6、比特对齐移位器7、第一乘法进位保留加法器(CSA)1,第二3:2进位保留加法器(CSA)2,161比特加法器5、规格化和舍入单元8、以及与第二3:2进位保留加法器(CSA)2并行的乘法进位保留加法器(CSA)压缩树的进位校验装置。
所述的乘法进位保留加法器(CSA)压缩树的进位校验装置,包括一进位判断单元3和一进位校验单元4。
所述进位判断单元3,以浮点乘加器两个操作数A和B经过第一乘法进位保留加法器(CSA)1压缩得到的两组压缩进位部分(mulcarry)与压缩和部分(mulsum)作为输入值,判断其相加的结果是否进位,并根据进位情况输出进位校验位M。
所述进位判断单元3,输入为浮点乘加器两个操作数A和B相乘压缩的2组106比特的数压缩进位部分(mulcarry)与压缩和部分(mulsum),输出为1个比特的进位校验位M。
当浮点乘加器两个操作数A和B在经过第一乘法进位保留加法器(CSA)1压缩得到的两组压缩进位部分(mulcarry)与压缩和部分(mulsum)后,输入到进位判断单元,如果这两组数据相加有进位时,进位判断电路的输出进位校验位M=1,否则M=0。
作为一种可实施的方式,进位判断单元包括多个4比特判断进位电路单元21和多个4比特连接电路单元31来组成判断A×B压缩结果106比特的进位判断单元3。
如图2A所示,为4比特判断进位电路示意图,所述判断进位电路单元21为4比特(bit)判断进位电路,如图2B所示,为4比特判断进位电路图,其中,a和b是输入2个4比特(bit)信号,g是2个信号的位与,k是2个信号的位或。输出信号M是4比特a和b的进位校验位,H是4比特进位判断电路单元21的进位传递信号,用于组成多比特的进位判断单元3。
图2B中,如果a和b的最高比特a[3]和b[3]都为1,那么g[3]为1,则a+b肯定会有一个进位1,例如a=1010,b=1001。而当次低位g[2]=1时,说明次低位向最高比特有进位,这时只要a和b两者最高比特有一个为1,也就是h[3]=k[3]为1时,会输出一个进位,依此类推,可以得出在图2B的电路。也就不难理解图2B电路输出的H信号是进位传播信号,只要低比特有进位,而且H信号为1那么输出肯定有进位。
如图3A所示,为4比特的连接电路示意图,所述4比特连接电路单元31是一个输入为4比特的连接电路,如图3B所示,为4比特的连接电路图。其中,利用2个4比特(bit)判断进位电路单元21的输出信号M1、H1、M2和H2输出新的信号MO和HO,其中,MO是新的进位校验位输出信号,HO是新的进位传递信号。
图3A中,如果2个4比特判断进位电路单元21的输入的8比特中高4比特输出有进位信号M1=1,那么8比特输出肯定有进位信号MO=1,否则如果M1=0,而当低4比特有进位信号M0=1,则当且仅当H1进位传播信号为1时,MO=1。H0和H1相与得到8比特进位传播信号。
利用图2A中的4比特判断进位电路单元21和图3A中的4比特连接电路单元31,可以搭建任意比特的进位判断单元3。利用4比特的判断进位电路单元和4比特连接电路单元搭建的16比特进位判断电路单元41、32比特的进位判断电路单元42和112比特的进位判断电路单元43如图4A、4B、4C所示。其中,输入信号是a和b,输出信号是M、H。M是进位校验位输出信号。
在本发明实施例中,利用112比特的进位判断电路单元43作为106比特的进位判断单元3。利用所述112比特的进位判断电路单元,低6比特填充0(a[5:0]=0,b[5:0]=0),作为所述浮点乘加器中乘法CSA压缩树的进位校验装置中的进位判断单元3,进行106比特的进位判断,输出进位校验位M112。输出信号H112在判断106比特的进位没有用到,但可以作为连接更高比特的进位传递信号。
所述进位校验单元4,用于根据进位判断单元3输出的进位校验位M、操作数C取反对齐后的Cinvshift的高55比特,第二3:2进位保留加法器(CSA)2压缩的进位压缩结果的最高比特maddcarry[105],进行进位纠正,输出两组高55比特的值。
所述进位校验单元4包含一个4:1的选择器51,由进位判断输出的校验位M和第二3:2进位保留加法器(CSA)2的进位压缩结果的最高比特进行选择输一个55比特值。而另一个55比特值是Cinvshift的高55比特。
这两组高55比特值和第二3:2进位保留加法器(CSA)2压缩输出的低106比特(maddcarry的低105比特在最低位填充0得到106比特),组成2组161比特值madd1[160:0]和madd2[160:0],送入乘加器的161比特加法器5中。
作为一种可实施方式,进位校验单元4的电路图如图5所示,其中,M是进位校验位信号,maddcarry[105]是第二3:2进位保留加法器(CSA)2的输出结果maddcarry(第二3:2进位保留加法器(CSA)2压缩的进位部分)输出信号的最高比特。当{M,maddcarry[105]}={0,0}时选择0通路的信号,当{M,maddcarry[105]}={0,1}时选择1通路的信号,当{M,maddcarry[105]}={1,0}时选择2通路的信号,当{M,maddcarry[105]}={1,1}时选择3通路的信号。Cinvshift的信号直接输出作为另一个55比特Madd2[160:106]数据。
所述的进位检验单元4利用进位校验位信号和压缩结果maddcarry[105]进行选择,实现进位校验,使在增加尽量少的延迟的情况下得到进位保留加法器(CSA)压缩的正确结果,如表2所示。
表2进位校验位信号M和压缩结果maddcarry[105]选择表

其中,maddcarry[105]bit是第二3:2进位保留加法器(CSA)2输出进位部分的最高比特,是低106比特向高55比特的进位,M是进位纠正。
当M=0时说明乘加器中第一乘法进位保留加法器(CSA)1的压缩结果mulcarry和mulsum相加没有进位,所以乘加器中的高位结果不需要纠正,当M=1时说明乘加器中第一乘法进位保留加法器(CSA)1的压缩结果mulcarry和mulsum相加有进位,所以乘加器中的高位需要纠正,也就是高55比特需要减去1。
如表1所示,当M和maddcarry[105]都为0时,输出的madd1[160:106]为55比特0;当M=0和maddcarry[105]为1时,不需要纠正进位,高55比特需要加1,所以输出的madd1[160:106]为值1(高54比特为0,最低比特为1);当M=1和maddcarry[105]为0时,需要对高55比特减1,所以madd1[160:106]的值为-1(55比特1);当M=1和maddcarry[105]为1时,两者相互抵消,所以madd1[160:106]的值为55bit0。
以上通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
权利要求
1.一种浮点乘加器中乘法CSA压缩树的进位校验装置,其特征在于,包括一进位判断单元和一进位检验单元,其中所述进位判断单元,用于以浮点乘加器两个操作数A和B经过第一进位保留加法器压缩得到的压缩进位部分与压缩和部分的数据为输入值,判断相加的结果是否进位,并根据进位情况输出进位校验位M;所述进位校验单元,用于根据进位判断单元输出的进位校验位M、操作数C取反对齐后的Cinvshift的高55比特,第二3:2进位保留加法器的进位压缩结果最高比特,进行进位纠正,输出两组55比特的值到161比特加法器的两组数据的高55位中。
2.根据权利要求1所述的浮点乘加器中乘法CSA压缩树的进位校验装置,其特征在于,所述进位判断单元包括多个由一判断进位电路单元和一连接电路单元组成的电路单元。
3.根据权利要求2所述的浮点乘加器中乘法CSA压缩树的进位校验装置,其特征在于,所述判断进位电路单元为4比特判断进位电路;所述连接电路单元为4比特的连接电路。
4.根据权利要求3所述的浮点乘加器中乘法CSA压缩树的进位校验装置,其特征在于,利用所述4比特的判断进位电路单元和所述4比特连接电路单元搭建16比特进位判断电路单元,32比特的进位判断电路单元和112比特的进位判断电路单元。
5.根据权利要求4所述的浮点乘加器中乘法CSA压缩树的进位校验装置,其特征在于,所述进位判断单元,是利用所述112比特的进位判断电路单元,低6比特填充0,进行106比特的进位判断得到。
6.根据权利要求4所述的浮点乘加器中乘法CSA压缩树的进位校验装置,其特征在于,所述进位判断单元和第二3:2进位保留加法器并行运算,进行进位判断。
7.根据权利要求1所述的浮点乘加器中乘法CSA压缩树的进位校验装置,其特征在于,所述进位校验单元包含一个4:1的选择器,由进位判断输出的校验位M和第二3:2进位保留加法器的进位压缩结果的最高比特进行选择输出一个55比特值。
8.根据权利要求7所述的浮点乘加器中乘法CSA压缩树的进位校验装置,其特征在于,所述进位校验单元输出的另一个55比特值是Cinvshift的高55比特。
9.一种浮点乘加器,包括取反器,比特对齐移位器,第一乘法进位保留加法器,第二3:2进位保留加法器,161比特的加法器,以及规格化和舍入单元,其特征在于,还包括多个与第二进位保留加法器并行的乘法CSA压缩树的进位校验装置;所述装置包括一进位判断单元和一进位检验单元,其中所述进位判断单元,用于以浮点乘加器两个操作数A和B经过第一乘法进位保留加法器压缩得到的压缩进位部分与压缩和部分的数据为输入值,判断相加的结果是否进位,并根据进位情况输出进位校验位M;所述进位校验单元,用于根据进位判断单元输出的进位校验位M、操作数C取反对齐后的Cinvshift的高55比特,第二3:2进位保留加法器的进位压缩结果最高比特,进行进位纠正,输出两组55比特的值到161比特加法器的两组数据的高55位中。
10.根据权利要求9所述的浮点乘加器,其特征在于,所述进位判断单元包括多个由一判断进位电路单元和一连接电路单元组成的电路单元。
11.根据权利要求10所述的浮点乘加器,其特征在于,所述判断进位电路单元为4比特判断进位电路;所述连接电路单元为4比特的连接电路。
12.根据权利要求10所述的浮点乘加器,其特征在于,所述进位判断单元,是利用所述112比特的进位判断单元,低6比特填充0,进行106比特的进位判断得到。
13,根据权利要求11所述的浮点乘加器,其特征在于,所述进位校验单元是包含一个4:1的选择器,由进位判断输出的校验位M和第二3:2进位保留加法器的进位压缩结果的最高比特进行选择输出一个55比特值。
14.根据权利要求13所述的浮点乘加器,其特征在于,所述进位校验单元输出的另一个55比特值是Cinvshift的高55比特。
全文摘要
本发明公开了一种浮点乘加器中乘法进位保留加法器(CSA)压缩树的进位校验装置,包括一进位判断单元和一进位检验单元,所述进位判断单元,用于以浮点乘加器两个操作数A和B经过第一进位保留加法器压缩得到的压缩进位部分与压缩和部分的数据为输入值,判断相加的结果是否进位,并根据进位情况输出进位校验位M;所述进位校验单元,用于根据进位判断单元输出的进位校验位M、操作数C取反对齐后的C
文档编号G06F7/48GK101093442SQ20071011924
公开日2007年12月26日 申请日期2007年7月18日 优先权日2007年7月18日
发明者齐子初, 胡伟武 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1