一种异步迭代的多位整型乘法器及其计算方法

文档序号:6604426阅读:299来源:国知局
专利名称:一种异步迭代的多位整型乘法器及其计算方法
技术领域
本发明属于64位计算机乘法器领域。特别涉及一种异步迭代的64位整型乘法器; 本发明还包括该乘法器的计算方法。
背景技术
乘法器是现代计算机的基本组成部分,其性能的高低直接影响到计算机的整体运 算和处理能力。现有乘法器的数学原理比较简单——扫描乘数的每一位,产生部分积,然后 将部分积进行累加,得到最终的结果。 上面的例子将5个部分积同时相加,需要4 (5-1)个加法器。这是一种阵列乘法器 的结构,η位阵列乘法器需要n-1个加法器,所需要的硬件较多。为了节省硬件资源,可以 采用一种迭代的结构,将η个部分积用同一个加法器进行加法运算,迭代计算n-1次,其原 理如下例所示 迭代乘法器需要较少的硬件资源,但是其速度较慢——η位乘法器需要进行Π-1 次迭代的加法运算。这种劣势在64位计算机中尤其突出,64位乘法器需要63次迭代,用64 位二进制能表示的最大无符号自然数为264-1 = 1844 67440737 0955 1615,18千亿亿!人 们极少使用如此大的数字。而人们经常使用的数字完全可以用较少的位数表示,例如1000 只用10个二进制数表示即可。但是由于64位CPU采用统一的表达形式,即使像1000这 样的数字也需要用64位表示,即0000... 000 1111101000,前面有54个0。这样,即使对于1000这样较小的数字,普通的迭代乘法器也需要63次迭代。这63次迭代中,只有前9次有意义,而后54次所产生的部分积都为零。也就是说后54次加法运算只是进行无谓的加 0运算,浪费了整个乘法器的运算时间。随着计算机进入到64位时代,计算机每次运算的范围扩大了,运算能力也增强 了。乘法器作为一个基本的运算单元,性能也急需得到改善。

发明内容
本发明的目的在于克服现有技术的不足,设计一种能有效节省运算时间的异步迭 代的多位整型乘法器,本发明还包括该乘法器的计算方法。本发明包括如下技术特征一种异步迭代的多位整型乘法器,包括一个用于存放 被乘数的寄存器R1,一个用于存放乘数和中间计算值的移位寄存器R2,一个用于进行迭代 加法的加法器Al,移位寄存器R2在移位信号R2_CLK的作用下向右移动移位;寄存器Rl和 R2都与初始化信号Req连接;还包括一个用于检测乘数高位零的个数,从而动态改变迭代 乘法器累加次数的加法循环次数控制器,所述加法循环次数控制器通过移位信号R2_CLK 与移位寄存器R2连接。更进一步的,所述循环次数控制器包括一个八分频电路、一个八位移位寄存器、或 门连接电路;以及一个选择器与门;所述八分频电路输入端与加法时钟信号连接,其输出端与八位移位寄存器连接;或门连接电路包括八个八输入或门和七个二输入或门,所述八个八输入或门的输 入端与乘数的每个数位连接;每一个八输入或门的输出端分别与一个二输入或门和八位移 位寄存器连接;所述八位移位寄存器与选择器与门连接;所述选择器与门的输入端为CLK_add信号输入端和CLK_shif 信号输入端,所述 CLK_add信号为一个时钟周期可以满足一次64位的加法运算;CLK_shif 信号为不需要做加 法运算时,一个时钟周期满足一次移位操作;所述选择器与门的输出端分别连接移位信号 R2.CLK输出端和64分频器,所述64分频器的输出端为结果信号端Ack。本发明还包括一种异步迭代的多位整型乘法器的计算方法,先是扫描乘数MR,产 生部分积,然后将部分积进行累加,最后得到结果;还通过一个循环次数控制器检测乘数高 位零的个数,从而动态改变迭代乘法器累加的次数。跟进一步的,乘法器将64位的乘数MR按照8位一组分为8组,用一个八输入或门 检测该组是否都为O ;用Zg (7. . 0)表示;Do (i)表示需不需要对第i组进行迭代加法运算,Do (i)的逻辑关系为Do(i)= Do (i+1) Zg ⑴,其中 i = 0. . 6,I 表示逻辑或;Do (7) = Zg (7);如果对于第i组,Do(i) = 1,那么当j < i,Do(j)都为1 ;即如果一组需要进行迭 代运算,比它低位的部分积都需要进行迭代运算;如果对于第i组,Do (i) = 0,那么当j > i,Do(j)都为O ;即如果发现某个i,第 一次出现Do(i) =0,迭代加法运算就结束了 ;移位寄存器R2的移位信号R2_CLK的间隔时间由选择与门控制;如果需要做迭代 加法运算,时间间隔为CLK_add,一个时钟周期可以满足一次64位的加法运算;如果不需要 做加法运算,时间间隔为CLK_shif,一个时钟周期满足一次移位操作;CLK_shif时钟周期是CLK_add时钟周期的1/20 ;Do7. . DoO都被放在一个八位移位寄存器内;乘法器每做完一组的运算,CLK/8使 得八位移位寄存器向右边移一位;如果八位移位寄存器的最低位为1表示乘数的下一组仍 然需要运算,R2_CLK为CLK_add ;如果Do7. . DoO移位寄存器最低位为0,表示乘数的下一组以及其它高位的组都为 0,不需要再做迭代加法运算,运算结果经过多次正确的移位后即可输出,移位寄存器R2的 移位信号R2_CLK为CLK_shif ; 如果R2_CLK出现了 64个时钟脉冲,表示运算结束;64分频器将Ack置为1。本发明与现有技术相比,采用循环次数控制器检测高位零的个数,动态改变迭代 乘法器累加的次数,加快乘法器的速度,使得该乘法器可以节省大量的运算时间,并且在64 位计算机时代比在32位计算机时代更能发挥其速度优势。


图1乘法器输入输出接口定义;图2乘法器内部电路结构;
具体实施例方式图1为乘法器的输入输出信号定义MD是64位被乘数输入;MR是64位乘数输入; CLK_add为乘法器的加法运算时钟输入,其时钟周期必须满足一次迭代加法和一次移位的 时间;CLK_shif为乘法器的移位时钟输入,其时钟周期必须满足一次移位寄存器的移位的 时间;CLK_shif的时钟周期比CLK_add的时钟周期小的多,实验数据表明,CLK_shif的时 钟周期是CLK_add时钟周期的1/20 ;Req为乘法请求的输入信号。Result是128位结果输 出;Ack是乘法器是否完成运算的信号输出。它与外围电路的接口方式为CLK_add和CLK_ shif由外部时钟电路产生,电路启动就一直有效;外围电路检测Ack为0,说明乘法器空闲, 它向乘法器输出被乘数MD和乘数MR,并且将Req信号变为1,初始化R1、R2和Do7. . DoO移 位寄存器,启动一次乘法运算;乘法器对MD和MR进行相乘运算,得到结果Result后将Ack 变为1,告诉外围电路乘法完成;外围电路取走结果Result,并将Req清0,结束请求;乘法 器将Ack变0,等待下一次运算。图1显示的是一种异步握手电路。图2为乘法器内部电路结构。其工作原理如下被乘数MD放在一个普通64位寄 存器Rl中;乘数MR放在一个128位移位寄存器R2的后64位中;运算过程变量和最终结果 放在R2中。一次乘法运算之前必须初始化,使得Rl = MD,R2的前半部分为0,后半部分为 MR0如果Do7. . DoO移位寄存器的最低位为1,做加法迭代运算。每次加法迭代运算中, R2的最后一位和MD进行逻辑与运算(and)产生部分积,部分积与R2的前64位进行相加, 然后把结果放回到R2中,随后R2在移位信号R2_CLK的作用下向右移动移位;准备进行下
一次迭代运算。如果Do7. . DoO移位寄存器的最低位为0,不需要做加法迭代运算,只需要做移位 操作。每次移位操作,R2在移位信号R2_CLK的作用下向右移一位。一次乘法运算由若干次加法迭代运算和若干次移位操作组成。加法迭代运算和移位操作的总数为64次。对于普通迭代乘法器,每一次运算要进行64次迭代加法,哪怕最后进行多次加0 的迭代加法运算。本乘法器考虑到高位的MR产生的部分积为0,不需要再进行加法运算,结 果可以提前给出。为了达到这个目的,本乘法器设计了 一个全新的加法循环次数控制器。加法循环次数控制器是本乘法器的重要组成部分,图2左边是新循环次数控制器 的结构,下面介绍它的工作原理。乘法器将64位的乘数MR按照8位一组分为8组,用一个8 输入或门检测该组是否都为0 ;用Zg(7. · 0)表示;其中,Zg(7) = 0表示MR[63. · 56]都为0 ; Zg (7) = 1 表示 MR[63. · 56]不全为 0 ;Zg (6)对应 MR[55..48] ;. . . ;Zg(O)对应 MR[7..0]。Do (i)表示需不需要对第i组进行迭代加法运算,Do (i)的逻 辑关系为Do(i)= Do(i+l)|Zg(i)(ii=0..6,I 表示逻辑或);Do (7) =Zg (7)。如果第 i 组,Do ⑴=1, 那么对于j < i,Do(j)都为1 ;这意味着如果某一组需要进行迭代运算,比它低位的部分积 都需要进行迭代运算。如果第i组,Do(i) = 0,那么对于j > i,Do(j)都为O ;这意味着如 果发现某个i,第一次出现Do(i) =0,迭代加法运算就结束了。不需要再做迭代加法运算, 运算结果经过正确的移位后即可输出。Do7. . DoO的值被放到一个8位移位寄存器“Do7. . DoO移位寄存器”中,加法循环次 数控制器利用Do7. . DoO移位寄存器的最低位控制数据通路的时间间隔,完成不同的操作。 如果最低位为1,数据通路做1次加法迭代运算和1次移位操作;如果最低位为0,数据通路 不需要做加法迭代运算只需要做1次移位操作。下面举例说明乘数MR = 0000000 00000000 00000000 00000000 00110110 0000000000000000 001010011得至Ij :Zg7 = 0 ;Zg6 = 0 ;Zg5 = 0 ;Zg4 = 0 ;Zg3 = 1 ;Zg2 = 0 ;Zgl = 0 ;ZgO = 1得至Ij :Do7 = 0 ;Do6 = 0 ;Do5 = 0 ;Do4 = 0 ;Do3 = 1 ;Do2 = 1 ;Dol = 1 ;DoO = 1 ;对于这个乘数,乘法器需要做4组,总共是32次迭代加法运算(而传统方法需要 做64次迭代加法运算),和32次移位操作,根据实验数据,1次移位操作的时间仅仅是加法 运算时间的1/20,利用本方法,只需要一般乘法运算时间52. 5%。
权利要求
一种异步迭代的多位整型乘法器,包括一个用于存放被乘数的寄存器R1,一个用于存放乘数和中间计算值的移位寄存器R2,一个用于进行迭代加法的加法器A1,移位寄存器R2在移位信号R2_CLK的作用下向右移动移位;寄存器R1和R2都与初始化信号Req连接;其特征在于还包括一个用于检测乘数高位零的个数,从而动态改变迭代乘法器累加次数的加法循环次数控制器,所述加法循环次数控制器通过移位信号R2_CLK与移位寄存器R2连接。
2.根据权利要求1所述的异步迭代的多位整型乘法器,其特征在于所述循环次数控制 器包括一个八分频电路、一个八位移位寄存器、或门连接电路;以及一个选择器与门;所述八分频电路输入端与加法时钟信号连接,其输出端与八位移位寄存器连接; 或门连接电路包括八个八输入或门和七个二输入或门,所述八个八输入或门的输入端 与乘数的每个数位连接;每一个八输入或门的输出端分别与一个二输入或门和八位移位寄 存器连接;所述八位移位寄存器与选择器与门连接;所述选择器与门的输入端为CLK_add信号输入端和CLK_shif信号输入端,所述CLK_ add信号为一个时钟周期可以满足一次64位的加法运算;CLK_shif 信号为不需要做加法运 算时,一个时钟周期满足一次移位操作;所述选择器与门的输出端分别连接移位信号R2_ CLK输出端和64分频器,所述64分频器的输出端为结果信号端Ack。
3.根据权利要求2所述异步迭代的多位整型乘法器的计算方法,先是扫描乘数MR,产 生部分积,然后将部分积进行累加,最后得到结果;其特征在于还通过一个循环次数控制 器检测乘数高位零的个数,从而动态改变迭代乘法器累加的次数。
4.根据权利要求3所述的异步迭代的多位整型乘法器的计算方法,其特征在于乘法 器将64位的乘数MR按照8位一组分为8组,用一个八输入或门检测该组是否都为0 ;用 Zg(i),i = 0. 6 表示;Do(i)表示需不需要对第i组进行迭代加法运算,Do(i)的逻辑关系为Do(i)= Do (i+1) Zg ⑴,其中 i = 0. . 6,| 表示逻辑或;Do (7) = Zg (7);如果对于第i组,Do(i) = 1,那么当j < i,Do(j)都为1 ;即如果一组需要进行迭代运 算,比它低位的部分积都需要进行迭代运算;如果对于第i组,Do(i) = 0,那么当j > i,Do(j)都为0 ;即如果发现某个i,第一次 出现Do(i) = 0,迭代加法运算就结束了 ;移位寄存器R2的移位信号R2_CLK的间隔时间由选择与门控制;如果需要做迭代加法 运算,时间间隔为CLK_add,一个时钟周期可以满足一次64位的加法运算;如果不需要做 加法运算,时间间隔为CLK_shif,一个时钟周期满足一次移位操作;CLK_shif时钟周期是 CLK_add时钟周期的1/20 ;Do7. . DoO都被放在一个八位移位寄存器内;乘法器每做完一组的运算,CLK/8使得八 位移位寄存器向右边移一位;如果八位移位寄存器的最低位为1表示乘数的下一组仍然需 要运算,R2_CLK 为 CLK_add ;如果Do7. . DoO移位寄存器最低位为0,表示乘数的下一组以及其它高位的组都为0,不 需要再做迭代加法运算,运算结果经过多次正确的移位后即可输出,移位寄存器R2的移位 信号 R2_CLK 为 CLK_shif ;如果R2_CLK出现了 64个时钟脉冲,表示运算结束;64分频器将Ack置为1。
全文摘要
本发明属于64位计算机乘法器领域。特别涉及一种异步迭代的64位整型乘法器一种异步迭代的多位整型乘法器及其计算方法。本发明电路包括一个用于存放被乘数的寄存器R1,一个用于存放乘数和中间计算值的移位寄存器R2,一个用于进行迭代加法的加法器A1,移位寄存器R2在移位信号R2_CLK的作用下向右移动移位;寄存器R1和R2都与初始化信号Req连接;还包括一个用于检测乘数高位零的个数,从而动态改变迭代乘法器累加次数的加法循环次数控制器,所述加法循环次数控制器通过移位信号R2_CLK与移位寄存器R2连接。本发明采用循环次数控制器检测高位零的个数,动态改变迭代乘法器累加的次数,加快乘法器的速度,使得该乘法器可以节省大量的运算时间。
文档编号G06F7/523GK101866278SQ20101020472
公开日2010年10月20日 申请日期2010年6月18日 优先权日2010年6月18日
发明者刘怡俊 申请人:广东工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1