组成原理第4章-2

上传人:mg****85 文档编号:55547642 上传时间:2018-10-01 格式:PPT 页数:38 大小:1.42MB
返回 下载 相关 举报
组成原理第4章-2_第1页
第1页 / 共38页
组成原理第4章-2_第2页
第2页 / 共38页
组成原理第4章-2_第3页
第3页 / 共38页
组成原理第4章-2_第4页
第4页 / 共38页
组成原理第4章-2_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《组成原理第4章-2》由会员分享,可在线阅读,更多相关《组成原理第4章-2(38页珍藏版)》请在金锄头文库上搜索。

1、第四章 运算方法和运算器,4.2 定点数的乘法运算及实现,实现乘除法运算,可以有三种方式: 用软件实现。通过编制一段子程序来实现乘除运算。这种方式运算速度较慢,但硬件设计简单。 用硬件乘法器和除法器实现。这种方式相对软件实现方法,运算速度提高,但硬件设计也相对复杂。 用高速的阵列乘法器和阵列除法器来实现。乘除法指令实现的硬件基础是专用的、并行运算的阵列乘法器和阵列除法器。这种方式,硬件相当复杂,但牺牲硬件代价,赢得了速度。,一、原码乘法算法及实现 1、手工乘法算法 手工计算10111101,步骤: 手工算法是:对应每一位乘数求得一项位积,并将位积逐位左移,然后将所有的位积一次相加,得到最后的乘

2、积。 乘法的机器算法:从乘数的最低位开始,每次根据乘数位得到其位积,乘数位为0,位积为0,乘数位为1,则位积为被乘数;用本次位积左移一位加上原部分积,得新部分积;初始部分积为0。,2、原码一位乘法 假设X原=XS X1 X2 Xn , Y原=YS Y1 Y2 Yn , P=XY,PS是积的符号: 符号位单独处理 Ps=Xs Ys 绝对值进行数值运算 |P|=|X|*|Y|,例如:X=+1011,Y=-1101,用原码一位乘法计算P=XY。 解:X原=0,1011 Y原=1,1101 Ps=Xs Ys =01=1,|P| = |X|Y| P原=1,10001111,3、原码乘法的硬件实现 原码一

3、位乘法硬件实现,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,为各寄存器给初值,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 1 1 0 1,0 0 0 1 1 0,1 0 1 1,0 0 0 1 1 0,1,1 0 1,0 0 1 1 0 1,第一次求部分积,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 1 0 0 1 1,0 1 0 0 1

4、1,1 1 0 1,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,1,1 0 1,第二次求部分积,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,0 0 0 1 0 0,0 0 0 1 0 0,1,1 0 1,1 1 1,1,0 0 0 1 0 0,0 0 1 0 0 1,0 0 1 0 0 1,第三次求部分积,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0

5、0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 0 1 0 0 0,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,0 0 0 1 0 0,0 0 0 1 0 0,1,1 0 1,1 1 1,1,0 0 1 0 0 0,低位积,0 1 0 0 0 1,0 1 0 0 0 1,第四次求部分积,高位积,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 0 1 0 0 0,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1

6、 0 0 1,1 0,1 1,0 0 0 1 0 0,0 0 0 1 0 0,1,1 0 1,1 1 1,1,0 0 1 0 0 0,低位积,高位积,符号位异或, 积符号得负, 结果为: 1 10001111,控制逻辑电路,原码一位乘法,原码一位乘法流程 :,原码的两位乘法及其实现,二、补码乘法及实现 1、补码一位乘法校正法 假设X补 = X0 .X1Xn ,Y补 = Y0 .Y1Yn ,则有: XY补 = X补(0.Y1Yn)+ Y0-X补 证明如下: 当被乘数X的符号任意,Y为正数时: 根据补码定义有: X补 =2 + X = 2n+1+ X (mod 2) Y补 =Y 则:X补Y补 =(

7、2n+1+ X)Y = 2n+1Y + XY = 2 n+1(0 .Y1Yn)+ XY = 2(Y1Yn)+ XY = 2 + XY (mod 2)= XY补 即:Y 0 时,XY补 = X补Y补 =X补(0.Y1Yn) 当被乘数X的符号任意,Y为负数时: Y补 = 2 + Y = 1 .Y1Yn则:Y = Y补 2 = 0.Y1Yn -1 XY补 = X0.Y1Yn X 补 = X0.Y1Yn 补 +X 补 因为0.Y1Yn 0,所以: X0.Y1Yn 补 =X补(0.Y1Yn) 所以:Y0时,XY补 =X补(0.Y1Yn)+ -X补,例如:X=+0.1011,Y=-0.1101,用补码一位

8、乘法的校正法计算P=XY。 X补=00.1011 Y补=11.0011 -X补=11.0101,XY补 = 1.0111 0001 XY = -0.1000 1111,例:设X=-0.1101,Y=-0.1011,即:X补=11.0011,Y补=11.0101,求X*Y补 解:计算过程如下:,计算结果: X*Y补=0.10001111,2、补码一位乘法Booth算法 做出如下推导 : XY补 = X补(0.Y1Yn)+ Y0-X补 = X补(Y12-1 + Y22-2 + + Yn2-n -Y0) = X补Y1(20 - 2-1)+ Y2(2-1 - 2-2)+ + Yn(2-n+1 - 2-

9、n)-Y020 = X补Y120 - Y12-1 + Y22-1 - Y22-2 + + Yn2-n+1 - Yn2-n -Y020 = X补(Y1-Y0)20 +(Y2- Y1)2-1 +(Y3- Y2)2-2 + + (Yn- Yn-1)2-n+1 - Yn2-n = X补(Y1-Y0)20 +(Y2- Y1)2-1 +(Y3- Y2)2-2 + + (Yn- Yn-1)2-n+1 +(Yn+1 - Yn)2-n = X补(a020 + a12-1 + a22-2 + + an-12-n+1 + an2-n) 其中,将乘数Y的补码在最末位添加一位附加位Yn+1(初始为0),ai= Yi+1

10、- Yi ,i=0,1,n-1,n。,0,被乘数X和乘数Y均以补码的形式参加乘法运算,运算的结果是积的补码 部分积和被乘数X采用双符号位,乘数Y采用单符号位。 Y补后添加附加位Yn+1初值为0(Yn Yn+1判断操作) 右移时遵循补码的移位规则 累加右移n次,最后累加不右移,例如:X=+0.1011,Y=-0.1101,用补码一位乘法的Booth算法计算P=XY。 解:X补=00.1011 Y补=11.0011 -X补=11.0101,XY补 = 1.0111 0001 XY = -0.1000 1111,3、Booth乘法的硬件实现,控制逻辑电路,补码乘法的Booth算法流程,补码的两位乘法

11、,三、阵列乘法器 1、绝对值阵列乘法器,位积的每一位XiYj都可以用一个与门实现,而每一位的相加均可以使用一个全加器来实现。,4位4位绝对值阵列乘法器,2、补码阵列乘法器 原码的阵列乘法器 在绝对值阵列乘法器的基础上,添加一个异或门,以产生积的原码的符号位。 补码的阵列乘法器, 先通过一个补码求绝对值的逻辑电路变为绝对值后,送入绝对值阵列乘法器,运算得到积的绝对值,然后再通过一个绝对值求补码的逻辑电路,根据积的符号求出积的补码形式。(例10001),补码求绝对值电路,(n+1)位(n+1)位补码阵列乘法器框图,4.3 定点数除法运算及实现,一、原码除法及实现 1、原码除法算法 手工除法算法,改

12、进手工算法即可适合机器运算: (1)计算机通过做减法测试来实现判断:结果大于等于0,表明够减,商1;结果小于0,表明不够减,商0。 (2)计算机将余数左移一位,再直接与不右移的除数相减。,原码恢复余数算法 假设X原=XS .X1 X2 Xn ,Y原=YS .Y1 Y2 Yn ,Q是XY的商,QS是商的符号,R是XY的余数,RS是余数的符号 原码除法运算的规则是: QS = XS YS ,RS = XS,|Q| = |X|Y|-|R|Y| 余数和被除数、除数均采用双符号位;初始余数为|X|。 每次用余数减去|Y|(通过加上-|Y|补来实现),若结果的符号位为0,则够减,上商1,余数左移一位;若结

13、果的符号位为1,则不够减,上商0,先加|Y|恢复余数,然后余数左移一位。 循环操作步骤(3),共做n+1次,最后一次不左移,但若最后一次上商0,则必须+|Y|恢复余数;若为定点小数除法,余数则为最后计算得到的余数右移n位的值。,例如: X=+0.1011,Y=-0.1101,用原码恢复余数算法计算XY。 解:X原=0.1011 Y原=1.1101 |X|=0.1011 |Y|=0.1101 -|Y|补=11.0011 QS = XS YS = 1 RS = 0,得Q原=1.1101 R原=0.00000111,原码不恢复余数算法(加减交替法) 加减交替法是对恢复余数除法的一种修正。当某一次求得

14、的差值(余数Ri)为负时,不是恢复它,而是继续求下一位商,但用加上除数(+Y)的办法来取代(-Y)操作,其他操作依然不变。其原理证明如下: 在恢复余数除法中,若第一次i-1次求商的余数为Ri-1,下一次求商的余数为Ri,则: Ri=2Ri-1-Y 如果Ri0,商的第i位上0,并执行操作:恢复余数(+Y),将余数左移一位,再减Y,得Ri+1。其过程可用公式表示如下: Ri+1=2(Ri+Y)-Y=2Ri+2Y-Y=2Ri+Y由此得到证明。 所以可得出加减交替法的规则如下: 当余数为正时,商上1,求下一位商的办法,是余数左移一位,再减去除数;当余数为负时,商上0,求下一位商的办法,是余数左移一位,再加上除数。此办法不用恢复余数,所以又叫不恢复余数法。但若最后一次上商为0,而又需得到正确余数,则在这最后一次仍需恢复余数。,例如:X=+0.1011,Y=-0.1101,用原码不恢复余数算法计算XY。 解:X原=0.1011 Y原=1.1101 |X|=0.1011 |Y|=0.1101 -|Y|补=11.0011 QS = XS YS = 1 RS = 0,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号