计算机组成除法器图,计算机组成原理:3.4.23.4.3 定点补码除法器 快速除法

《计算机组成原理:3.4.23.4.3 定点补码除法器 快速除法》由会员分享,可在线阅读,更多相关《计算机组成原理:3.4.23.4.3 定点补码除法器 快速除法(33页珍藏版)》请在人人文库网上搜索。

1、3.4.2、补码一位除法,1、 补码加减交替法 运算过程 比较 上商 求新余数 恢复余数 修正商,比较 当被除数或余数与除数同号时,用减法去比较二者的大小,若得到的新余数与除数同号,表示“够减”,否则为“不够减”。商为正 当被除数或余数与除数异号时,用加法去比较二者的大小,若得到的新余数与除数异号,表示“够减”,否则为“不够减”。商为负,为什么不与被除数 的符号比较呢,3.4.2、补码一位除法,上商 约定:商的末位“恒置1”(不精确) 其余位上商 如果商为正(被除数与除数同号),比较 余数与除数同号,商上1 (够减) 余数与除数异号,商上0 (不够减) 如果商为负(被除数与除数异号) ,比较 。

2、余数与除数同号,商上1(不够减) 余数与除数异号,商上0(够减) 正商与负商的上商统一 余数与除数同号,商上1 余数与除数异号,商上0,3.4.2、补码一位除法,求新余数 Ri补是真余数(够减) Ri补是假余数(不够减) ,如何求下步除法的新余数( Ri1补)呢? 余数与除数同号,余数左移一位,减去除数 余数与除数异号,余数左移一位,加上除数,3.4.2、补码一位除法,除法规则(加减交替法) 若被除数与除数同号,被除数减去除数得余数;若被除数与除数异号,被除数加上除数得余数(第一步) 若余数与除数同号,商上1,余数左移一位,下一步作余数减去除数运算,得新余数;若余数与除数异号,商上0,余数左移。

3、一位,下一步作余数加上除数运算,得新余数 其重复n+1步,最后一步余数不左移,则除法完成,3.4.2、补码一位除法,补码除法(加减交替法)小结,要求 参加运算的操作数是补码形式 得到的商和余数直接是补码形式,2、补码Booth除法 Booth除法,是加减交替除法的变种 比较除法的比较上商,求余数规则与加减交替法相同,但是次序不同。先比较上商,上商的同时被除数或余数与商一起左移一位,而后加减得到新的余数,最后一步上商时余数不左移,也不加减,3.4.2、补码一位除法,比较除法规则 若被除数或余数与除数同号,商为1,被除数或余数左移一位减去除数得新余数;反之商为0,被除数或余数左移一位加上除数得新余。

4、数 在新余数基础上,重复到所需位数为止,但最后一步上商后余数不左移也不加减 每步除法上商时,商寄存器左移一位 使商的符号变反 最后恢复余数和修正商,3.4.2、补码一位除法,恢复余数 作完最后一步除法后 除法除尽时,判0逻辑判出全0(),将A置成全0 除法除不尽时,判0逻辑标志不是全0 若C0=0(被除数与除数同号),且余数与除数异号,说明是假余数(由于作减法造成) ,应作Rn补+B补其结果送回A,以恢复余数 若C0=1 (被除数与除数异号) ,且余数与除数同号,说明是假余数(由于作加法造成),应作Rn补+-B补其结果送回A,以恢复余数,3.4.2、补码一位除法,修正商 上商实质是按反码规则进。

5、行的! 除不尽:Rn补 0 若商为正,商的反码与补码相同,不必修正 若商为负,形成反码商后,应在末位加1,即加2-n,才是商的补码,3.4.2、补码一位除法,修正商 除尽 从原码角度看, 除尽那步商应为1(够除),余数Ri原=0,再继续除下去,以后各位商必为0,3.4.2、补码一位除法,修正商 除尽时原码商有 C原= 0.C1C2Ci-11000 (商为正) C原= 1.C1C2Ci-11000 (商为负) 对商的补码来说 若商为正, C补=0.C1C2Ci-11000 若商为负,在除尽位以前各位与C原相反,在除尽位及以后各位应相同,即C补=1.C1C2Ci-11000 除尽以前商的补码各位商。

6、是正确的; 问题在于除尽那步以后各步上商是否正确,3.4.2、补码一位除法,修正商 若除数为正(B0=0) 除尽那步除法所得余数Ri补=0,其符号位为正(故A01=B0),故除尽步商为1,由于: Ri+1补=2Ri补+-B补=-B补 Ri+1补与除数异号,商上0。下一步除法余数: Ri+2补=2Ri+1补+ B补=2 -B补+ B补= -B补 Ri+2补仍与除数异号,商仍上0。以此类推,以后各位商均为0 可见,除尽时且除数为正,除尽那位商上1,以后各位商上0,商正确, 不必修正,3.4.2、补码一位除法,修正商 若除数为负(B0=1) 除尽那步Ri补=0,而Ri补与除数异号,因此除尽步商0, 。

7、Ri+1补=2Ri补+B补=B补 Ri+1补与除数同号,商上1,下一步除法余数: Ri+2补=2Ri+1补+-B补=B补 Ri+2补仍与除数同号,显然,商仍上1。以此类推,以后各位商均为1 可见,除尽时且除数为负,除尽那位商上0,以 后各位商上1,商不正确,需要修正(即加2-n ),3.4.2、补码一位除法,结论:修正商的规则 若除不尽,商为正时,不必修正; 商为负时,所得商需加2-n修正 若除尽,除数为正时,商不必修正; 除数为负时,所得商需加2-n修正 简易修商 “恒置1 ”法:连同符号位,共作n步除法,n位商,不作n+1步除法,认为最后一位商恒为1 “0舍1入 ”法:求出n+2位商 若C。

8、n+1为1,则C0. C1 C2 Cn,加2-n修正 若Cn+1为0,则C0. C1 C2 Cn即为所求商,3.4.2、补码一位除法,例: A=0.1001, B=0.1101,求C补和 2-4R4补,未除尽,C0=0,R01=B0,不需恢复余数 未除尽,C0=0,不需要修正商 故 C补=0.1011, 2-4R4补=0.00012-4,例: A= -0.1001, B=0.1101,求C补和2-4R4补,未除尽,C0=1,R01B0,不需恢复余数 2-4R4补 = 1.11112-4 未除尽,C0=1,需修正商 C补=1.0100+0.0001=1.0101,Booth除法器,n步除法 需要。

9、n+2个时钟周期完成,溢出:(1)|A| |B,例: 已知A = 0.1101,B = 0.1001,求C补 和24R4补 解:A补 = 00.1101,B补 = 00.1001, B0 = 0,B补 = 11.0111,01 02,表示 R1补发生除法溢出,溢出:(2) A补 = B补,例: 已知A = 0.1010,B = 0.1010,求C补 和24R4补 解:A补 = 00.1010,B补 = 00.1010, B0 = 0,B补 = 11.0110,R1补,001010,R1补= B补, 表示 R1补发生除法溢出,3.4.3、快速除法,问题:如何加快除法处理速度呢? 不能走n位乘法的。

10、道路,那么n位除法是什么样,1001.071 1233 1234321 1233 0001321 1233 008800 8631 01690 1233 0457,如果前一步除法的余数 很小,可以连商多位,跳0跳1除法,3.4.3、快速除法,1、迭代除法 设被除数为A,除数为B, 0AB 且 1/2B1,为规格化的数, 则,当Br0r1r2rn 1时, Ar0r1r2rnA/B=Q,关键:迭代系数ri,3.4.3、快速除法,1、迭代除法 显然,若取初始r0为B的近似倒数。 令Br0=1- ,2-m ( m为正整数) 则=1-B r0,表示第一次迭代后的精度 对其余因子ri,取 Bi+1=Bi 。

11、ri Ai+1=Ai ri ri+1=2-Bi+1 (i = 0,1,2,n-1) 式中B0 = B,A0 = A,3.4.3、快速除法,1、迭代除法,表3.16 迭代过程及结果,3.4.3、快速除法,迭代除法规则 用求除数B的近似倒数法,得到初始迭代系数r0 用上一次迭代系数乘以分母并对其求补得到以后各次迭代系数ri n次迭代系数rn-1乘上An-1,即得n次迭代除法的近似商An = An-1 rn-1 经n次迭代后,迭代精度(1- 2n-1 )已足够达到预期要求,3.4.3、快速除法,例1: 设m=6, A0=A, B0=B,B的近似倒数为r0 , 据(3.21)式求各次迭代系数和商。 解。

12、:第一次迭代: A1=A0 r0=A0/B0(1-)=A0/B0(1-2-6), B1=B0 r0=1-=1-2-6, r1=-B1补=1+=1+2-6 第二次迭代: A2 = A1 r1 = A0/B0(1-2-12), B2 = B1 r1 = 1-2-12, r2 = 1+2-12,例1: 设m=6,A0=A, B0=B, B的近似倒数为r0 解:第三次迭代: A3 = A2 r2 = A0/B0(1-2-24), B3 = B2 r2 = 1-2-24, r3 = 1+2-24 第四次迭代: A4 = A3 r3 = A0/B0(1-2-48) 得到商的近似值: Q = A4 = Ar。

13、0r1r2r3, B4 = B3 r3 = 1-2-48 = Br0r1r2r3,例1: 设m=6,A0=A,B0=B,B的近似倒数为r0 解:故真商为: 故有Q = Q- Q2-48 显然,第一次迭代满足初始精度1-2-6,第二次迭代误差收敛至2-12,第三次迭代误差收敛到2-24,第四次迭代误差收敛至2-48,问题是如何求得r0? 构造表B - r0,倒数表,2、阵列除法器 (1)可控加减单元CAS,3.4.3、快速除法,1)可控加减单元CAS 可控加减单元由一个全加单元和一个控制加减的异或门组成 图中Ai和Bi为本位输入;Ci-1为低位来的进位(借位)信号;P为加减控制命令;Si为本位和(差);Ci为进位信号 P=0时,是加法单元,实现操作A+B; P=1时,是减法单元,实现操作A+ B,3.4.3、快速除法,2)阵列除法器 设:A=0.A1A2A3A4A5A6,B=0.B1B2B3, 求商Q=0.Q1Q2Q3和余数R=0.00r3r4r5r6,3.4.3、快速除法,银河1除法器实现,采用求倒数近似值方法 硬件只设置浮点倒数近似值指令和牛顿迭代乘(求校正因子)指令,由软件实现浮点除法。

你可能感兴趣的:(计算机组成除法器图)