当前位置: 首页 > 专利查询>许礼阳专利>正文

变位除法-计算机求商乘法化制造技术

技术编号:2823577 阅读:686 留言:0更新日期:2012-04-11 18:40
变位除法-计算机求商乘法化是用除数的倒数与被除数的乘积算商。计算倒数时,不采用传统的一位除法而是采用一种变位除法。首先用4行×64列(或128列等)细胞模块的阵列除法器,计算倒数的前4位部分商及其余数。通过阵列乘法器用已算好的部分商与余数的乘积计算后续部分商。后续部分商的算位、余数的进位按2、4、8、16、32、64…的位数不断增大,求余时用进位后的余数作被减数,后续倒数与除数乘积作减数,大大减少了计算周期。尽可能用阵列乘法器替代阵列除法器,提高求商速度,减缓因计算机精度提高而引起的运算速度快速下降。变位除法适用于任意数制,为未来可能出现的大进位制数的除法运算提供了可能。

【技术实现步骤摘要】

计算机除法运算新算法。通过新算法,尽可能用高效的阵列乘法器替代低效的阵列除法器。
技术介绍
阵列除法器运算速度明显慢于阵列乘法器,随着计算机精度提高,两者运算速度的差距越 发加大,为了提高计算机的除法运算速度,减缓因计算机精度提高而引起的阵列除法器运算 速度快速下降,通过对除法运算的乘法化,用高效的阵列乘法器替代阵列除法器,借此取得 更好的效果.变位除法就是为实现这一目标而作的努力.传统的一位除法非常适合二进制数的除法运算,因为二进制数的部分商非0即1,试商过程只有一次,但对大进位制数的除法运算,若用一位除法计算,试商过程非常麻烦,几乎没有实用价值,如在十进制数的除法运算中,每算一位部分商,最多要试算9次才能确定.变位除法用已算好的部分倒数与当前余数的乘积计算后续倒数,给出确定值,省略了试算 过程。为未来计算机可能出现的大进位制数的除法运算提供了可能.
技术实现思路
一.变位除法的基本原理及步骤变位除法是一种建立在求倒数基础上的求商方法,最大程度的使用乘法运算替代除法运算, 通过变位除法对倒数的乘法化运算,再用除数的倒数与被除数的乘积来算商.有了某一除数的倒数,求该除数与任一被除数的商,可以用乘法计算 若 s=a/b k=l/b 贝U s=k*a变位除法是用己算好的部分倒数值与当前余数的乘积计算后续倒数.计算过程中,分别按 1、 1、 1、 1、 2、 4、 8、 16、…的算位,不断升级变位,每个计算周期所算的位数愈来愈多, 因而大大减少了运算周期.变位除法的计算步骤第一步用阵列除法器计算4位部分商及其余数.第二步升级为二位除法取已算好的4位部分商与余数相乘,乘积左边2位数字即为 后续倒数值.用后续倒数与除数相乘,其积(后文称此积为"若干倍除数")作为减数,进2位 后的余数作为被减数,其差即为新的余数.第三步升级为四位除法取已算好的6位部分商与余数相乘,乘积左边4位数字即为 后续倒数值.用后续倒数与除数相乘,其积作为减数,进4位后的余数作为被减数,其差即 为新的余数.按上述升级方法,不断升级,直到满足需要.为便于了解变位除法过程,先用"笔一纸"方式介绍如下 求(1/1101)2 (用浮点数表示,倒数数符=除数数符,倒数价码=_3,尾数部分 1000/1101):<table>table see original document page 4</column></row><table>我们可以把上式顶部不同位数的部分商IOOI、 100111、 1001110110、 100111011000100111 …视为除数1101不同精度的己算倒数值,把ll、 0110、 00100111、 100111011000100111、...视为后续倒数值.可见变位除法的过程,是把各余数的近似商按照一定规律组合链接起来 的过程.使用变位除法求商必须妥善解决如下四个问题l.后续倒数取值前的舍位后续倒数取值前,必须舍弃最左边l位.那是因为在计算机中,两个n位的数相乘,乘积 是2n位的数,而在求倒数的运算过程中,由于余数总是小于除数,故倒数与余数的乘积总是 2n-l位的数,形成左边l位空位,故必须舍弃见表l. 1 :表l. 1<table>table see original document page 4</column></row><table>2.后续倒数的取位规则上面倒数与余数的乘积,只是后续倒数的近似值,为了保证准确性.这里通过合理取位来 实现.设m位倒数与余数相乘,则乘积中舍弃"空位"后,从剩下的乘积中取m-2位数字作 为后续倒数即可,从下面算式中可以看出,在计算过程中,舍掉已算倒数后面的真值部分与 余数相乘,可能影响到的数位<formula>formula see original document page 4</formula>上面的算式中QA…Qm表示舍掉后面真值部分的已算倒数值,Y,Y2…Yn表示余数,***".表示舍掉真值部分影响到的数位,后续倒数值取位见表1.2表1.2倒数值与余数的乘积后续倒数取位薩承1011:011…4位倒数与余数相乘,后续倒数取2位11醒1歸01,10…6位倒数与余数相乘,后续倒数取4位:01101001110110*0010=000100111…IO位倒数与余数相乘,后续倒数取8位:00100111笔者用上述取值方法进行了大量实例计算,故意寻找后续倒数末位少1的错值,至今尚未找到.(其中不包括能除尽的倒数.如10000/25600 =0.390625,用不作正误差处理计算的倒数 为O. 390624999…9). 3.计算后续倒数时对已算倒数正负误差的转换在理论上没有证明上述取值方法所取的后续倒数必定是准确值之前,还应认定错值存在 已算好的倒数只是一个负误差的近似值,计算出的后续倒数可能出现末位少l,这样的错 值判定起来比较麻烦.必须将已算倒数由负误差暂时转换成正误差.在已算倒数的末位加l ,使1》增值〉0 ,见表1.3表L. 3己算好的倒数值末位加l10011010100111101000正误差的倒数所计算出的后续倒数, 一旦出现错值,余数与除数相比的结果为负.此时, 恢复余数的方法是将余数加一倍除数,并将后续倒数减一,予以修正. 有一种特殊情况笔者还不能证明是否存在,从可靠性考虑,变位除法还是认定这种特殊情况是存在的来处理由于变位除法对已算倒数作了正误差处理,当后续倒数准确值为011、 01111,…而出现错值时,就成为100、 10000、…,最左边的"空位"上,不是"0"而是"1",发生这种情况,将错值反码即可恢复后续倒数的准确值.这在线路上只要把空位线 分别与其它位置线构成逻辑异或关系即可.4.进位后的余数和若干倍除数的保留数及数符在一位除法中,若除数的有效数位为n位,求余时参加运算的数位是n+l位.变位除法的求 余运算,参加运算的数位同样是n+l位,尽管随着不断升级变位,进位后余数和若干倍除数 补码的位数不断增多,但决定求余结果的,始终只有两者最右边n+l位的数,不管如何升级 变位,除了最右边n+l位的数需要保留外,其余数字都可去除.在保留的n+l位余数和保留的n+l位若干倍除数的补码中,最左边的一位数字相加,其和 若为O,则余数为正,此时的后续倒数值是正确的.反之,其和若为l,则余数为负,此时 的后续倒数值是误差为正1的错值.可见,最左边一位数字虽不是数符,但又等效于数符, 这就要求最左边一位数字在移位后必须落在符号位上,并成为两者的符号见表l. 4:表1.4余数进位后的余数保留余数若干倍除数补码保留补码101110110001100补=011001l廳01010101000010000补=1011001010010001000100000000000000补=11100000010100101将保留的余数和保留的若干倍除数的补码相加,即为下一轮余数:0 1100 + 1 1001 0 01011 0000 + 1 0010 0 00100 0000 + 0 0101 0 0101当上一轮保留的n+l位余数为"正零"(本文档来自技高网...

【技术保护点】
变位除法-计算机求商乘法化,不采用常规的一位除法求商,而是用除数倒数与被除数的乘积算商。其特征是:用已算好的部分倒数值与当前余数的乘积计算后续倒数.计算过程中,分别按1、1、1、1、2、4、8、16、…的算位,不断升级变位,每个计算周期所算的位数愈来愈多,因而大大减少了运算周期。

【技术特征摘要】

【专利技术属性】
技术研发人员:许礼阳
申请(专利权)人:许礼阳许礼刚
类型:发明
国别省市:32[中国|江苏]

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1