当前位置:文档之家› 第三章 运算方法和运算部件(3-3,4,5)

第三章 运算方法和运算部件(3-3,4,5)


3.3 二进制乘法运算
例,两位补码乘法,假设X=+0110011,Y=-0110010
则:[X]补=00110011,[Y]补=11001110; [-X]补=11001101, 2[X]补=01100110, 2[-X]补=10011010;
其两位补码乘法实现过程如下:
计算机学院
3.3 二进制乘法运算
计算机学院
3.3 二进制乘法运算
令Pi表示第i次的部分积,则上式可写成如下递推公式:
P0=0, P1=2-1(YnX+P0), P2=2-1(Yn-1X+P1), Pi=2-1(Yn-i+1X+Zi-1), Pn=X*Y=2-1(Y1X+Pn-1) 此处的P0,P1„Pn-1为部分积,Pn为最终的乘积P。
计算机学院
3.3 二进制乘法运算
符号法则:同号相乘为正(0),异号相乘为负(1),
(XsYs=00,01,10,11), 所以积得符号可按“异或” 到。
数值部分运算法则:与普通十进制小数乘法相似。
运算得
计算机学院
3.3 二进制乘法运算
例,X=0.1101,Y=0.1011,求X*Y=?
计算机学院
3.3 二进制乘法运算
二、定点数二位乘法 1、原码两位乘 两位乘数有四种可能组合及相应的操作: 00-相当于0*X;部分积Pi+X,右移2位; 01-相当于1*X;部分积Pi+X,右移2位; 10-相当于2*X;部分积Pi+2X,右移2位; 11-相当于3*X;部分积Pi+3X,右移2位。
手工方法 法 0.1101(X) ×0.1011(Y) 1101„„P1 1101 1101„„..P2 0000„„„P3 + 1101„„„..P4 10001111„„P ×
机器方 0.1101 0.1011 0.0000
+
0.0001 101 0.0000 00 0.0110 1 0.1000 1111
一、定点数一位乘法 1、定点原码一位乘法
用原Байду номын сангаас实现乘法运算十分方便,在定点运算中,完成两个
原码表示得数相乘时,乘积得符号由两数得符号位按位相 加(异或)得到,而乘积得数值部分则是两个数得绝对值 之积。可以表示为:
被除数 乘 数 乘 积
[X]原=Xs.X1X2„„Xn [Y]原=Ys.Y1Y2„„Yn [Z]原 =(Xs⊕Ys).(0.X1X2„.Xn)(0.Y1Y2„.Yn)
i 1
n
计算机学院
3.3 二进制乘法运算
(2) 补码的右移 正数右移一位,相当于乘1/2,负数用补码表示,右移一位 也相当于乘1/2。因此在补码运算的机器中,一个数不论其 正负,连同符号位向右移一位,符号位保持不变,就等于 n 乘1/2。 X i 2 i 设[X]补=X0.X1X2„..Xn,因为 X X 0
一般而言,设被乘数X,乘数Y都是小于1的n位定点正数:
X=0. X1 X2„„„. Xn Y=0. Y1Y2„„„. Yn 其乘积为: X*Y=X(0. Y1Y2„„Yn) =X(Y12-1+Y22-2+„„.+Yn2-n) =2-1(Y1X+2-1(Y2X+2-1(„„+2-1(Yn-1X+21(Y X+0))„„))) n
与一位乘法比较,多出了+2X和3X两种情况。把X左移一位
即得2X;+3X可以用(4X-X)来实现。
原码两位乘法规则(P88表3.4)
计算机学院
3.3 二进制乘法运算
例,X=0.100111,Y=0.100111,则:[-X]补=1.011001
+[-X]补 右移2位 +2X 右移2位 +2X 右移2位

i 1
所以
n 1 1 1 n 1 1 n X X 0 X i 2 i X 0 X 0 X i 2 i X 0 X i 2 (i1) 2 2 2 i 1 2 2 i 1 i 0
计算机学院
3.3 二进制乘法运算
1 [ X ]补=X 0 . X 1 X 2 ........X n 写成补码形式,得: 2
计算机学院
3.3 二进制乘法运算
例,[X]补=1.0101,[Y]补=1.0011,求[X*Y]补=?
解:[-X]补=0.1011,采用双符号位表示后,运算过程如下: 部分积 乘数 操作 00.0000 1.00110 Yn+1=0,YnYn+1=10; + 00.1011 加[-X]补 00.1011 00.0101 110011 YnYn+1=11; + 00.0000 加0 00.0101 00.0010 111001 YnYn+1=01; + 11.0101 加[X]补 11.0111 11.1011 111100 YnYn+1=00; + 00.0000 加0 11.1011 11.1101 111110 YnYn+1=10 + 00.1011 加[-X]补 00.1000 1111 最后一步不移位
部分积 乘数 00.000000 100111 0 11.011001 11.011001 11.110110 011001 1 01.001110 01.000100 00.010001 000110 0 01.001110 01.011111 00.010111 110001 0
欠位C
计算机学院
计算机学院
3.3 二进制乘法运算
将[ P1 ]补 代入[ P2 ]公式中,则: i i
[P2 ]补 {[ P ]补 (Yni 1 Yni ) [ X ]补}21 (Yni Yni 1 )[X ]补}21 i i
{[ P ]补 [Yni 1 Yn1 ] [ X ]补} 2(Yni Yni 1 )[X ]补 22 i
0000
初始化值
y=1
+ 1101
1101 110 1„„„..P1 + 1101 10011 1 1001 11„„„P2 + 0000 1001 11 100 111„„..P3 + 1101 10001 111 1000 1111„„P4=P
计算机学院
y=1
y=0
y=1
3.3 二进制乘法运算
《计算机组成与结构》
——本科生课程教学
《计算机组成原理》 课程组
计算机组成与结构
本课程主要讲授计算机系统的硬件和软件构成方法,包括
硬件系统中运算器、控制器、存储器、输入设备和输出设 备和总线系统的构成原理等;并与当代先进的计算机技术 相结合。是计算机科学与技术本科专业核心课程。

本课程着重计算机系统组成与结构方面的教学和研究。
2、定点补码一位乘法 原码乘法的主要问题是符号位不能参加运算。补码乘法可以实现 符号位直接参加运算。 (1) 补码与真值的转换关系 设 [X]补=X0.X1X2„„..Xn 当 X>=0时,X0=0(符号位为0)
[ X ]补=0. X 1 X 2 X n X i 2 i X
i 1
计算机学院
3.3 二进制乘法运算
原码机器乘法规律:
当所乘得乘数为1时,则上次所得的部分积(最初为0)加 被乘数右移一位,而得新的次一部分积;若所乘的乘数为0 时,则上次所得的部分积加0右移一位后就是新的次一部分 积。如此反复,直到乘数各位都乘完为止。
计算机学院
3.3 二进制乘法运算
例,X=0.1101,Y=0.1011,求X*Y=?机器算法如下:
{[ P ]补 (Yni 1 Yni 2Yni 1 )[X ]补}22 i
上式表明,产生部分积 [ Pi ]补 之后,可以加上乘数寄存 [X ]补 器最低两位和附加位的组合值与 的积,再右移2位,
可得到 [ Pi 2 ]补
三位组合值的关系参加p89表3.5
计算机学院
计算机学院
3.3 二进制乘法运算
(6) 实现补码一位乘法的逻辑图(p104图3.9)
计算机学院
3.3 二进制乘法运算
补码一位乘法逻辑图与原码一位乘法逻辑图的差异:
(1)被乘数、乘数的符号位X0,Y0都参加运算; (2)乘数寄存器有附加位Yn+1,其初始状态为0,并有右移功 能; (3)被乘数寄存器的每一位用原码或反码的多路开关输入, 多路开关由YnYn+1控制; (4)部分积寄存器具有移位功能,其符号位与加法器的符号 位始终一致; (5)当计数器i=n+1时,封锁移位信号,保证最后一步不移位 。
部分积 明 0000000000 11001110 0 组合值为100,+2[-X]补 1110011010 1111100110 10110011 1 右移2位,组合值为111 1111111001 10101100 1 右移2位,组合值为 001,+[X]补 0000110011 0000101100 0000001011 00101011 0 右移2位,组合值为110,+[X]补 1111001101 1111011000 1111110110 00001010 右移1位 计算机学院 运算结果为:11111011000001010 即为:-0.00100111110110 乘数 附加位 说
参见流程图。
计算机学院
3.3 二进制乘法运算
(5) 补码一位乘法的运算规则 根据BOOTH算法流程图,可得到补码一位乘法的运算规则。

运算规则: 如果Yn=Yn+1,部分积[Pi]加0,再右移一位; 如果YnYn+1=01,部分积加[x]补,再右移一位; 如果YnYn+1=10,部分积加[-X]补,再右移一位。 如此重复进行n+1步,最后一步不移位;包括一位符号位, 所得乘积为2n+1位,其中n为尾数位数。
相关主题