第4章数值的机器运算剖析

上传人:今*** 文档编号:106894220 上传时间:2019-10-16 格式:PPT 页数:134 大小:1.95MB
返回 下载 相关 举报
第4章数值的机器运算剖析_第1页
第1页 / 共134页
第4章数值的机器运算剖析_第2页
第2页 / 共134页
第4章数值的机器运算剖析_第3页
第3页 / 共134页
第4章数值的机器运算剖析_第4页
第4页 / 共134页
第4章数值的机器运算剖析_第5页
第5页 / 共134页
点击查看更多>>
资源描述

《第4章数值的机器运算剖析》由会员分享,可在线阅读,更多相关《第4章数值的机器运算剖析(134页珍藏版)》请在金锄头文库上搜索。

1、第4章,数值的 机器运算,第4章,运算器是计算机进行算术运算和逻辑运算的主要部件,运算器的逻辑结构取决于机器的指令系统、数据表示方法和运算方法等。本章主要讨论数值数据在计算机中实现算术运算和逻辑运算的方法,以及运算部件的基本结构和工作原理。,第4章,4.1 基本算术运算的实现 4.2 定点加减运算 4.3 带符号数的移位和舍入操作 4.4 定点乘法运算 4.5 定点除法运算 4.6 规格化浮点运算 4.7 十进制整数的加减运算 4.8 逻辑运算与实现 4.9 运算器的基本组成与实例,4.1 基本算术运算的实现,4.1.1 加法器 加法器是由全加器再配以其他必要的逻辑电路组成的。,1.全加器 基

2、本的加法单元称为全加器,它要求三个输入量:操作数Ai和Bi、低位传来的进位Ci-1,并产生两个输出量:本位和Si、向高位的进位Ci。,4.1 基本算术运算的实现,全加器的逻辑表达式为 Si=AiBiCi-1 Ci=AiBi+(AiBi)Ci-1 2.串行加法器与并行加法器 在串行加法器中,只有一个全加器,数据逐位串行送入加法器进行运算。 如果操作数长n位,加法就要分n次进行,每次只能产生一位和。,4.1 基本算术运算的实现,并行加法器由多个全加器组成,其位数的多少取决于机器的字长,数据的各位同时运算。 并行加法器虽然操作数的各位是同时提供的,但低位运算所产生的进位有可能会影响高位的运算结果。例

3、如:1111和0001相加,最低位产生的进位将逐位影响至最高位。因此,并行加法器的最长运算时间主要是由进位信号的传递时间决定的。提高并行加法器速度的关键是尽量加快进位产生和传递的速度。,4.1 基本算术运算的实现,4.1.2 进位的产生和传递 进位表达式 Ci=AiBi+(AiBi)Ci-1,进位产生函数用Gi表示,进位传递函数用Pi表示,Gi的含义是:若本位的两个输入均为1,必然要向高位产生进位。 Pi的含义是:当两个输入中有一个为1,低位传来的进位Ci-1将超越本位向更高的位传送。 Ci=Gi+PiCi-1,AiBi,AiBi,4.1 基本算术运算的实现,把n个全加器串接起来,就可进行两个

4、n位数的相加。串行进位又称行波进位,每一级进位直接依赖于前一级的进位,即进位信号是逐级形成的。,C1=G1+P1C0,C2=G2+P2C1,Cn=Gn+PnCn-1,4.1 基本算术运算的实现,串行进位链的总延迟时间与字长成正比。假定,将一级门的延迟时间定为ty,从上述公式中可看出,每形成一级进位的延迟时间为2ty。在字长为n位的情况下,若不考虑Gi、Pi的形成时间,从C0Cn的最长延迟时间为2nty。,4.1 基本算术运算的实现,4.1.3 并行加法器的快速进位 1.并行进位方式 并行进位又叫先行进位、同时进位,其特点是各级进位信号同时形成。,C1=G1+P1C0 C2=G2+P2C1,=G

5、2+P2G1+P2P1C0,C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0,4.1 基本算术运算的实现,上述各式中所有各位的进位均不依赖于低位的进位,各位的进位可以同时产生。这种进位方式是快速的,若不考虑Gi、Pi的形成时间,从C0Cn的最长延迟时间仅为2ty。随着加法器位数的增加,Ci的逻辑表达式会变得越来越长,所以,完全采用并行进位是不现实的。,4.1 基本算术运算的实现,2.分组并行进位方式 实际上,通常采用分组并行进位方式。这种进位方式是把n位字长分为若干小组,在组内各位之间实行并行快速进位,在组间既可以

6、采用串行进位方式,也可以采用并行快速进位方式,因此有两种情况。,注意,4.1 基本算术运算的实现,(1)单级先行进位方式 这种进位方式又称为组内并行、组间串行方式。以16位加法器为例,可分为四组,每组四位。第1小组组内的进位逻辑函数C1、C2、C3、C4的表达式与前述相同,C1C4信号是同时产生的,从C0出现到产生C1C4的延迟时间是2ty。,4.1 基本算术运算的实现,8,=G1*+P1*C0,4.1 基本算术运算的实现,(2)多级先行进位方式 多级先行进位又称组内并行、组间并行进位方式。 字长为16位的两级先行进位加法器,第一小组的最高位进位C4: C4=G4+P4G3+P4P3G2+P4

7、P3P2G1+P4P3P2P1C0,组进位 产生函数G1*,组进位 传递函数P1*,依次类推: C8=G2*+P2*G1*+P2*P1*C0 C12=G3*+P3*G2 * +P3*P2*G1*+P3*P2*P1*C0 C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1*+P4*P3*P2*P1*C0,4.1 基本算术运算的实现,4.1 基本算术运算的实现,若不考虑Gi、Pi的形成时间,C0经过2ty产生第1小组的C1、C2、C3及所有组进位产生函数Gi*和组进位传递函数Pi*;再经过2ty,产生C4、C8、C12、C16;最后经过2ty后,才能产生第2、3、4小组内的C

8、5C7、C9C11、C13C15。,4.1 基本算术运算的实现,第4章,4.1 基本算术运算的实现 4.2 定点加减运算 4.3 带符号数的移位和舍入操作 4.4 定点乘法运算 4.5 定点除法运算 4.6 规格化浮点运算 4.7 十进制整数的加减运算 4.8 逻辑运算与实现 4.9 运算器的基本组成与实例,4.2 定点加减运算,4.2.1 原码加减运算 对原码表示的两个数进行加减运算时,符号位不参与运算,仅仅是两数的绝对值参与运算。 计算机的实际操作是加还是减,不仅取决于指令的操作码,还取决于两个操作数的符号,例如:加法时可能要做减法(两数异号);减法时又可能做加法(两数异号),所以原码加减

9、运算的实现是比较复杂的。,4.2 定点加减运算,4.2.2 补码加减运算 1.补码加法 两个补码表示的数相加,符号位参加运算,且两数和的补码等于两数补码之和,即 X+Y补=X补+Y补 2.补码减法 根据补码加法公式可推出: X-Y补=X+(-Y)补=X补+-Y补 已知Y补求-Y补的方法是:将Y补连同符号位一起求反,末尾加“1”。,注意,4.2 定点加减运算,-Y补被称为Y补的机器负数,由Y补求-Y补的过程称为对Y补变补(求补),表示为: -Y补=Y补变补,注意,4.2 定点加减运算,我们要注意将“某数的补码表示”与“变补”这两个概念区分开来。一个负数由原码表示转换成补码表示时,符号位是不变的,

10、仅对数值位的各位变反,末尾加“1”。而变补则不论这个数的真值是正是负,一律连同符号位一起变反,末尾加“1”。 Y补表示的真值如果是正数,则变补后-Y补所表示真值变为负数,反之亦然。,4.2 定点加减运算,例1:Y=-0.0110 Y补=1.1010,-Y补=0.0110 例2:Y=0.0110 Y补=0.0110,-Y补=1.1010,4.2 定点加减运算,3.补码加减运算规则 补码加减运算规则如下: (1)参加运算的两个操作数均用补码表示; (2)符号位作为数的一部分参加运算; (3)若做加法,则两数直接相加;若做减法,则将被减数与减数的机器负数相加; (4)运算结果用补码表示。,4.2 定

11、点加减运算,例1:A=0.1011,B=-0.1110,求:A+B A补=0.1011,B补=1.0010 0.1011 + 1.0010,1.1101,A+B补=1.1101,A+B=-0.0011,4.2 定点加减运算,0.1101 A-B补=0.1101, A-B=0.1101,例2:A=0.1011,B=-0.0010,求:A-B A补=0.1011,B补=1.1110, -B补=0.0010 0.1011 + 0.0010,4.2 定点加减运算,4.符号扩展 在计算机算术运算中,有时必须将采用给定位数表示的数转换成具有更多位数的某种表示形式。例如某个程序需要将一个8位数与另外一个32

12、位数相加。要想得到正确的结果,在将8位数与32位数相加之前,必须将8位数转换成32位数形式,这被称为“符号扩展”。 对于补码,符号扩展方法是:原有符号位保持不变,若为正数则所有附加位都用0进行填充,若为负数则所有附加位都用1进行填充。也可以理解为是用符号位来填充附加的高位。,4.2 定点加减运算,例:将用8位二进制补码表示的十进制数121,扩展成16位二进制补码,结果用十六进制表示。 解:十进制数121的8位二进制补码表示为10000111,扩展成16位二进制补码,符号扩展,表示为1111111110000111= FF87H 。,4.2 定点加减运算,4.2.3 补码的溢出判断与检测方法 1

13、.溢出的产生 在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为1(结果为负);两个负数相加,而结果的符号位却为0(结果为正)。,4.2 定点加减运算,例1:X=1011B=11D,Y=111B=7D X补=0,1011,Y补=0,0111,0,1 0 1 1,+ 0,0 1 1 1,1,0 0 1 0,X+Y补=1,0010,X+Y=-1110B=-14D 两正数相加结果为-14D,显然是错误的。,4.2 定点加减运算,例2:X=-1011B=-11D,Y=-111B=-7D X补=1,0101 Y补=1,1001,X+Y补=0,1110,X+Y=1110B=14D 两

14、负数相加结果为14D,显然也是错误的。,1,0 1 0 1,+ 1,1 0 0 1,0,1 1 1 0,4.2 定点加减运算,为什么会发生这种错误呢?原因在于两数相加之和的数值已超过了机器允许的表示范围。 字长为n+1位的定点整数(其中一位为符号位),采用补码表示,当运算结果大于2n-1或小于-2n时,就产生溢出。,4.2 定点加减运算,设参加运算的两数为X、Y,做加法运算。 若X、Y异号,不会溢出。 若X、Y同号,运算结果为正且大于所能表示的最大正数或运算结果为负且小于所能表示的最小负数(绝对值最大的负数)时,产生溢出。将两正数相加产生的溢出称为正溢;反之,两负数相加产生的溢出称为负溢。,4

15、.2 定点加减运算,2. 溢出检测方法 设:被操作数为:X补=Xs,X1X2Xn 操作数为:Y补=Ys,Y1Y2Yn 其和(差)为:S补=Ss,S1S2Sn (1)采用一个符号位 两正数相加,结果为负表明产生正溢;两负数相加,结果为正表明产生负溢。因此可得出采用一个符号位检测溢出的方法: 当Xs=Ys=0,Ss=1时,产生正溢。 当Xs=Ys=1,Ss=0时,产生负溢。,4.2 定点加减运算,(2)采用进位位 两数运算时,产生的进位为 Cs,C1C2Cn, 其中:Cs为符号位产生的进位,C1为最高数值位产生的进位。 两正数相加,当最高有效位产生进位(C1=1)而符号位不产生进位(Cs=0)时,

16、发生正溢。 两负数相加,当最高有效位没有进位(C1=0)而符号位产生进位(Cs=1)时,发生负溢。,4.2 定点加减运算,1,1,1,1,1,1,4.2 定点加减运算,(3)采用变形补码(双符号位补码) 在双符号位的情况下,把左边的符号位Ss1叫做真符,因为它代表了该数真正的符号,两个符号位都作为数的一部分参加运算。这种编码又称为变形补码。 双符号位的含义如下: Ss1Ss2=00 结果为正数,无溢出 Ss1Ss2=01 结果正溢 Ss1Ss2=10 结果负溢 Ss1Ss2=11 结果为负数,无溢出,4.2 定点加减运算,当两位符号位的值不一致时,表明产生溢出。 溢出=Ss1SS2,注意,4.2 定点加减运算,前例中字长为5位,数的表示范围为-1615,采用变形补码(双符号位)运算,则有: 11+7=18(正溢) 0 0,1

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

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

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