(1)原码两位乘
两位乘数的取值可以有四种可能组合,每种组合对应于以下操作:
00 相当于0*X,部分积Pi右移2位,不进行其它运算;
01 相当于1*X,部分积Pi+ X后右称2位;
10 相当于2*X,部分积 Pi+ 2X后右移2位;
11 相当于3*X,部分积 Pi + 3X后右移2位。
上面出现了 + 1X, + 2X, + 3X 三种情况,+X 容易实现,+2X可把X左移1位得2X,在机器内通常采用向左斜1位传送来实现。可是+3X一般不能一次完成,如分成两次进行,又降低了计算速度。解决问题的办法是备:
以 +(4X-X) 来代替 +3X运算,在本次运算中只执行 -X, 而 +4X 则归并到下一步执行,因为下一步运算时,前一次的部分积已右移了两位,上一步欠下的
+4X 在本步已变成 +X。实际线路中要用一个触发器C来记录是否欠下+4X的操作尚未执行,若是,则1→C。因此实际操作要用Yi-1
Yi C三位的组合值来控制乘法运算操作,运算规则如表2.12所示。
表2.12
原码两位乘运算规则
原码两位乘举例:
假定 X = 0.100111 Y = 0.100111
则 [-X] = 1011001
如上面最后一次运算时欠下 +4X ,.则部分积右移2位后还需补充完成 +X 操作。
|
|