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

文档序号:6377354阅读:304来源:国知局
专利名称:一种减少srt-4 除法和开根部件循环次数的方法及电路的制作方法
技术领域
本发明涉及微处理器体系结构技术领域,特别涉及一种减少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 RootDigit Recurrence Algorithms andImplementations,Kluwer Academic Publishers,Norwell,Mass.,1994.)实现的除法和开根部件。
SRT-4算法是一种数字循环算法,该算法是采用减法方法进行循环计算得到结果。在每次循环过程中,该算法能得到2位结果。对于单精度的浮点数来说至少需要12次循环才能得到最后结果;而对于双精度的浮点数来说,至少需要循环26次才能得到最后结果。
对除法的SRT-4算法来说,循环算法的表达式如下w[j+1]=4w[j]-dqj+1其中,初始值w
=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
=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)减小功耗;因为加快计算速度,减少了需要循环次数,所以同时能减少除法和开根部件的功耗。
权利要求
1.一种减少SRT-4除法和开根部件循环次数的一种新型处理方法其特征在于,对使用SRT-4算法的除法,开根部件来说,在执行循环计算过程中,如果发现本次循环得到的两位结果如果为“00”,则直接可以得到四位结果;如果发现本次循环得到的两位结果如果为“01”,则直接可以得到三位结果。
2.根据权利要求1的减少SRT-4除法和开根部件循环次数的方法,其特征在于,所述的使用SRT-4算法的除法,包括浮点除法,定点除法。
3.一种减少SRT-4除法和开根部件循环次数的方法其步骤如下对使用SRT-4算法的除法,开根部件来说,在执行循环计算过程中,如果q1的两位结果为“00”,则通过“5选1的选择器”根据q2的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”的三输入则由dqj+1,4wc[j]和4ws[j]组成;并且可以得到本次循环的4位商,{00q2};当选择的商q1不为“00”时,则通过“5选1的选择器”根据q1的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”的三输入则由dqj+1,wc[j]和ws[j]组成;并且可以得到本次循环的2位商,{q1};同时在线商变换部分判断是否本次循环产生4位商,并且得到第j次循环后的商结果。
4.根据权利要求3的减少SRT-4除法和开根部件循环次数的方法,其特征在于,所述的使用SRT-4算法的除法,包括浮点除法,定点除法。
5.一种减少SRT-4除法和开根部件循环次数的方法其步骤如下对使用SRT-4算法的除法,开根部件来说,在执行循环计算过程中,如果q1的两位结果为“00”,则通过“5选1的选择器”根据q3的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”的三输入则由dqj+1,4wc[j]和4ws[j]组成;并且可以得到本次循环的4位商,{00q3};如果q1的两位结果为“01”,则通过“5选1的选择器”根据q2的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”的三输入则由dqj+1,2wc[j]和2ws[j]组成;并且可以得到本次循环的3位商,{0q2};当选择的商q1不为“00”,也不为“01”时,则通过“5选1的选择器”根据q1的值从数字集{-2d,-d,0,d,2d}中选择本次循环dqj+1值,“保存进位加法器”的三输入则由dqj+1,wc[j]和ws[j]组成;并且可以得到本次循环的2位商,{q1};同时在线转化部分判断本次循环是否产生2,3,4位商,并且得到第j次循环后的商结果。
6.根据权利要求5的减少SRT-4除法和开根部件循环次数的方法,其特征在于,所述的使用SRT-4算法的除法,包括浮点除法,定点除法。
7.一种减少SRT-4除法和开根部件循环次数的装置,主要由除数寄存器(1),部分余数进位寄存器(2),部分余数生成位寄存器(3),先行进位加法器(4),商数字选择表(5),5选1的选择器(6),保存进位加法器(7),在线商变换部分(8)和2选1的选择器(9)组成,其中,除数寄存器(1)输出连接于5选1的选择器(6),其特征在于,部分余数进位寄存器(2)和部分余数生成位寄存器(3)的输出分别连接于路2个先行进位加法器(4),再由先行进位加法器(4)连接于商数字选择表(5),商数字选择表(5)的输出连接到在线商变换部分(8),另外,部分余数进位寄存器(2)和部分余数生成位寄存器(3)的输出分别连接于2个2选1的选择器(9),商数字选择表(5)的输出q1也连接2个2选1的选择器,2选1的选择器(9)的输出再连接于保存进位加法器(7),商数字选择表(5)的输出经2选1的选择器(10)连接于5选1的选择(6)。
8.一种减少SRT-4除法和开根部件循环次数的装置,主要由除数寄存器(1),部分余数进位寄存器(2),部分余数生成位寄存器(3),先行进位加法器(4),商数字选择表(5),5选1的选择器(6),保存进位加法器(7),在线商变换部分(8)和3选1的选择器(10)组成,其中,除数寄存器(1)输出连接于5选1的选择器(6),其特征在于,部分余数进位寄存器(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)。
全文摘要
本发明涉及微处理器体系结构技术领域,为当代微处理器加快除法和开根部件的计算速度同时降低该部件功耗提供了一种新型的处理方法。该方法是专门针对使用SRT-4算法的除法和开根部件。执行循环计算过程中,如果发现本次循环得到的两位结果如果为“00”,则直接可以得到四位结果;如果发现本次循环得到的两位结果如果为“01”,则直接可以得到三位结果。这样,本发明可以减小循环次数,提高除法和开根部件的处理速度同时降低功耗的目的。
文档编号G06F7/48GK1515998SQ0315531
公开日2004年7月28日 申请日期2003年8月26日 优先权日2003年8月26日
发明者刘华平, 胡伟武 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1