算术单元制造技术

技术编号:2850461 阅读:173 留言:0更新日期:2012-04-11 18:40
为了校正乘法结果中的溢出同时提高运算速度,一个溢出检测单元以被乘数A和乘数B是否均为具有最大绝对值的负值为基础检测溢出。一个进位保留加法器通过将部分积和作为第一校正值的-1(所有位都为1)在进位保留加法中相加在一起,来输出与A×B-1对应的中间和与中间进位。一个进位传递加法器通过将中间和,中间进位与第二校正值在进位传递加法中相加在一起,来输出乘法结果。如果没有溢出,第二校正值变为1以抵偿第一校正值,由此,运算结果为A×B。如果存在溢出,该第二校正值变为0,由此,该运算结果为A×B-1,其中溢出由第一校正值校正。

【技术实现步骤摘要】

本专利技术涉及一种用于进行诸如定点数的乘法运算、乘加运算和乘减运算的算术运算的算术单元
技术介绍
在用于音频数据、多媒体数据等数字处理的大规模集成电路(LSI)中,提供作为片上元件的算术单元,例如乘法单元,乘加单元等,已经变得普通。对于需要高精度运算的处理,这类算术单元利用二进制补码代表的定点数进行运算。在这种定点数运算中,当乘法结果溢出时需要进行饱和运算。具体地,一个n位定点数可以在是-2n到+2n-1(二进制表示为100...00到011...11)的范围内取值,如果被乘数和乘数都是最小值(具有最大绝对值的负值),乘法结果就会溢出(也就是,超出能够正确表示的正值的范围)。因此,进行饱和运算以将乘法结果校正为最大的可表示的正值。如图17所示,例如,能够完成上面提到的饱和运算的常规单元包括用于产生被乘数A和乘数B的多个部分积的部分积产生器901,用于将产生的部分积加起来的加法器902,用于检测出现/不出现溢出的溢出检测单元903和一个可按照出现/不出现溢出选择性地输出来自加法器902的加法结果或者输出饱和值(最大正值)的选择器904。因此,如果出现溢出(也就是说,如果被乘数A和乘数B都是具有最大绝对值的负值),则选择饱和值,由此校正乘法结果。然而,在加法器902的输出与饱和值之间的选择是由选择器904决定的情况下,只有当乘法结果从加法器902输出并在通过选择器904的延时以后才能够知道不溢出的乘法结果。考虑到这一点,已经提出应用布斯(Booth)算法的算术单元,在布斯算法中,如果出现溢出,布斯编码器输出预定值,对其进行乘法运算以给出饱和值(参见例如,日本未决公开专利NO1-267728)。然而,那样的方法仅能应用于包括布斯编码器的算术单元。此外,即使带有这种布斯编码器,实际中提高运算速度也并不总是那么容易。即,布斯编码器是以出现/不出现溢出为基础控制的,溢出检测运算所需的时间量被加到总的运算时间中。因此,即使没有由于选择器的延时,总运算时间也增加了由于溢出检测运算所需的时间量,由此运算速度未必总是能够提高。
技术实现思路
因此,本专利技术的目的是提高算术运算的速度,该算术运算包括乘法运算同时正确地校正乘法结果的溢出。为了达到前面提出的目标,本专利技术的算术单元是用于进行包括被乘数A和乘数B的乘法运算的算术运算的算术单元,A和B均为表达为二进制补码的定点数,该算术单元包括溢出检测单元,用于检测被乘数A和乘数B的乘积出现/不出现溢出;中间乘积产生器,通过将被乘数A和乘数B的多个部分积与预定的第一校正值(例如,-1)在进位保留加法中相加在一起以得到中间和与中间进位;以及进位传递加法器,通过将中间和与中间进位在进位传递加法中相加在一起以得到运算结果,其中,根据溢出检测单元的检测结果的预定的第二校正值(例如,出现溢出时为0,不出现溢出时为1),或者在中间乘积产生器中加入,或者在进位传递加法器中加入。当被乘数A和乘数B均为具有最大绝对值的负值时,溢出检测单元检测到溢出。中间乘积产生器被配置为使多个部分积与第一校正值以并行的树结构在进位保留加法中相加在一起。由此,例如,不管溢出出现或者不出现,都可以将所有位都为1的第一校正值作为校正溢出的校正值在进位保留加法中加入,由此有可能避免由溢出检测定时的限制引起的延时以及由于进位传递引起的延时。而且,例如可以根据溢出的出现或者不出现,加入或者为1或者为0的1位的第二校正值,这样就有可能以很少的延时或者无延时地来抵偿或者不抵偿第一校正值的校正。此外,第二校正值的加入可以在算术运算的后级完成,由此增加了溢出检测定时的裕度。因此,有可能容易地提高包括乘法的算术运算的运算速度,同时正确地校正溢出。上面描述的配置可用于算术单元以在除得到乘积之外,还得到与加数X的乘加结果。具体地,部分积,第一校正值与加数可以在进位保留加法中加在一起,或者中间和,中间进位与加数可以在进位保留加法中加在一起,其中中间和与中间进位是将部分积与第一校正值加在一起得到的。在这种情况下,可以对中间和与中间进位进行移位(位扩展)使得运算结果的位数等于被乘数的位数与乘数的位数的和,其中例如最低有效位可以用1填充,由此正确地进行等效于加/减预定的校正值的运算。而且,可以提供用于根据运算选择信号等可选择地得到与加数X的乘加结果或者乘减结果的算术单元。具体地,可以将部分积与第一校正值在进位保留加法中相加得到的中间和与中间进位进行二进制补码变换或者按位取反,并且与一个预定校正值相加,然后与加数相加,由此得到乘减结果。在这种情况下,按位取反可以根据运算为乘加运算或者乘减运算进行控制,并且第一校正值也可以变换或者可以在第一校正值固定的同时将第三校正值变换,以便得到从加数减去中间和与中间进位得到的值。并且,前面描述的配置可用于使用布斯算法的算术单元。具体地,取决于运算是一个乘加运算或者一个乘减运算,乘数编码单元可以用来编码乘数或编码被乘以-1的乘数,由此,有可能得到乘加结果或者乘减结果,并且,有可能很快得到溢出校正的运算结果。附图说明图1为表示根据实施例1的算术单元配置的框图。图2表示根据实施例1出现溢出时的示例性乘法运算。图3为表示根据实施例2的算术单元的配置的框图。图4表示了根据实施例2出现溢出时的示例性乘加运算。图5为表示根据实施例3的算术单元配置的框图。图6表示了根据实施例3出现溢出时的示例性乘加运算。图7表示了根据实施例3出现溢出时的示例性乘减运算。图8为表示根据实施例4的算术单元配置的框图。图9表示了根据实施例4出现溢出时的示例性乘加运算。图10表示了根据实施例4出现溢出时的示例性乘减运算。图11为表示根据实施例5的算术单元配置的框图。图12表示了根据实施例5出现溢出时的示例性乘加运算。图13表示了根据实施例5出现溢出时的示例性乘减运算。图14为表示根据实施例6的算术单元配置的框图。图15表示了根据实施例6出现溢出时的示例性乘加运算。图16表示了根据实施例6出现溢出时的示例性乘减运算。图17为常规算术单元配置的框图。具体实施例方式现在将参照附图说明本专利技术的优选的实施例。需要注意,以下的每个实施例中,任何前述实施例中的相同元件会用相同的参考标号表示,并且不会重复地说明。实施例1本专利技术的实施例1是针对用于得到被乘数A和乘数B乘积的算术单元。参照图1,这个算术单元包括中间乘积产生器101,溢出检测单元102,选择器103和进位传递加法器104。中间乘积产生器101包括用于产生多个部分积的部分积产生器101a,以及用于将多个部分积以及作为第一校正值的-1(所有位均为1的值)作进位保留加法的进位保留加法器101b。这样,中间乘积产生器101为A×B-1输出中间和与中间进位。应当注意的是,中间乘积产生器101可以是应用布斯算法的单元,或者是将乘数每一位的部分积加在一起的单元。虽然本专利技术不局限于此,但如果通过进位保留加法器树将多个部分积和第一校正值并行地相加,则在许多情况下,通过避免增加用于加上第一校正值的逻辑门的数量有可能更加容易地提高运算速度。溢出检测单元102检测溢出,由此如果被乘数A和乘数B都是具有最大绝对值的负值,则溢出检测单元断定溢出检测信号OD。选择器103有选择地输出,作为第二校正值,当断定溢出检测信号OD时,选本文档来自技高网
...

【技术保护点】
一种用于进行包括被乘数A和乘数B的乘法运算的算术运算的算术单元,A和B均为表达为二进制补码的定点数,该算术单元包括:溢出检测单元,用于检测该被乘数A和该乘数B的乘积溢出的出现;中间乘积产生器,用于通过该被乘数A和该乘数B的多 个部分积与预定的第一校正值的进位保留加法,得到中间和与中间进位;以及进位传递加法器,用于通过该中间和与该中间进位的进位传递加法,得到运算结果,其中将根据该溢出检测单元的检测结果的预定的第二校正值,或者在该中间乘积产生器中加入 ,或者在该进位传递加法器中加入。

【技术特征摘要】
JP 2005-2-17 041340/20051.一种用于进行包括被乘数A和乘数B的乘法运算的算术运算的算术单元,A和B均为表达为二进制补码的定点数,该算术单元包括溢出检测单元,用于检测该被乘数A和该乘数B的乘积溢出的出现;中间乘积产生器,用于通过该被乘数A和该乘数B的多个部分积与预定的第一校正值的进位保留加法,得到中间和与中间进位;以及进位传递加法器,用于通过该中间和与该中间进位的进位传递加法,得到运算结果,其中将根据该溢出检测单元的检测结果的预定的第二校正值,或者在该中间乘积产生器中加入,或者在该进位传递加法器中加入。2.如权利要求1中所述的算术单元,其中在该被乘数A和该乘数B均为具有最大绝对值的负值时,该溢出检测单元检测到溢出。3.如权利要求1中所述的算术单元,其中该第一校正值是-1;以及当出现溢出时,该第二校正值为0,当不出现溢出时,该第二校正值为1。4.如权利要求1中所述的算术单元,其中该中间乘积产生器被配置为可以通过进位保留加法树并行地将该多个部分积与该第一校正值相加。5.如权利要求1中所述的算术单元,其中该中间乘积产生器通过用二进制补码表示的该被乘数A和该乘数B的多个部分积、该第一校正值与加数X的进位保留加法得到中间和与中间进位;该进位传递加法器获得该加数X与该被乘数A与该乘数B的乘积的和,即X+A×B。6.如权利要求5中所述的算术单元,其中该第一校正值为-1;以及当出现溢出时,该第二校正值为0,而当不出现溢出时,该第二校正值为17.如权利要求6中所述的算术单元,其中该中间乘积产生器得到中间和与中间进位,这是通过将初步的中间和左移一位并在其最低有效位插入1得到的值、将初步的中间进位左移一位并在其最低有效位插入0得到的值、与加数X的进位保留加法而得到的,其中该初步的中间和与该初步的中间进位是通过该被乘数A和该乘数B的多个部分积与该第一校正值的进位保留加法得到的;或者中间和与中间进位,这是通过该被乘数A和该乘数B的多个部分积、该第一校正值、与该加数X的进位保留加法而得到的。8.如权利要求1中所述的算术单元,其中当要得到乘加结果时,该中间乘积产生器通过表示为二进制补码的该被乘数A和该乘数B的多个部分积、该第一校正值、与加数X的进位保留加法,得到中间和与中间进位;当要得到乘减结果时,该中间乘积产生器通过将初步的中间和转换为二进制补码得到的值、将初步的中间进位转换为二进制补码得到的值、与加数X的进位保留加法,得到中间和与中间进位,其中该初步的中间和与该初步的中间进位,是通过该被乘数A和该乘数B的多个部分积与该第一校正值的进位保留加法得到的;以及该进位传递加法器得到该加数X与该被乘数A与该乘数B的乘积的和或者差,即X+A×B或者X-A×B。9.如权利要求8中所述的算术单元,其中当要得到乘加结果时,该第一校正值为-1,并且该第二校正值在出现溢出时为0,在不出现溢出时为1;以及当要得到乘减结果时,该第一校正值为0,并且该第二校正值在出现溢出时为1,在不出现溢出时为0;10.如权利要求9中所述的算术单元,其中当要得到乘加结果时,该中间乘积产生器通过将初步的中间和左移一位并在其最低有效位插入1得到的值、将初步的中间进位左移一位并在其最低有效位插入0得到的值、与该加数X的进位保留加法得到中间和与中间进位,其中该初步的中间和与该初步的中间进位,是通过该被乘数A和该乘数B的多个部分积与该第一校正值的进位保留加法得到的;以及当要得到乘减结果时,该中间乘积产生器通过将初步的中间和左移一位然后在其最低有效位插入0并将该移位后的初步的中间和转换为二进制补码得到的值、将初步的中间进位左移一位然后在其最低有效位插入0并将该移位后的初步的中间进位为转换二进制补码得到的值、与该加数X的进位保留加法,得到中间和与中间进位,其中该初步的中间和与该初步的中间进位,是通过该被乘数A和该乘数B的多个部分积与该第一校正值的进位保留加法得到的。11.如权利要求1中所述的算术单元,其中当要得到乘加结果时,该中间乘积产生器通过表示为二进制补码的该被乘数A和该乘数B的多个部分积、该第一校正值和加数X的进位保留加法,得到中间和与中间进位。当要得到乘减结果时,该中间乘积产生器通过表示为二进制补码的初步的中间和的位值取反得到的值、初步的中间进位的位值取反得到的值、与加数X的进位保留加法,得到...

【专利技术属性】
技术研发人员:武内大辅
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1