首页> 中国专利> 一种减少SRT-4 除法和开根部件循环次数的方法及电路

一种减少SRT-4 除法和开根部件循环次数的方法及电路

摘要

本发明涉及微处理器体系结构技术领域,为当代微处理器加快除法和开根部件的计算速度同时降低该部件功耗提供了一种新型的处理方法。该方法是专门针对使用SRT-4算法的除法和开根部件。执行循环计算过程中,如果发现本次循环得到的两位结果如果为“00”,则直接可以得到四位结果;如果发现本次循环得到的两位结果如果为“01”,则直接可以得到三位结果。这样,本发明可以减小循环次数,提高除法和开根部件的处理速度同时降低功耗的目的。

著录项

  • 公开/公告号CN1515998A

    专利类型发明专利

  • 公开/公告日2004-07-28

    原文格式PDF

  • 申请/专利权人 中国科学院计算技术研究所;

    申请/专利号CN03155313.3

  • 发明设计人 刘华平;胡伟武;

    申请日2003-08-26

  • 分类号G06F7/52;

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

  • 代理人周国城

  • 地址 100080 北京市海淀区中关村科学院南路6号

  • 入库时间 2023-12-17 15:22:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-09-12

    专利权有效期届满 IPC(主分类):G06F 7/52 专利号:ZL031553133 申请日:20030826 授权公告日:20060823

    专利权的终止

  • 2015-04-22

    专利实施许可合同备案的生效 IPC(主分类):G06F7/52 合同备案号:2015990000066 让与人:中国科学院计算技术研究所 受让人:龙芯中科技术有限公司 发明名称:一种减少SRT-4除法和开根部件循环次数的方法及电路 申请公布日:20040728 授权公告日:20060823 许可种类:普通许可 备案日期:20150211 申请日:20030826

    专利实施许可合同备案的生效、变更及注销

  • 2015-03-18

    专利实施许可合同备案的注销 IPC(主分类):G06F7/52 合同备案号:2010990000062 让与人:中国科学院计算技术研究所 受让人:龙芯中科技术有限公司 解除日:20141231 申请日:20030826

    专利实施许可合同备案的生效、变更及注销

  • 2010-03-31

    专利实施许可合同的备案 合同备案号:2010990000062 让与人:中国科学院计算技术研究所 受让人:北京龙芯中科技术服务中心有限公司 发明名称:一种减少SRT-4除法和开根部件循环次数的方法及电路 授权公告日:20060823 许可种类:排他许可 备案日期:2010.1.28 合同履行期限:2009.12.16至2028.12.31合同变更 申请日:20030826

    专利实施许可合同的备案

  • 2006-08-23

    授权

    授权

  • 2004-09-29

    实质审查的生效

    实质审查的生效

  • 2004-07-28

    公开

    公开

查看全部

说明书

技术领域

本发明涉及微处理器体系结构技术领域,特别涉及一种减少SRT-4除法和开根部件循环次数的方法及电路,尤其是微处理器中除法(包括点除法,定点除法),开根部件设计的处理方法。

背景技术

除法,开根部件是处理器(包括一些DSP和嵌入式芯片)中的非常重要功能部件,这些部件的性能是影响处理器性能的一个重要方面(参照文献S.Oberman with M.Flynn Design Issues in High PerformanceFloating Point Arithmetic Units PhD Thesis,Stanford,Jan.1997)。除法,开根部件的实现方法比较多,本发明涉及的领域主要是针对使用基4的SRT算法(即SRT-4)(参照文献M.D.Ercegovac and T.Lang,Division and Square Root:Digit Recurrence Algorithms andImplementations,Kluwer Academic Publishers,Norwell,Mass.,1994.)实现的除法和开根部件。

SRT-4算法是一种数字循环算法,该算法是采用减法方法进行循环计算得到结果。在每次循环过程中,该算法能得到2位结果。对于单精度的浮点数来说至少需要12次循环才能得到最后结果;而对于双精度的浮点数来说,至少需要循环26次才能得到最后结果。

对除法的SRT-4算法来说,循环算法的表达式如下:

               w[j+1]=4w[j]-dqj+1

其中,初始值w[0]=x(x是被除数),w[j]是第j次循环得到的部分余数,4是基数,d是除数,qj+1是第j次循环得到的商。

对开根的SRT-4算法来说,循环算法的表达式如下:

               w[j+1]=4w[j]-2S[j]sj+1-sj+124-(j+1)

其中,初始值w[0]=x(x是被开根数),w[j]是第j次循环得到的部分余数;4是基数;sj+1是第j次循环得到的开根结果,S[j]是前j次循环产生的开根结果。

以下,我们将对比除法,开根部件中SRT-4算法的一般结构和发明给出的结构,充分说明我们发明中SRT-4的处理方法。

适合SRT-4除法,开根部件的一般结构

为了说明SRT-4的传统结构,我们首先以除法为例(开根的结构和除法的结构类似)。以SRT-4为算法的除法传统结构可由图1表示。我们为SRT-4算法选择{-2,-1,0,1,2}为商的数字集,当然我们给出的发明适用于SRT-4算法的任何商数字集。在图1中,我们为SRT-4算法选择{-2,-1,0,1,2}为商的数字集,部分余数w[j]采用了冗余表示方法,商采用在线变化的方法(On-the-Fly Conversion)(参照文献M.D.Ercegovacand T.Lang,″On-the-fly Conversion from Redundant into ConventionalRepresentation,″IEEE Transact ions on Computers,vol.C-36,pp.895--897,July 1987)构成基本的传统结构。

发明内容

本发明的技术方案如下:

一种减少SRT-4除法和开根部件循环次数的一种新型处理方法:对使用SRT-4算法的除法,开根部件来说,在执行循环计算过程中,如果发现本次循环得到的两位结果如果为“00”,则直接可以得到四位结果;如果发现本次循环得到的两位结果如果为“01”,则直接可以得到三位结果,这样,本发明可以减小循环次数,提高除法和开根部件的处理速度同时降低功耗的目的。

所述的使用SRT-4算法的除法,包括浮点除法,定点除法。

本发明的SRT-4除法和开根结构

实际上,当本次循环得到的两位结果为“00”时,使用本发明的SRT-4除法和开根算法结构可以跳过这次循环并得到下次循环的结果。这就意味着当这次循环得到的两位结果为“00”时,本次循环可以得到4位。这主要是因为以下事实:

1)为了得到下次循环的部分余数和,我们不必要经过传统结构中的“保存进位加法器”(Carry Save Adder),而只要通过一个两位的移位处理。

2)下一次选择函数表的输入值可以很容易由本次循环的部分余数推出。实际上,这个值只需要通过对本次部分余数执行两位,并且把这最高的8位相加就可以得到。

附图说明

图1是基4的传统的电路结构图;

图2是本发明改进后的SRT-4电路结构图;

图3是本发明进一步改进后的SRT-4电路结构图。

图1主要由除数寄存器(1),部分余数进位寄存器(2),部分余数生成位寄存器(3),先行进位加法器(4),商数字选择表(5),5选1的选择器(6),保存进位加法器(7),在线商变换部分(8)等部分组成。部分余数分别保存在“部分余数进位寄存器”(Residual CarryRegisters)和“部分余数生成位寄存器”(Residual Sum Registers)中;除数保存在“除数寄存器”中。根据SRT算法,该结构首先利用“先行进位加法器”(Carry Look-ahead Adder)把保存在“部分余数进位寄存器”和“部分余数生成位寄存器”中的部分余数w[j]的高8位相加得到“商数字选择表”的输入值。然后通过“商数字选择表”得到本次循环的结果qj+1,该值是商数字集中的一个元素。在得到qj+1之后,利用“5选1的选择器”根据qj+1值从数字集{-2d,-d,0,d,2d}中选择dqj+1值。并且把该值作为“保存进位加法器”(Carry Save Adder)的一个输入值得到下一次循环开始的部分余数。同时,使用“在线商变换部分”得到每次循环后的商。

图1中,除数寄存器(1)输出连接于5选1的选择器(6),部分余数进位寄存器(2)和部分余数生成位寄存器(3)的输出分别连接于先行进位加法器(4)和保存进位加法器(7),先行进位加法器(4)的输出连接于商数字选择表(5),商数字选择表(5)的输出连接于在线商变换部分(8)。

图2的电路结构比传统的结构如图1增加了先行进位加法器,商数字选择表和3个2选1的选择器。该电路结构和基本步骤和图1类似。不同的是,图2有两套“先行进位加法器”和“商数字选择表”部分,这两个重叠部分分别根据部分余数的前8位和部分余数的第3位到第10位的数值决定得到两个商结果q1,q2。对使用SRT-4算法的除法,开根部件来说,在执行循环计算过程中,如果q1的两位结果为“00”,则通过“5选1的选择器”根据q2的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”(Carry Save Adder)的三输入则由dqj+1,4wc[j]和4ws[j]组成;并且可以得到本次循环的4位商,{00q2};当选择的商q1不为“00”时,则通过“5选1的选择器”根据q1的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”(Carry Save Adder)的三输入则由dqj+1,wc[j]和ws[j]组成;并且可以得到本次循环的2位商,{q1};同时“在线商变换部分”判断是否本次循环产生4位商,并且得到第j次循环后的商结果。

其中,部分余数进位寄存器(2)和部分余数生成位寄存器(3)的输出分别连接于路2个先行进位加法器(4),再由先行进位加法器(4)连接于商数字选择表(5),商数字选择表(5)的输出连接到在线商变换部分(8),另外,部分余数进位寄存器(2)和部分余数生成位寄存器(3)的输出分别连接于2个2选1的选择器(9),这两个选择器的另外一个输入是商数字选择表(5)的输出q1。2选1的选择器(9)的输出再连接于保存进位加法器(7),商数字选择表(5)的输出经2选1的选择器(10)连接于5选1的选择(6)。

图3的电路结构比传统的结构如图1增加了2个先行进位加法器,2个商数字选择表和3个3选1的选择器。该电路结构和基本步骤和图1类似。不同的是,图3有3套“先行进位加法器”和“商数字选择表”部分,这三个重叠部分分别根据部分余数的前8位,部分余数的第2位到第9位的数值,部分余数的第3位到第10位的数值决定得到三个商结果q1,q2,q3。对使用SRT-4算法的除法,开根部件来说,在执行循环计算过程中,如果q1的两位结果为“00”,则通过“5选1的选择器”根据q3的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”(Carry Save Adder)的三输入则由dqj+1,4wc[j]和4ws[j]组成;并且可以得到本次循环的4位商,{00q3};如果q1的两位结果为“01”,则通过“5选1的选择器”根据q2的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”(Carry Save Adder)的三输入则由dqj+1,2wc[j]和2ws[j]组成;并且可以得到本次循环的3位商,{0q2};当选择的商q1不为“00”,也不为“01”时,则通过“5选1的选择器”根据q1的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”(Carry Save Adder)的三输入则由dqj+1,wc[j]和ws[j]组成;并且可以得到本次循环的2位商,{q1};同时“在线商转化部分”判断本次循环是否产生2,3,4位商,并且得到第j次循环后的商结果。

其中,部分余数进位寄存器(2)和部分余数生成位寄存器(3)的输出分别连接于路3个先行进位加法器(4),再由先行进位加法器(4)连接于商数字选择表(5),商数字选择表(5)的输出连接到在线商变换部分(8),另外,部分余数进位寄存器(2)和部分余数生成位寄存器(3)的输出分别连接于2个3选1的选择器(10),商数字选择表(5)的输出q1也连接2个3选1的选择器。3选1的选择器(10)的输出再连接于保存进位加法器(7),商数字选择表(5)的输出经3选1的选择器(10)连接于5选1的选择(6)。

本发明给出图1中的除法结构的改进结构,如图2,图3所示。对SRT-4算法来说,开根算法和除法算法类似,该改进结构也适用于开根结构。

本发明结构的进一步改进

本发明以上的结构,我们只考虑如果前一次循环得到的两位结果值为“00”时的情况。而实际上我们可以在得到的两位结果值为“01”时也做一些优化。

当前一次循环得到的两位结果为“01”时,我们可以改进本发明的结构如图2,使得本次循环还可以得到三位结果。改进的结构如图3所示。对SRT-4算法来说,开根算法和除法算法类似,该改进结构也适用于开根结构。

比较本发明与一般除法和开根部件的处理方法,可以知道本发明需要增加一定的硬件逻辑以及关键路径上很少的时间延迟。但是,我们可以非常明显的看出本发明有以下优点:

1)加快计算速度;一般除法,开根部件采用固定循环次数的方法,这样不能充分利用SRT-4算法循环得到结果为“00”和“01”的特点减小循环次数。实际情况中,我们可以采用本发明减小采用SRT-4算法的除法和开根部件的循环次数,从而加快计算速度。根据我们的实验,对采用SRT-4的除法和开根部件来说,如果采用本发明图2中的结构,即只跳过当本次循环的结果为“00”时的循环,我们可以每次循环平均可以得到2.5位结构。这样,对于双精度除法和开根来说,改进的方法只需要55/2.5=22次循环;而正常的方法需要55/2=28次循环。对单精度浮点除法和开根,改进的方法只需要25/2.5=10次循环;而正常的方法需要25/2=13次循环。因此,对双精度的除法和开根来说,改进方法可以平均减少6次循环;对单精度的除法和开根来说,改进方法可以平均减少3次循环。

2)减小功耗;因为加快计算速度,减少了需要循环次数,所以同时能减少除法和开根部件的功耗。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号