计算机组成原理第三章 运算方法和运算部件(3-3_4_5)

上传人:au****y 文档编号:36241097 上传时间:2018-03-26 格式:PDF 页数:107 大小:1.01MB
返回 下载 相关 举报
计算机组成原理第三章 运算方法和运算部件(3-3_4_5)_第1页
第1页 / 共107页
计算机组成原理第三章 运算方法和运算部件(3-3_4_5)_第2页
第2页 / 共107页
计算机组成原理第三章 运算方法和运算部件(3-3_4_5)_第3页
第3页 / 共107页
计算机组成原理第三章 运算方法和运算部件(3-3_4_5)_第4页
第4页 / 共107页
计算机组成原理第三章 运算方法和运算部件(3-3_4_5)_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《计算机组成原理第三章 运算方法和运算部件(3-3_4_5)》由会员分享,可在线阅读,更多相关《计算机组成原理第三章 运算方法和运算部件(3-3_4_5)(107页珍藏版)》请在金锄头文库上搜索。

1、计算机学院计算机学院计算机学院计算机学院计算机组成与结构计算机组成与结构 本科生课程教学本科生课程教学计算机学院计算机组成与结构计算机组成与结构?本课程主要讲授计算机系统的硬件和软件构成方法,包括 硬件系统中运算器、控制器、存储器、输入设备和输出设 备和总线系统的构成原理等;并与当代先进的计算机技术 相结合。是计算机科学与技术本科专业核心课程。?本课程着重计算机系统组成与结构方面的教学和研究。本课程着重计算机系统组成与结构方面的教学和研究。?计算机结构定义为系统程序员所能见到的计算机硬件特性; ?计算机组成是指计算机硬件的具体实现。计算机学院第三章第三章 运算方法和运算部件运算方法和运算部件?

2、数据的表示方法和转换?带符号数的表示方法及加减运算?二进制乘法运算二进制乘法运算?二进制除法运算二进制除法运算?浮点数的运算方法浮点数的运算方法?运算部件?数据校验码计算机学院3.3 3.3 二进制乘法运算二进制乘法运算一、定点数一位乘法一、定点数一位乘法 1、定点原码一位乘法、定点原码一位乘法?用原码实现乘法运算十分方便,在定点运算中,完成两个 原码表示的数相乘时,乘积的符号由两数的符号位按位相 加(异或)得到,而乘积的数值部分则是两个数的绝对值 之积。可以表示为:?被乘数X原=Xs.X1X2Xn ?乘数Y原=Ys.Y1Y2Yn ?乘积Z原=(XsYs).(0.X1X2.Xn)(0.Y1Y2

3、.Yn)计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?符号法则:符号法则:同号相乘为正(0),异号相乘为负(1), (XsYs=00,01,10,11), 所以积的符号可按“异或” 运算得到。?数值部分运算法则:数值部分运算法则:与普通十进制小数乘法相似。计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?例,X=0.1101,Y=0.1011,求X*Y=?手工方法机器方法 0.1101(X) 0.1101 0.1011(Y) 0.1011 1101P1 0.0000 1101 1101.P2 0.0001 101 0000P3 0.0000 00 + 1101.P4 + 0.0

4、110 1 10001111P 0.1000 1111计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?机器运算与手工运算方法区别在于:(1) 机器一次只能进行两个数相加,所以P1+P2+P3+P4必 须分步进行:P1+P2; (P1+P2)+P3; (P1+P2)+P3+P4。(2) 每做完一次加运算,把部分积右移一位(相当于把被加 数右移,而不是左移),移出的数码不参加运算,故机器 的位数可以固定。 ?由此可以分析出机器乘法运算的基本规律。计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?原码机器乘法规律:原码机器乘法规律:当所乘的乘数为1时,则上次所得的部分积(最初为0)加

5、被乘数右移一位,而得到新的部分积;若所乘的乘数为0时 ,则上次所得的部分积加0右移一位后就是新的部分积。如 此反复,直到乘数各位都乘完为止。计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?例,X=0.1101,Y=0.1011,求X*Y=?机器算法如下: 0000 初始化值 y=1 + 1101 1101 110 1.P1 y=1 + 1101 10011 1 1001 11P2 y=0 + 0000 1001 11 100 111.P3 y=1 + 1101 10001 111 1000 1111P4=P计算机学院作上述改进后,求乘积绝对值的运算规则可归纳为:作上述改进后,求乘积绝对

6、值的运算规则可归纳为:?被乘数和乘数均取绝对值参加运算,符号位单独考虑。被乘数和乘数均取绝对值参加运算,符号位单独考虑。 ? 被乘数取双符号,部分积的长度同被乘数,初值为0。 被乘数取双符号,部分积的长度同被乘数,初值为0。 ?从乘数的最低位y从乘数的最低位yn n开始判断:开始判断: ?y yn n1,则部分积加上被乘数|x|,然后右移一位;1,则部分积加上被乘数|x|,然后右移一位; ?y yn n0,则部分积加上0,然后右移一位;0,则部分积加上0,然后右移一位; ?重复,判断n次。重复,判断n次。计算机学院X*Y0.10001111X*Y0.10001111 乘积的符号位X乘积的符号位

7、X0 0YY0 000=0,乘积为正数。00=0,乘积为正数。计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?一般而言,设被乘数X,乘数Y都是小于1的n位定点正数:X=0. X1X2. Xn Y=0. Y1Y2. Yn其乘积为: X*Y=X(0. Y1Y2Yn) =X(Y12-1+Y22-2+.+Yn2-n) =2-1(Y1X+2-1(Y2X+2-1(+2-1(Yn-1X+2-1(YnX+0)计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?令Pi表示第i次的部分积,则上式可写成如下递推公式:P0=0, P1=2-1(YnX+P0), P2=2-1(Yn-1X+P1), Pi=2

8、-1(Yn-i+1X+Pi-1), Pn=X*Y=2-1(Y1X+Pn-1)此处的P0,P1Pn-1为部分积,Pn为最终的乘积P。计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?上述乘法运算的递推算法可用流程图来表示:(P74图3.6)开始Pi=0, i=0Yn=1Pi+0Pi+XPi,Y右移一位,i=i+1i=n?结束YNNY计算机学院其中三个寄存器A,B,C分别存放部分积、被乘数和 乘数。其中三个寄存器A,B,C分别存放部分积、被乘数和 乘数。3.3 3.3 二进制乘法运算二进制乘法运算计算机学院计算机学院3.3 3.3 二进制乘法运算二进制乘法运算2、定点补码一位乘法、定点补码一

9、位乘法 ?原码乘法的主要问题是符号位不能参加运算。补码乘法可以实现 符号位直接参加运算。(1) 补码与真值的转换关系补码与真值的转换关系 设 X补=X0.X1X2.Xn当 X=0时,X0=0(符号位为0)尾数部分为真值XXXXXXXnii in= =1212.0补计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?当X0,所以X(0.Y1Y2Yn0,所以X(0.Y1Y2Yn)补=X补 (0.Y1Y2Yn)补=X补 (0.Y1Y2Yn) XYn) XY补=X补(0.Y1Y2Y补=X补(0.Y1Y2Yn)+-X补 即按方法运算后,还需要补充进行加-X补操作。Yn)+-X补 即按方法运算后,还需

10、要补充进行加-X补操作。计算机学院3.3 3.3 二进制乘法运算二进制乘法运算? X和和Y正负都任意正负都任意 ?将上述与两种情况综合起来,可得补码乘法的统一算法,具体 式子如下:将上述与两种情况综合起来,可得补码乘法的统一算法,具体 式子如下: =+=+=nii innYYXYYYYXYXYYYXYX10210021)2).0).0((补补补补补 这种方法称为校正法。这种方法称为校正法。计算机学院校正法举例校正法举例校正法举例校正法举例计算机学院计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?将上述补码乘法公式进行变换,可得出另一公式:将上述补码乘法公式进行变换,可得出另一公式:=

11、+ =+=+=+=+=nii iin nn nnn nn nn nnii iYYXYYYYYYYXYYYYYYYXYYYYXYYXYX01)1( 11 1201)1(2 21 21 1102 21 1010)17.3(2)(2)0(2)(2)()()22(22()2222)2补补补补补补(乘数的最低1位Y乘数的最低1位Yn n,在其后面再添加1位Y,在其后面再添加1位Yn+1n+1,其值为0。,其值为0。计算机学院3.3 3.3 二进制乘法运算二进制乘法运算?再将式(3.17)加以变换,按机器执行顺序求出每一步的部分积再将式(3.17)加以变换,按机器执行顺序求出每一步的部分积补补补补补补补补

12、补补补补补补补补补)(2)(2)(2)(02)(00111 1211 1211 11211 1010YXXYYPPXYYPPXYYPPXYYPPYXYYPPPnnnnininiinnnnn=+=+=+=+=+=+ + + +计算机学院3.3 3.3 二进制乘法运算二进制乘法运算(4) BOOTH算法算法 ?根据相邻两位比较结果决定运算操作的方法称为“比较法”,是 由BOOTH夫妇提出的,也称BOOTH算法。 ?归纳上面推导的结果,便可以得到补码一位乘法的运算规则如 下:归纳上面推导的结果,便可以得到补码一位乘法的运算规则如 下: ?符号位参与运算,运算的数均以补码表示。符号位参与运算,运算的数

13、均以补码表示。 ?被乘数一般取双符号位参加运算,部分积初值为0。被乘数一般取双符号位参加运算,部分积初值为0。 ?乘数可取单符号位以决定最后一步是否需要校正,即是否加 x乘数可取单符号位以决定最后一步是否需要校正,即是否加 x补补。(校正法)。(校正法) ?乘数末位增设附加位y乘数末位增设附加位yn1n1,且初值为0。(比较法),且初值为0。(比较法) ?由于求得一次部分积要右移一位,y由于求得一次部分积要右移一位,yn n与y与yn1n1位构成各步运算 的判断位,按下表进行操作:位构成各步运算 的判断位,按下表进行操作:计算机学院3.3 3.3 二进制乘法运算二进制乘法运算y yn n(高位

14、)y(高位)yn+1n+1(低位)(低位)操作操作0000部分积右移一位部分积右移一位0101部分积加x部分积加x补补,右移一位,右移一位1010部分积加(x)部分积加(x)补补,右移一位,右移一位1111部分积右移一位部分积右移一位?按照上述算法进行按照上述算法进行n+1步操作,但第步操作,但第n+1步不再移位,仅根据步不再移位,仅根据y0与与y1 的比较结果作相应的运算即可。的比较结果作相应的运算即可。计算机学院布斯法举例布斯法举例?例,X补1.0101,Y补1.0011,求X*Y补? 解:-X补=0.1011,采用双符号位表示后,运算过程如下: 部分积乘数操作 00.0000 1.00110Yn+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 111100YnYn+1=00; + 00.0000 加0 11.1011 11.1101 111110 YnYn+1=10 + 00.1011

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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