一种定点乘累加器制造技术

技术编号:15724066 阅读:349 留言:0更新日期:2017-06-29 09:13
本发明专利技术公开了一种定点乘累加器,包括:Booth编码单元,用于对乘数进行Booth编码;左移逻辑单元,用于当被乘数为小数时,将被乘数左移一位、低位补零;Booth译码/部分积产生单元,用于产生部分积;压缩树,用于压缩部分积,输出两个压缩数据;压缩器,用于压缩累加器和压缩树提供的数据;加法器,用于对压缩器输出的数据进行加法操作,输出结果。本发明专利技术的定点乘累加器,实现了定点整数/小数乘法、乘累加/减功能、溢出判断功能,且不增加乘累加器的延时,保证了处理器的性能。

【技术实现步骤摘要】
一种定点乘累加器
本专利技术涉及处理器
,尤其涉及一种定点乘累加器。
技术介绍
乘法操作被用于大部分算法中,特别是在信号处理算法中,乘累加操作是核心操作之一,这使得每秒可执行乘累加操作数(MAC/S)成为简单衡量一个数字信号处理器计算能力的指标之一。不仅是在数字信号处理器中,通用处理器为了中也集成了乘法器,某些通用处理器为了加速图像处理或其他科学计算,也使用了乘累加器。在现有技术中,一个乘累加器的结构通常是使用Booth编码和压缩树进行乘法的基本操作,而累加器的值一般参与压缩树的最后压缩,在得到两个压缩结果之后,使用超前进位加法器将两者相加,得到最终的乘累加结果。一般情况下,乘法器所在通路是所有计算单元的关键通路所在。在处理器的设计中,需要使用定点乘累加器完成多种形式的操作:(1)有符号乘法、无符号乘法,甚至有符号数与无符号数相乘;(2)定点整数乘法和定点小数乘法;(3)乘累加和乘累减;(4)乘法结果饱和操作。第(1)种操作已经有非常成熟的实现方法,在两位Booth编码中,有无符号数参与的计算会增加一个部分积。第(2)种操作中,定点整数与定点小数的计算区别仅在于,小数乘法结果需要左移一位。在现在的技术中,一般是在乘法压缩结果得出之后,根据操作类型决定是否对结果进行移位操作。而该移位操作将增加乘累加器关键通路的长度。第(3)种操作在FFT以及类蝶形运算中出现的较多,乘法结果与累加器之间做加法或减法操作都是算法中较为常用的。在现有的技术中,往往是在乘法结果给出之后,根据操作类型,选择乘法压缩结果的反或者原值,然后与累加器的进行加法操作。其中,仅仅对结果进行取反是不够的,对每一个取反的数仍需要加1,一般情况下压缩结果的进位最低位与加法器的初始进位可以解决该问题。这种方法的缺点同样是在关键通路中增加选择,从而加长累加器的路径长度。第(4)种操作也较为常见。为了与浮点格式相匹配,一般在处理器中只处理Q(n-1)格式的定点小数(n是数据位宽),即最高位是符号位,其余均是小数的尾数部分,其表示范围是-1~(1-2-(n-1)),精度是2-(n-1)。所以当两个-1相乘时,从表示范围即可看出该操作超出了表示范围。实际上在不做处理的情况下,两个-1相乘得到的仍然是-1,这与实际结果相差太多,所以一般这时候需要在累加前进行饱和处理,将其饱和至最接近1的正数(1-2-(n-1))。在现有的技术中,同样是在乘法结果得出之后进行饱和选择处理,其缺点依然是增加了关键路径的长度。综上,如果一个乘累加器需要完成上述操作,需要增加多级选择器才可实现,而乘法器作为所有计算单元的关键通路,增加任何一点延时都将导致性能的降低。
技术实现思路
本专利技术提供了一种定点乘累加器,在不增加延时的情况下,既可实现定点整数乘法又可实现定点小数乘法。为解决上述技术问题,本专利技术采用下述技术方案予以实现:本专利技术提出了一种定点乘累加器,包括:Booth编码单元,用于对乘数进行Booth编码;左移逻辑单元,用于当被乘数为小数时,将被乘数左移一位、低位补零;Booth译码/部分积产生单元,用于产生部分积;压缩树,用于压缩部分积,输出两个压缩数据;压缩器,用于压缩累加器和压缩树提供的数据;加法器,用于对压缩器输出的数据进行加法操作,输出结果。进一步的,当进行乘累减操作时,所述Booth编码单元还用于对乘数进行Booth编码后将编码值neg取反。又进一步的,当进行无符号数的乘累减操作时,所述定点乘累加器还包括:操作数预处理单元,用于将左移逻辑单元输出数据的低m位取反加1;所述Booth译码/部分积产生单元包括最后部分积低位产生单元和其余部分积产生单元;所述最后部分积低位产生单元用于根据操作数预处理单元的输出数据和乘数的最高位产生最后部分积的低m+1位;所述其余部分积产生单元,用于根据Booth编码单元产生的编码和左移逻辑单元输出的数据产生最后部分积的其他位以及其他的部分积;最后部分积的其他位和最后部分积的低m+1位合并成最后部分积。更进一步的,所述定点乘累加器还包括溢出判断单元,用于判断在进行小数乘数时的乘数和被乘数是否均为-1,若是,则输出溢出信号至压缩树,修改压缩树。再进一步的,所述压缩树还用于:在乘累加操作且接收到溢出信号时,将部分积中权重最低的1出现的位清零,然后将低于该权重的每一位加1。优选的,所述将低于该权重的每一位加1,具体包括:在具有相同的权重的部分积位中选取一位,使用溢出信号将低于该权重的所有选取位置成1。又进一步的,所述将低于该权重的每一位加1,具体包括:如果在低于该权重的压缩树中,存在半加器,则将溢出信号参与压缩,并将半加器改为全加器。更进一步的,所述将低于该权重的每一位加1,具体包括:在具有相同的权重的部分积位中选取已经得到压缩结果的一位,使用溢出信号将低于该权重的所有选取位置成1。再进一步的,所述压缩树还用于:在乘累减操作且接收到溢出信号时,将部分积中权重为0的其中一位修改为1。与现有技术相比,本专利技术的优点和积极效果是:本专利技术的定点乘累加器,既可实现定点整数乘法又可实现定点小数乘法,且不增加乘累加器的延时,保证了处理器的性能;同时还可实现乘累加/减功能、溢出判断功能。结合附图阅读本专利技术的具体实施方式后,本专利技术的其他特点和优点将变得更加清楚。附图说明图1是本专利技术提出的定点乘累加器的一个实施例的结构框图;图2是图1中Booth编码单元的一个实施例的门级电路结构图;图3是图1中左移逻辑单元的结构示意图;图4是图1中Booth译码/部分积产生单元产生的16位乘法所有部分积及其权重示意图;图5是图1中压缩树的16位乘法压缩示意图;图6是本专利技术提出的定点乘累加器的另一个实施例的结构框图;图7是图6中Booth编码单元的一个实施例的门级结构图;图8是图6中操作数预处理单元、最后部分积低位产生单元的门极结构图;图9是本专利技术提出的定点乘累加器的又一个实施例的结构框图;图10是本专利技术提出的定点乘累加器的再一个实施例的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下将结合附图和实施例,对本专利技术作进一步详细说明。本专利技术的定点乘累加器,充分利用了乘累加器设计中的非关键通路,在不增加乘累加器延时的情况下,使得乘累加器在可重构的实现有符号数乘法和无符号数乘法的基础上,可选择的实现定点整数乘法和定点小数乘法、乘累加和乘累减、乘法结果饱和功能。为了叙述方便,本专利技术做以下约定:部分积编号按照Booth编码的权重从低至高编号,从0开始计数,例如第0个部分积;Booth编码中要求将部分积取负的编码值称为neg;而在neg控制下,取负操作要求进行“取反加1”,我们称其中需要加1的位为“加1”(每个“加1”的数值与neg相同);将只在无符号乘法中才会产生的部分积称为“最后一个部分积”;压缩树中,信号经过一个全加器或半加器称为经过一级压缩,压缩级数从1开始计数,例如第3级压缩表示信号已经经过两个全加器或半加器后,使用第三个全加器或半加器进行压缩的操作。实施例一、定点整数/小数乘法功能:本实施例提出了一种乘累加器,主要包括Booth编码单元、左移逻辑单元、Booth译码/部分积产生单元、压缩树、压缩器、累加器、加法器等,参见图1所示,既可实现定点整数乘法本文档来自技高网
...
一种定点乘累加器

【技术保护点】
一种定点乘累加器,其特征在于:包括:Booth编码单元,用于对乘数进行Booth编码;左移逻辑单元,用于当被乘数为小数时,将被乘数左移一位、低位补零;Booth译码/部分积产生单元,用于产生部分积;压缩树,用于压缩部分积,输出两个压缩数据;压缩器,用于压缩累加器和压缩树提供的数据;加法器,用于对压缩器输出的数据进行加法操作,输出结果。

【技术特征摘要】
1.一种定点乘累加器,其特征在于:包括:Booth编码单元,用于对乘数进行Booth编码;左移逻辑单元,用于当被乘数为小数时,将被乘数左移一位、低位补零;Booth译码/部分积产生单元,用于产生部分积;压缩树,用于压缩部分积,输出两个压缩数据;压缩器,用于压缩累加器和压缩树提供的数据;加法器,用于对压缩器输出的数据进行加法操作,输出结果。2.根据权利要求1所述的定点乘累加器,其特征在于:当进行乘累减操作时,所述Booth编码单元用于对乘数进行Booth编码后将编码值neg取反。3.根据权利要求2所述的定点乘累加器,其特征在于:当进行无符号数的乘累减操作时,所述定点乘累加器还包括:操作数预处理单元,用于将左移逻辑单元输出数据的低m位取反加1;所述Booth译码/部分积产生单元包括最后部分积低位产生单元和其余部分积产生单元;所述最后部分积低位产生单元用于根据操作数预处理单元的输出数据和乘数的最高位产生最后部分积的低m+1位;所述其余部分积产生单元,用于根据Booth编码单元产生的编码和左移逻辑单元输出的数据产生最后部分积的其他位以及其他的部分积;最后部分积的其他位和最后部分积的低m+1位合并成最后部...

【专利技术属性】
技术研发人员:周沈刚李任伟
申请(专利权)人:青岛朗思信息科技有限公司
类型:发明
国别省市:山东,37

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

1