专利名称:一种定点除法部件中提前终止循环计算的方法
技术领域:
本发明涉及微处理器体系结构技术领域,特别涉及一种定点除法部件中提前终止循环计算的方法。尤其是微处理器中定点除法部件的处理方法。
背景技术:
定点除法是处理器(包括一些DSP和嵌入式芯片)中的非常重要功能部件,该部件的性能是影响处理器性能的一个重要方面。定点除法的实现方法比较多,本发明涉及的领域主要是针对使用SRT算法(参照文献M.D.Ercegovac and T.Lang,Division and Square RootDigitRecurrence Algorithms and Implementations,Kluwer AcademicPublishers,Norwell,Mass.,1994.)实现的定点除法部件。
SRT算法是一种数字循环算法,该算法是采用减法方法进行循环计算得到结果。在每次循环过程中,该算法得到最后的商结果中固定的位数。SRT算法除法的循环算法,可以由下面的表达式来定义w[j+1]=rw[j]-dqj+1w
=x其中,x表示被除数;w[j+1]表示第j次循环之后的部分余数;r表示SRT算法的基;d表示除数;qj+1表示第j次循环得到的商。从上述定义中,可以看出qj+1值由d,rw[j]组成的函数决定,这个函数称为商选择函数qj+1=SEL(w[j],d)一般采用SRT算法的定点除法部件,是采用固定循环次数的处理方法,严格按照算法来实现。例如采用基4的SRT算法,每次循环得到2位结果,对于单精度的定点除法来说至少需要16次循环才能得到最后结果;而对于双精度的定点除法来说,至少需要循环32次才能得到最后结果。
然而,在实际运算中,根据SRT算法的商选择函数可以知道,如果当部分余数和(w[j])为0时,那本次循环得到固定位数的值为0,同时可以得到下一次循环开始的部分余数(w[j+1])也为0。所以在SRT算法执行过程中,如果发现部分余数为0时,就可以停止循环算法,并且得出此后每次循环得到固定位数的值都为0,并且最后的余数为0。
本发明就是利用以上特点减少定点除法循环的次数,提高定点除法部件的性能。
发明内容
本发明的技术方案如下一种定点除法部件中提前终止循环计算的一种新型处理方法对使用SRT算法的定点除法部件来说,在执行定点除法循环计算过程中,如果发现部分余数为零,则立即停止循环,然后,根据SRT算法的基数以及完成定点除法需要的循环次数与停止循环时已经执行的循环次数的差值调整商,并得出余数为0,从而达到减小循环次数,加快定点除法速度同时降低功耗的目的。
一种定点除法部件中提前终止循环计算的方法其步骤如下;1)根据定点除法的两个操作数,计算得出最后结果需要循环次数;2)根据SRT算法,执行循环计算,得出每次循环的结果;与此同时判断部分余数是否为0,如果部分余数为0,则立即停止循环计算,同时给出停止循环计算的信号,并且给出最后余数为0的信号;如果部分余数不为0,则继续循环计算,直到本次循环次数等于需要循环的次数;3)计算需要循环次数和停止循环计算时已经执行循环次数之间的差值;并根据该值调整最后的商,即对得到的商做向左移位处理,移动的位数为该差值乘以SRT算法基数的对数;假如SRT算法基数为2n,则需要向左移动的位数为该差值乘以n位。
具体实施例方式
下面,我们将以8位无符号的定点除法,基4的SRT算法为例,进一步说明本发明的方法。假如两个操作数分别为被除数128,除数4,其二进制表示如下被除数opb=1000,0000(128)除数 opa=0000,0100(4)第一步根据以上被除数和除数的值,计算需要循环的次数为4次;第二步使用基4的SRT算法计算,在执行2次循环后,得到商为0000,0010,余数为0000,0000,根据本发明的原理,立即停止循环计算。
第三步对商进行调整;计算得出需要循环的次数与停止循环时已执行循环的次数的差值为2,而SRT算法采用的是基4,所以需要向左移动2×2=4位,得到最后商为0010,0000。在本例子中,我们的发明处理方法比传统方法的处理方法减少2次循环计算。
比较本发明与一般定点除法部件的处理方法,我们显然可以看出本发明有以下优点1)加快计算速度;一般定点除法方法,不能充分利用SRT算法部分余数和为0的特性加快除法的计算速度。实际情况中,参与定点除法一部分数符合以上描述的特点,即得到的商结果后面位数是连续的0,并且最后余数为0。我们的发明处理方法可以减小这类数的循环次数,从而加快计算速度,而不象一般定点除法部件对待任何数都需要固定的循环次数。
2)减小功耗;因为加快计算速度,减少了需要循环次数,所以同时能减少定点除法部件的功耗。
本发明的方法对使用SRT算法的定点除法部件来说,在执行定点除法循环计算过程中,如果发现部分余数为零,则立即停止循环。然后根据SRT算法的基数以及完成定点除法需要的循环次数与停止循环时已经执行的循环次数的差值调整商,并得出余数为0。为当代微处理器加快定点除法部件的计算速度同时降低该部件功耗提供了一种新型的处理方法。
本发明可应用在“龙芯”2处理器中。
权利要求
1.一种定点除法部件中提前终止循环计算的一种新型处理方法其特征在于,对使用SRT算法的定点除法部件来说,在执行定点除法循环计算过程中,如果发现部分余数为零,则立即停止循环,然后,根据SRT算法的基数以及完成定点除法需要的循环次数与停止循环时已经执行的循环次数的差值调整商,并得出余数为0,从而达到减小循环次数,加快定点除法速度同时降低功耗。
2.一种定点除法部件中提前终止循环计算的方法,其步骤如下1)根据定点除法的两个操作数,计算得出最后结果需要循环次数;2)根据SRT算法,执行循环计算,得出每次循环的结果;与此同时判断部分余数是否为0,如果部分余数为0,则立即停止循环计算,同时给出停止循环计算的信号,并且给出最后余数为0的信号;如果部分余数不为0,则继续循环计算,直到本次循环次数等于需要循环的次数;3)计算需要循环次数和停止循环计算时已经执行循环次数之间的差值;并根据该值调整最后的商,即对得到的商做向左移位处理,移动的位数为该差值乘以SRT算法基数的对数;假如SRT算法基数为2n,则需要向左移动的位数为该差值乘以n位。
全文摘要
本发明涉及微处理器体系结构技术领域,为当代微处理器加快定点除法部件的计算速度同时降低该部件功耗提供了一种新型的处理方法。该方法对使用SRT算法的定点除法部件来说,在执行定点除法循环计算过程中,如果发现部分余数为零,则立即停止循环。然后,根据SRT算法的基数以及完成定点除法需要的循环次数与停止循环时已经执行的循环次数的差值调整商,并得出余数为0。从而达到减小循环次数,加快定点除法速度同时降低功耗的目的。
文档编号G06F7/52GK1485725SQ0315483
公开日2004年3月31日 申请日期2003年8月20日 优先权日2003年8月20日
发明者刘华平, 胡伟武 申请人:中国科学院计算技术研究所