计算机组成原理课件第四章计算机中的算术运算

上传人:j7****6 文档编号:61629793 上传时间:2018-12-07 格式:PPT 页数:94 大小:2.80MB
返回 下载 相关 举报
计算机组成原理课件第四章计算机中的算术运算_第1页
第1页 / 共94页
计算机组成原理课件第四章计算机中的算术运算_第2页
第2页 / 共94页
计算机组成原理课件第四章计算机中的算术运算_第3页
第3页 / 共94页
计算机组成原理课件第四章计算机中的算术运算_第4页
第4页 / 共94页
计算机组成原理课件第四章计算机中的算术运算_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《计算机组成原理课件第四章计算机中的算术运算》由会员分享,可在线阅读,更多相关《计算机组成原理课件第四章计算机中的算术运算(94页珍藏版)》请在金锄头文库上搜索。

1、第五章 计算机中的算术运算,学时:12学时 重点:掌握定点数的四则运算和浮点数的加减运算,定点数的运算 加减运算 乘法运算 原码一位乘法 补码一位乘法 除法运算 原码一位除法 补码一位除法 定点运算器的组成 浮点数的运算 浮点运算器的组成,主要内容,补码的加法运算 任意两个数的补码之和,等于该两数和的补码。 X补+Y补=X+Y补 两个数不管正负,均用补码表示,符号位应当做数值参加运算,符号位相加所产生的进位要丢掉,结果为补码。,定点运算器定点加减法,例: X0.1011 Y-0.0101,求 X+Y? 解:,定点运算器 定点加减法,X补=0. 1 0 1 1,Y补=1. 1 0 1 1,+,0

2、,1,1,0,10.,丢到,1,X补+Y补=0.0110 X+Y=0.0110,例: X-11001 ,Y-00011,求 X+Y? 解:,定点运算器 定点加减法,X补=1 0 0 1 1 1,Y补=1 1 1 1 0 1,+,0,0,1,0,1 1,丢到,1,X补+Y补=100100 X+Y=-11100,0,补码的减法: X补- Y补=X+(-Y)补=X补+-Y补 (-Y)的补码称为Y补的机器负数,由Y补求-Y补的过程称为将Y补“变补”或对Y补求补,由Y补求-Y补的方法是,不管Y的真值为正或为负,都是将Y补的各位连同符号位在内全变反后,最低位加1。,定点运算器定点加减法,例: X-0.10

3、11 Y-0.0110,求 XY? 解:,定点运算器 定点加减法,X补=1. 0 1 0 1,-Y补=0. 0 1 1 0,+,1,1,0,1,1.,11,XY补1.1011 XY=-0.0101,溢出及其判别方法: 在计算机中,由于机器码的尾数通常是给定的(如16位字长,32位字长),因此,在计算机中数的表示范围是有限的,若两数进行加减运算的结果超出了给定的取值范围,就称为溢出。一旦出现溢出,必须及时处理,否则会出现错误。,定点运算器定点加减法,采用单符号位的判断方法 两异号数相加或两同号数相减决不会产生溢出,仅当两同号数相加或两异号数相减时才有可能产生溢出。 两同号数相加时,如果结果的符号

4、与参与运算的操作数符号相反,则表明有溢出;两异号数相减时,如果结果的符号与被减数的符号相反,则表明有溢出。,定点运算器定点加减法,例: X-0.100 Y-0.101,求 X+Y? 解:,定点运算器 定点加减法,X补=1. 1 0 0,Y补=1. 0 1 1,+,1,1,1,10.,丢到,1,两负数相加,结果应为负数,但运算结果为正数,表明有溢出发生,例: X100 ,Y-11,求 X-Y? 解:,定点运算器 定点加减法,X补=0 1 0 0,-Y补=0 1 1 0,+,0,1,1,一个正数减去一个负数,结果为正数,但计算结果为负数,表明有溢出发生,出错,0,采用双符号位的判断方法 每个操作数

5、的补码符号用两个二进制数表示,称为变形补码,用“00”表示正数,“11”表示负数,左边第一位叫第一符号位,右边第一位称为第二符号位,两个符号位同时参加运算,如果运算结果两符号位相同,则没有溢出发生。如果运算结果两符号位不同,则表明产生了溢出。“10”表示负溢出,说明运算结果为负数,“01”表示正溢出,说明运算结果为正数。,定点运算器 定点加减法,利用进位值的判断方法 两补码数进行加减运算时,若最高数值位产生向符号的进位而符号位不产生进位时,发生正溢出,若最高数值位无进位而符号位有进位时,发生负溢出 。 所谓正溢出,即超出机器所能表示的最大正数。 所谓负溢出,即超出机器所能表示的最小负数。,定点

6、运算器 定点加减法,定点加减法的逻辑实现,定点运算器 定点加减法,FS F 加法器,XS X 0 1 寄存器,YS Y 0 1 寄存器,1F,YF,YF,XF,FX,A,C,B,定点加减法的逻辑实现,定点运算器 定点加减法,X补+Y补=F,X补,Y补,1F,YF,YF,XF,FX,A,C,B,定点原码一位乘法(Unsigned Binary Multiplication) 设被乘数X原=XfXn-1Xn-2X1X0 乘 数Y原=YfYn-1Yn-2Y1Y0 乘 积Z原=ZfZ2n-1Z2n-2Z1Z0 运算原则:同号相乘为正,异号相乘为负,符号可按:异或运算得到,数值部分的运算方法与普通的十进

7、制乘数相类似 。,定点运算器定点乘法,手工算法,定点运算器定点乘法,0. 1 1 0 1,0. 1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,+,1 0 0 0 1 1 1 1,0.,l 两个n位数相乘,其积为2n位,则需要2n位长的加法器,这不适用于定点机的形式。,l 机器一次只能进行两个数的相加,不能进行多个数据的加法。,l 手工计算中,乘数的每一位是0还是1都可直接看见,而在计算机中,采用由存放乘数的寄存器的每一位直接决定本次相加数是被乘数还是0是很不方便的,若采用该寄存器的最低一位来执行这种判断就简便了。,运算法则: 计算机中执行乘法时,积的符号位由被

8、乘数和乘数的符号位通过一个半加器实现,数值部分的运算规则是:从最低位Y0开始,当乘数Yi为1时,将上次部分积加上被乘数的绝对值,然后右移一位,得到新的部分积;当Yi为0时,将部分直接右移一位,得到新的部分积。重复“加右移”操作N次,可得到最后的乘积。,定点运算器定点乘法,例:X=0.1101,Y=0.1011, 求X*Y=? 解: 部分积 乘数 说明,定点运算器定点乘法,0 0. 0 0 0 0,0 0. 1 1 0 1,+,Yf 1 0 1 1,0 0. 1 1 0 1,0 0. 0 1 1 0,0 0. 1 1 0 1,+,0 1. 0 0 1 1,0 0. 1 0 0 1,0 0. 0

9、0 0 0,+,0 0. 1 0 0 1,0 0. 0 1 0 0,0 0. 1 1 0 1,0 1. 0 0 0 1,0 0. 1 0 0 0,+,1 Yf 1 0 1,1 1 Yf 1 0,1 1 1 Yf 1,1 1 1 1 Yf,Z0=0,Y0=1, +X,Y1=1, +X,Y2=0, +0,Y3=1, +X,右移,得Z1,右移,得Z2,右移,得Z3,右移,得Z4=X*Y,结果:,定点运算器定点乘法,Zf=Xf+Yf=0+0=0 Z原=0 . 10001111 X*Y=0.10001111,原码一位乘法的逻辑电路图,定点运算器定点乘法,存放部分积,存放被乘数,存放乘数。 一、 R0清零

10、,R2存放被乘数,R1存放乘数。乘法开始时,“启动”信号时控制置,于是开启时序脉冲, 当乘数寄存其最末位为“时,部分积和被乘数在加法器中相加,其结果输出至的输入端。一旦打入控制脉冲到来,控制信号使部分积右移位,与此同时,乘数寄存其也在控制型号作用下右移一位,且计数器记数一次, 二、 将步骤三重复执行N次 三、 当计数器n时,计数器的溢出信号使控制触法器置,关闭时序脉冲,乘法宣告结束。,定点运算器定点乘法,x n-1 . x0,N-Bit Adder,Shift and Add Control Logic,Multiplicand,Add,Shift Right,Multiplier,C,Blo

11、ck Diagram,Partial Products,原码算法存在的缺点: 一是符号位需要单独运算,最后给运算结果以正确的符号;二是对于采用补码存储的机器,从存储器中取出的是操作数的补码,需先将其转换成原码,最后还要将结果转换为补码存放到机器中,这样做很不方便,而且影响速度。,定点运算器定点乘法,定点一位补码乘法: 补码乘法的特点是乘数、被乘数用补码表示,符号位参加运算 ,希望得到的结果就是乘积的补码,符号位在运算中形成。但是与补码加减法不同,两数的补码如果直接相乘,结果不是乘积的补码。 设被乘数X补0.123和乘数补0.12均为任意符号,则有补码乘法算式,这就是有名的布斯公式(Booths

12、 Algorithm)。,定点运算器定点乘法,X*Y补 =X补*Y =X补-Y0+Y12-1+Y2*2-2+Yn2-n =X补-Y0+(Y1-Y12-1)+(Y22-1-Y22-2)+(YN2-(n-1)-Yn2-n) =X补(Y1-Y0)+(Y2-Y1)2-1+(Yn-Yn-1)2-(n-1)+(0-Yn)2-n =X补(Y1-Y0)+2-1(X补(Y2-Y1)+2-1(X补(Y3-Y2)+2-1(X补 (Yn-Y n-1)+2-1(X补(Y n+1-Yn) (Y n+1=0) = X补 (Yi+1-Yi)2-i (Y n+1=0),定点运算器定点乘法,递推公式为: P0补=0 P1补= 2

13、-1(P0补+(Y n+1-Yn) X补) P2补= 2-1(P1补+(Y n-Yn-1) X补) Pi补= 2-1(Pi-1补+(Y n-i+2-Yn-i+1) X补) Pn补= 2-1(Pn-1补+(Y 2-Y1) X补) Pn+1补= Pn补+(Y 1-Y0) X补=X*Y补,定点运算器-定点乘法,算法: 在乘数的最低位之后,增加一位补充位,初始值为0。 从低位到高位,依次判断相邻的两位乘数的状态,根据比较结果决定本次的操作,见下表,定点运算器-定点乘法,第二步操作循环执行n次。但最后一步不移位,包括一位符号位,所得乘积为位,其中为尾数位数。,例:X补=0.1101,Y补=0.1011,

14、求X*Y=? 解: 部分积 乘数 说明,定点运算器定点乘法,0 0 . 0 0 0 0,0. 1 0 1 1 0,Y n+1=0,1 1 . 0 0 1 1,YnY n+1=10, 加-X补,+,1 1 . 0 0 1 1,1 1 . 1 0 0 1,1. 0 1 0 1 1,右移一位,+,0 0 . 0 0 0 0,YnY n+1=11, 加0,1 1 . 1 0 0 1,1 1 . 1 1 0 0,1 1 0 1 0 1,右移一位,+,0 0 . 1 1 0 1,YnY n+1=01, 加X补,0 0 . 1 0 0 1,0 0 . 0 1 0 0,1 1 1 0 1 0,右移一位,+,1 1 . 0 0 1 1,1 1 . 0 1 1 1,YnY n+1=10, 加-X补,1 1 . 1 0 1 1,1 1 1 1 0 1,右移一位,0 0 . 1 1 0 1,+,YnY n+1=01, 加X补,0 0 . 1 0 0 0,1 1 1 1 0 1,最后一次不移位,结果:,定点运算器定点乘法,X*Y补=0.10001111,定点运算器定点乘法, 被乘数的符号和乘数的符号都参加运算。 乘数寄存器有附加位,其初始状态为“”。

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

当前位置:首页 > 生活休闲 > 社会民生

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