首页> 中国专利> 一种基于Bypass技术的低功耗乘法器

一种基于Bypass技术的低功耗乘法器

摘要

本发明公开了一种低功耗高速乘法器装置,实现两个N位操作数相乘运算,主要采用基于门控行列Bypass技术的全加器和半加器,该乘法器包括Booth编码逻辑,Booth译码逻辑,基于Bypass的部分积压缩树和快速加法器等部件。Booth编码与译码逻辑,采用改进型Booth编码方式,对2个N位操作数进行处理,得到M个部分积。部分积压缩树对M个部分积进行处理,其压缩树的基本单元为基于行列Bypass的全加器和半加器,该Bypass技术使用门控单元来选择性关闭部分求和逻辑,减少晶体管的活动开关性,降低关键路径上的延时,从而做到高性能低功耗设计。

著录项

  • 公开/公告号CN103092560A

    专利类型发明专利

  • 公开/公告日2013-05-08

    原文格式PDF

  • 申请/专利权人 中国科学院自动化研究所;

    申请/专利号CN201310027083.9

  • 申请日2013-01-18

  • 分类号G06F7/523(20060101);G06F1/32(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人宋焰琴

  • 地址 100190 北京市海淀区中关村东路95号

  • 入库时间 2024-02-19 19:02:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-13

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F 7/523 专利号:ZL2013100270839 变更事项:专利权人 变更前:北京思朗科技有限责任公司 变更后:上海思朗科技有限公司 变更事项:地址 变更前:102412 北京市房山区阎村镇阎富路1号11号楼4层402 变更后:201306 上海市浦东新区中国(上海)自由贸易试验区临港新片区环湖西二路888号C楼

    专利权人的姓名或者名称、地址的变更

  • 2017-12-19

    专利权的转移 IPC(主分类):G06F7/523 登记生效日:20171129 变更前: 变更后: 申请日:20130118

    专利申请权、专利权的转移

  • 2016-03-23

    授权

    授权

  • 2013-06-12

    实质审查的生效 IPC(主分类):G06F7/523 申请日:20130118

    实质审查的生效

  • 2013-05-08

    公开

    公开

说明书

技术领域

本发明属于集成电路设计中的乘法运算技术领域,尤其涉及一种基于 Bypass技术的低功耗乘法器。

背景技术

乘法器是集成电路中的重要部件,承担了大量的计算任务,广泛应用 于芯片的模块设计中。乘法器一般处于芯片的关键路径中,其速度的快慢, 功耗的大小对整个芯片的性能功耗有决定性的作用。随着芯片技术的发展 和纳米级工艺的进步,性能和功耗已成为评价芯片的两个最重要指标。工 艺朝着更小纳米级的方向发展,给芯片的速度带来了一定的提升,却对低 功耗的设计提出了挑战,而嵌入式系统的应用对低功耗提出更高要求,特 别是消费电子类芯片,因此低功耗芯片设计成为业界的研究热点。

一般地,高速乘法器采用Booth编码和树型结构进行设计,对于两个 N位操作数A,B的乘法操作,对B操作数进行Booth编码,以减少部分 积数目,进而减少累加级数的延时;然后对Booth译码后的部分积进行树 型压缩,相比于阵列式压缩,树型压缩可以大大降低累加的延时;最后利 用一个快速加法器将树型压缩的两个2N位结果求和,得到最终的2N位 乘法结果。

针对乘法器低功耗设计,学术界提出的较热门技术有行Bypass和列 Bypass技术,其主要思想是1位全加器将输入A,B,Ci中的某一个操作 数作为选通信号,如果其值为0,那么关闭该全加器,将另外两个操作数 传递到下一级使用。图1为采用行Bypass技术的4×4阵列乘法器,每一 行全加器使用同一个控制信号判断是否进行行Bypass操作,当门控和选 通器的控制信号为0时,将输入操作数直接传递到下一级全加器,当选通 信号为1时,执行FA的加法运算;图2为采用列Bypass技术的4×4阵 列乘法器,每一列全加器使用同一个控制信号判断是否进行列Bypass操 作,当控制信号为0时,该列的加法器全部被Bypass掉,相应的操作数 传递到下一级加法器中。

通过上面分析得知,行Bypass和列Bypass可以选择性的关闭部分运 算模块,Bypass全加器单元相比于常规全加器FA,当输入数据流向Bypass 路径时,活动的晶体管只有两个选通器,可大大减少晶体管的动态功耗, 同时关键路径的延时也得到降低。但是,这两种技术只能应用在较低速的 阵列乘法器当中,这是因为只有部分积使用阵列式压缩累加的时候,才能 使用行Bypass和列Bypass技术,具有一定局限性。由于树型结构的不规 则性,行Bypass技术和列Bypass技术无法应用在树型乘法器中。

所以,本文提出一种通用的行列Bypass技术,既可应用于阵列乘法 器设计,也可应用于Booth编码,树型乘法器的设计,还可用于各种压缩 树结构中,以实现高性能低功耗设计。

发明内容

有鉴于此,本发明的主要目的在于提供一种采用Bypass技术的高性 能低功耗乘法器装置,通过关闭无效通路的方式有效降低乘法器的功耗。

为达到以上目的,本发明提出了一种基于Bypass的高速低功耗乘法 器。该高速低功耗乘法器采用一种基于门控单元的行列Bypass技术,该 行列Bypass技术既可应用与阵列乘法器设计,也可应用与Booth编码,树 型乘法器的设计,还可用于各种压缩树结构中,以实现部分积压缩,达到 高性能低功耗设计。

从上述技术方案可以看出,本发明具有以下有益效果:

本发明的最大特点是在实现高性能的同时进行了低功耗设计。其低功 耗设计的核心部件是基于行列Bypass的全加器单元(FA)和半加器单元 (HA),用输入信号作为Bypass的选通信号,选择性关闭图6中示出的 A+1结构601和A+B+1结构,以降低其开关活动性。相比常规全加器604, 基于行列Bypass的全加器在性能和功耗上均有优势,如果Bypass成功, 那么关键路径上只有或门和选通,性能明显提升,因为常规全加器的关键 路径上有一级与门,一级或门和一级异或门,同理,基于行列Bypass的 半加器相比于常规半加器602,也有性能功耗上的提升。通过分析得知, 采用Bypass结构实现的乘法器较采用标准结构实现的乘法器在性能和功 耗上都有一定程度的改善。

用C语言搭建基于本发明构建的16×16的改进型基4Booth编码型 Wallance树乘法器模型,使用0-1随机分布全覆盖测试进行仿真,得到的 Bypass概率约为40%,而根据图3所示,当Bypass成功时,相比于常规 全加器单元或半加器单元,可以关闭约1/3的晶体管,大大降低晶体管 的动态功耗,如果Bypass失败,那么仅仅增加两个选通器的功耗,代价 非常小。同时,如果采用改进型基4Booth编码技术,相比于全阵列乘法 器,部分积的数目减少约一半,累加需要的全加器和半加器的数量减少一 半左右,相应节省了很多晶体管的静态功耗和动态功耗。同时也能减少部 分积压缩树计算时间,提高性能。

附图说明

图1是现有技术中采用行Bypass技术的4×4阵列乘法器结构示意图;

图2是现有技术中采用列Bypass技术的4×4阵列乘法器结构示意图;

图3是本发明中基于Bypass的乘法器的基本结构示意图;

图4是本发明中基于行列Bypass技术的全加器和半加器的结构示意 图;

图5是本发明中行列Bypass技术的全加器和半加器中常用的四种门 控单元类型的结构示意图;

图6是现有技术中半加器和全加器的逻辑实现以及本发明中基于行列 Bypass的A+1结构和A+B+1结构示意图;

图7是本发明优选实施例中所述乘法器的结构示意图;

图8是改进型基4Booth编码表;

图9是改进型基4Booth编码电路和产生1位部分积的译码电路;

图10是本发明优选实施例中所述乘法器的实现逻辑示意图;

图11是本发明优选实施例中32位的超前进位加法器的结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实 施例,并参照附图,对本发明进一步详细说明。

本发明提出了一种基于Bypass的高速低功耗乘法器。该高速低功耗 乘法器采用一种基于门控单元的行列Bypass技术,该行列Bypass技术既 可应用于阵列乘法器设计,也可应用于Booth编码,树型乘法器的设计, 还可用于各种压缩树结构中,以实现部分积压缩,达到高性能低功耗设计。

如图3所示,本发明公开了一种基于Bypass的乘法器301,其包括: Booth编码模块308,Booth译码模块307,基于行列Bypass全加器和半加 器的部分积压缩树305和快速加法器306。其中,该乘法器301接收两个 N位操作数,对其进行乘法操作,首先Booth编码模块308对第一个操作 数302进行Booth编码;Booth译码模块307的输入为乘法器的第二个操 作数303和Booth编码模块308输出的编码值,其将乘法器的第二个操作 数303与所述编码值进行相乘操作,并产生多组部分积304;然后采用基 于行列Bypass的全加器和半加器的部分积压缩树处理所述多组部分积304, 得到两个压缩结果;最后将压缩得到的两个结果输入到加法器306中进行 加法操作,从而得到最终结果。

上述方案中,图3所示的低功耗乘法器结构301可以接收两个N位操 作数302和303,其中操作数302输入给Booth编码模块307,操作数303 输入给Booth译码模块308。

Booth编码模块308接收操作数302,使用操作数302的数值进行Booth 编码生成多组编码信号,编码形式不同可能产生不同类型的编码信号,常 用的有基4Booth编码、基8Booth编码和改进型的Booth编码等。

Booth译码模块307接收操作数303和Booth编码模块输出的编码信 号,根据所述编码信号对操作数303进行译码操作,可以生成一系列不同 位宽和权重的部分积,并输出给部分积压缩树。

基于行列Bypass全加器和半加器的部分积压缩树305进行多组部分 积压缩操作,将一系列的部分积压缩成两个输出。这个模块是低功耗设计 的核心模块,也是高性能低功耗设计的关键部分,其主要核心计算单元是 前文所述的基于行列Bypass全加器和半加器。

上述方案中,快速加法器306用来对部分积压缩树得到的两个结果进 行最终求和操作,得到最终乘法结果并输出。

上述方案中,低功耗设计的核心模块是基于行列Bypass的全加器和 半加器的部分积压缩树304,所述部分积压缩树304的核心计算单元如图 4所示,为基于行列Bypass的全加器401和半加器402。全加器401不仅 能够实现常规全加器3∶2压缩的功能,而且能够使用门控单元选择性关 闭加法模块405,其中输入操作数B与E相或后生成控制信号407,用于 控制门控单元403和选通器404,以此来判断是否进行Bypass操作。当控 制信号407为1时,加法器使用加法模块405进行全加操作,即A+D+1, 其中D为操作数B和E的与信号;当控制信号407为0时,关闭加法模 块405,直接将输入操作数A选通输出给全加器的输出S。同样,基于行 列Bypass的半加器402不仅能够实现常规半加器操作,而且能够使用门 控单元和选通器选择性关闭A+1加法模块406,其中,输入的操作数B为 门控单元和选通器的控制信号。当输入操作数B为1时,半加器使用A+1 加法模块406进行半加操作,当输入操作数B为0时,关闭A+1加法模 块406,直接将另一输入操作数A选通输出给半加器的输出S。

图5所示为基于行列Bypass的全加器401和半加器402中可使用门 控单元的各种形式,门控单元505可有四种形式实现:三态门501,与门 502,锁存器(Latch)503和传输门开关504。门控单元可以有效隔离输出 信号与输入信号,关闭门控单元后面的模块,降低晶体管的开关活动性。 当门控单元的控制信号S=1时,四种实现形式的门控输出Q都等于A;当 门控单元的控制信号S=0时,三态门501的输出Q为高阻,与门502的输 出Q为0,Latch503的输出Q保持不变,传输门开关504的输出Q为高 阻。

图6为正常半加器602和正常全加器604结构以及图4中基于行列 Bypass的全加器401和半加器402行列Bypass结构中使用的A+1结构601 和A+B+1结构603的电路图。正常半加器602需要一个与门和异或门才 能实现,而A+1结构601仅仅使用反相器就能完成,其进位C为A的值, 输出S为A的反向数据,其减少了3/4的晶体管数目;正常的全加器604 需要两个与门,一个或门和两个异或门才能实现,而A+B+1模块603使 用一个或门和一个同或门可以实现,即输入操作数A和B经与门得到进 位C,A和B经同或门得到输出S,其晶体管的数目减少一半。可见A+1 结构601相比于正常半加器602在功耗和晶体管数目有所降低,速度上有 所提高,同理,A+B+1结构603相比于正常全加器604在功耗和晶体管数 目也有所降低,在速度上有所提高。

为使本发明的目的、技术方案和优点更加清楚明白,以下以无符号16 位操作数、基4Booth编码方式、Wallance压缩树为例来说明本发明提出 的基于Bypass的乘法器,其结构如图7所示。

如图7所示,基于Bypass的乘法器结构701主要包括:基4Booth编 码模块708,基4Booth译码模块707,基于行列Bypass全加器和半加器的 Wallance压缩树模块705和超前进位加法器模块706,该乘法器接收两个 无符号16位的操作数,进行无符号乘法操作,得到32位的最终计算结果。 下面针对上述模块的具体设计,进行详细介绍。

为解决阵列乘法器加法阵列大,部分积过多,运算速度慢等缺点, Booth编码技术应运而生。本实施例采用基4的Booth编码方式,基4Booth 编码技术将一个操作数Y中的每两位作为一个编码组,对另一个操作数X 进行处理。如下所示:

00->0;01->*1;10->*2;11->*3

上述编码中,左边两位数字代表操作数Y中的相邻两位,任意两位有四种可 能:00,01,10,11;右边一位代表编码输出,对应四种编码:0,1,2,3,将所述操作 数Y的编码输出与操作数X相乘,得到的部分积集合是{0,1X,2X,3X},这 样,操作数Y的每两位产生一个部分积,将部分积的数量减少一半。在应 用过程中,3X的求解比较复杂,包含一个移位操作和加法操作,于是改 进型的基4Booth编码技术应运而生。在编码时,通过同时观察3位来加 以简化,即:可在操作数Y的最低位后面加一“考察位”:考察y2i+1y2iy2i-1, 其中y2i-1为“考察位”。生成下一个部分积时,考察y2i+3y2i+2y2i+1,其中y2i+1为“考察位”,i的最小值为0,最大值为操作数Y位数的一半,y-1默认为0。 添加考察位后,可以避免进行3X的求解操作。考察位是辅助编码用的, 加上考察位后,一组编码可以产生一个部分积。该改进后的基4Booth编 码方式将操作数Y分成相邻的3个一组的编码,所以如果是16位的操作 数Y,则会有9个编码组,有9个考察位,产生9个部分积。

图8为改进型的基4Booth编码表,其描述了添加考察位后,Booth编 码的变化,由图8看出,部分积的集合变为{0,1X,2X,-2X,-X},这样所有 的部分积都可以由一步移位或者取反操作得到,其优点是可以将部分积数 目减少为原来的一半左右,可用于无符号数、有符号数和二进制补码形式 的乘法器中,图7中Booth编码的行为级原理基于图8的基4Booth编码 表得出。

图9为具体的上述改进型的基4Booth编码与译码电路的行为级设计 和电路级设计。在行为级Booth编码901中,其输入来自乘数Y,输出对 应于图8的改进型基4Booth编码表。当Booth编码值为1时,b1输出1, b2输出1,neg输出0;当Booth编码值为2时,b1输入为0,b2输入为 1,neg输出0;当Booth编码值为-1时,相应的b1输出1,b2输出1,neg 输出1;当Booth编码为-2时,相应的b1输出为0,b2输出为1,neg输 出1;当Booth编码值为0时,b1=0,b2=0,neg=0。在Booth译码902 中,其输入Xi,Xi-1来自被乘数X的连续两位数据,选通信号来自Booth 编码901,其输出为一个部分积PPCi。在Booth译码模块902中,Booth 编码模块901的输出b1,b2,neg作为Mux3和Mux2的选通信号,选择 {0,Xi,Xi-1}中的一个作为部分积的输出,即当b1为1时,选择Xi,当b2 为1时,选择Xi-1,当b1和b2均为0时,选择0;由此可知部分积的输 出可以为{-Xi,-Xi-1,0,Xi-1,Xi}。当然完整的Booth编码电路由(N/2+1)组 Booth编码模块901组成,而完整的Booth译码电路由(N/2+1)×N个译 码模块902组成。在图9中,电路级Booth编码908使用门级电路完成行 为级Booth编码901的设计,Booth编码电路908中,操作数Y中的3位 Y2i+1,Y2i,Y2i-1,Y2i-1与Y2i经异或门得到b1,Y2i和Y2i+1经异或非门后与b1 经或非门得到b2,Y2i-1与Y2i经与非门后与Y2i+1经与门得到neg;在Booth 译码电路909中,另一操作数X的2位Xi、Xi-1,b1与Xi经与门后得到 的结果与b2和Xi-1经与门得到的结果经或非门,再与neg经异或非门,生 成部分积PPCji

图10示出两个16位数进行完上述改进型的基4Booth编码后的部分 积进行Wallance树压缩的过程,16位无符号数乘法操作,经过改进型基 4Booth编码译码产生9个部分积(PPC0,PPC1,PPC2...PPC8)。

本发明公开的Wallance压缩树中使用的基本单元是基于行列Bypass 技术的全加器(FA)1010和半加器(HA)1011。这两种基本单元能够选 择性关闭部分电路,减少晶体管的活动开关性,降低芯片的功耗。其中, FA1010实现的是3:2压缩的功能,根据图4中的全加器401的结构,将 第二、第三个操作数相与后的结果作为Bypass的选通信号,控制是否进 行Bypass操作。

上述Wallance压缩树1001使用基于行列Bypass的全加器和半加器 1011作为基本单元,一共构建了4级Wallance压缩树,其中每一级中的 小黑点,S或S的反码是该级Wallance压缩树的1位输入信号,小黑点表 示对操作数进行Booth编码后的1位部分积信号,S表示部分积的符号位, 每一行表示一个部分积,其前面的1和S反码位描述了对部分积的简化操 作,利用的是最基本的Wallance算法。第一级Wallance压缩树1002将9 个部分积数压缩成6个部分积,使用了49个基于行列Bypass的全加器1010 和9个基于行列Bypass的半加器1011单元。第一级Wallance压缩树的输 出到第二级压缩树1003中,使用了32个基于行列Bypass的全加器1010 和6个基于行列Bypass的半加器1011单元,将6个部分积压缩成4个部 分积。第三级压缩树1004使用21个基于行列Bypass的全加器1010和2 个基于行列Bypass的半加器1011单元,将4个的部分积压缩成3个部分 积。最终第四级压缩树1005使用12个基于行列Bypass的全加器1010和 9个基于行列Bypass的半加器单元,将3个的部分积压缩成2个,得到两 个结果进位操作数Carry和求和操作数Sum,经过32位超前进位加法器 110的相加求和运算,得到乘法器最终结果,完成基于Bypass技术的低功 耗乘法运算。

上述Wallance压缩树1012简化概括了4级压缩树的结构,Wallance 压缩树中除了全加器,还包括半加器,为简化起见仅示出了全加器。其中, 每一个空圆圈表示一个部分积,即为1、S、S反码和黑点表示的一行部分 积操作数,FA表示一组全加器,功能是将3个部分积压缩为两个部分积 后作为下一级全加器的输入,9个部分积经过4级压缩之后,变成了2个 结果。

图11所示为32位超前进位加法器110的行为级实现和门级实现,主 要功能是实现两个32位操作数A和操作数B的加法操作,最后得到和数 S[31:0]和进位C32,其中基本4位计算模块116包括两部分:4位PG计 算模块111和4位求和模块112。4位PG计算模块111,负责计算进位传 播位Pi和进位产生位Gi,以两个输入操作数的每4位为一组和前一级进位 作为输入来运算,其行为级描述如下:其中Ai,Bi为两个第i位操作数, Ci为第i位的进位,Pi为第i位的进位传播位,Gi为第i位的进位产生位, 则:

Gi=Ai*Bi

Pi=AiBi

Ci=Gi+PiCi-1

其中,,*表示两个数相与,表示两个数异或,+表示两个数相或; 其门级的电路实现为如图11中模块113所示,Ai和Bi经过与门得到Gi, Ai和Bi经过异或门得到Pi,Pi和Ci经过与门再与Gi经过或门得到Ci+1

4位求和模块112接收4位一组的进位传播位Pi、进位产生位Gi和前 一级的进位Ci,来计算最终的结果Si,其行为级描述为:

Si=PiCi

其门级的电路实现为如图11中模块114所示,Pi和Ci信号经过一级 异或门得到Si信号。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行 了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而 已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号