第4章数值的机器运算_第1页
第4章数值的机器运算_第2页
第4章数值的机器运算_第3页
第4章数值的机器运算_第4页
第4章数值的机器运算_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院第第4章章数值的数值的机器运算机器运算 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院第第4章章 运算器是计算机进行算术运算和运算器是计算机进行算术运算和逻辑运算的主要部件,运算器的逻辑逻辑运算的主要部件,运算器的逻辑结构取决于机器的指令系统、数据表结构取决于机器的指令系统、数据表示方法和运算方法等。本章主要讨论示方法和运算方法等。本章主要讨论数值数据在计算机中实现算术运算和数值数据在计算机中实现算术运算和逻辑运算的方法,以及运算部件的基逻辑运算的方法,以及运算部件的基本结构和工作原理。本结构和工

2、作原理。 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院第第4章章4.1 基本算术运算的实现基本算术运算的实现4.2 定点加减运算定点加减运算4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作4.4 定点乘法运算定点乘法运算4.5 定点除法运算定点除法运算4.6 规格化浮点运算规格化浮点运算 4.7 十进制整数的加减运算十进制整数的加减运算4.8 逻辑运算与实现逻辑运算与实现4.9 运算器的基本组成与实例运算器的基本组成与实例 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现 4.1.1 加法器

3、加法器 加法器是由全加器再配以其他必要的逻加法器是由全加器再配以其他必要的逻辑电路组成的。辑电路组成的。1.全加器全加器 基本的加法单元称基本的加法单元称为全加器,它要求三个为全加器,它要求三个输入量:操作数输入量:操作数Ai和和Bi、低位传来的进位低位传来的进位Ci-1,并,并产生两个输出量:本位产生两个输出量:本位和和Si、向高位的进位、向高位的进位Ci。FAA Ai iB Bi iS Si iC Ci-1i-1C Ci i计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现 全加器的逻辑表达式为全加器的逻辑表达式为 Si=A

4、i Bi Ci-1 Ci=AiBi+(Ai Bi)Ci-12.串行加法器与并行加法器串行加法器与并行加法器 在串行加法器中,只有在串行加法器中,只有一个全加器一个全加器,数据逐位串行送入加法器进行运算。数据逐位串行送入加法器进行运算。 如果操作数长如果操作数长n位,加法就要分位,加法就要分n次进次进行,每次只能产生一位和。行,每次只能产生一位和。 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现 并行加法器由并行加法器由多个全加器多个全加器组成,其位组成,其位数的多少取决于机器的字长,数据的各位数的多少取决于机器的字长,数据的

5、各位同时运算。同时运算。 并行加法器虽然操作数的各位是同时并行加法器虽然操作数的各位是同时提供的,但低位运算所产生的进位有可能提供的,但低位运算所产生的进位有可能会影响高位的运算结果。例如:会影响高位的运算结果。例如:1111和和0001相加,最低位产生的进位将逐位影相加,最低位产生的进位将逐位影响至最高位。因此,并行加法器的最长运响至最高位。因此,并行加法器的最长运算时间主要是由进位信号的传递时间决定算时间主要是由进位信号的传递时间决定的。的。提高并行加法器速度的关键是尽量加提高并行加法器速度的关键是尽量加快进位产生和传递的速度。快进位产生和传递的速度。 计算机组成原理计算机组成原理北京理工

6、大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现4.1.2 进位的产生和传递进位的产生和传递 进位表达式进位表达式 Ci=AiBi+(Ai Bi)Ci-1进位产生函数进位产生函数用用Gi表示表示进位传递函数进位传递函数用用Pi表示表示 Gi的含义是:若本位的两个输入均为的含义是:若本位的两个输入均为1,必然要向高位产生进位。必然要向高位产生进位。 Pi的含义是:当两个输入中有一个为的含义是:当两个输入中有一个为1,低位传来的进位低位传来的进位Ci-1将超越本位向更高的位传将超越本位向更高的位传送。送。 Ci=Gi+PiCi-1AiBiAi Bi计算机组成原理计算

7、机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现 把把n个全加器串接起来,就可进行两个个全加器串接起来,就可进行两个n位数的相加。串行进位又称行波进位,每位数的相加。串行进位又称行波进位,每一级进位直接依赖于前一级的进位,即进一级进位直接依赖于前一级的进位,即进位信号是逐级形成的。位信号是逐级形成的。C1=G1+P1C0C2=G2+P2C1Cn=Gn+PnCn-1计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现 串行进位链的总延迟时间与字长成正比。串行进位链的总延迟时间与字长成

8、正比。假定,将一级门的延迟时间定为假定,将一级门的延迟时间定为ty,从上述,从上述公式中可看出,每形成一级进位的延迟时间公式中可看出,每形成一级进位的延迟时间为为2ty。在字长为。在字长为n位的情况下,若不考虑位的情况下,若不考虑Gi、Pi的形成时间,从的形成时间,从C0Cn的最长延迟时间为的最长延迟时间为2nty。FAFAFAC1C2Cn-1CnA1B1A2B2AnBnS1S2SnC0计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现4.1.3 并行加法器的快速进位并行加法器的快速进位1.并行进位方式并行进位方式 并行进位又叫

9、先行进位、同时进位,并行进位又叫先行进位、同时进位,其特点是各级进位信号同时形成。其特点是各级进位信号同时形成。C1=G1+P1C0C2=G2+P2C1=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现 上述各式中所有各位的进位均不依赖上述各式中所有各位的进位均不依赖于低位的进位,各位的进位可以同时产生。于低位的进位,各位的进位可以同时产生。这种进位方式是快速的,若不考虑这

10、种进位方式是快速的,若不考虑Gi、Pi的的形成时间,从形成时间,从C0Cn的最长延迟时间仅为的最长延迟时间仅为2ty。随着加法器位数的增加,。随着加法器位数的增加,Ci的逻辑表的逻辑表达式会变得越来越长,所以,完全采用并行达式会变得越来越长,所以,完全采用并行进位是不现实的。进位是不现实的。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现2.分组并行进位方式分组并行进位方式 实际上,通常采用分组并行进位方式。实际上,通常采用分组并行进位方式。这种进位方式是把这种进位方式是把n位字长分为若干小组,位字长分为若干小组,在组内各位之

11、间实行并行快速进位,在组间在组内各位之间实行并行快速进位,在组间既可以采用串行进位方式,也可以采用并行既可以采用串行进位方式,也可以采用并行快速进位方式,因此有两种情况。快速进位方式,因此有两种情况。注意计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现(1)单级先行进位方式单级先行进位方式 这种进位方式又称为这种进位方式又称为组内并行、组间串组内并行、组间串行行方式。以方式。以16位加法器为例,可分为四组,位加法器为例,可分为四组,每组四位。第每组四位。第1小组组内的进位逻辑函数小组组内的进位逻辑函数C1、C2、C3、C4的表

12、达式与前述相同,的表达式与前述相同,C1C4信信号是同时产生的,从号是同时产生的,从C0出现到产生出现到产生C1C4的的延迟时间是延迟时间是2ty。4位位CLA加法器加法器4位位CLA加法器加法器4位位CLA加法器加法器4位位CLA加法器加法器A4A1A8A5A12A9A16A13B4B1B8B5B12B9B16B13S4S1S8S5S12S9S16S13C4C8C12C16C0计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现 C C1616C C1212C C8 8C C4 4C C0 0C C1 1C Ci ityty2

13、24 46 68 8 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院=G1*+P1*C04.1 基本算术运算的实现基本算术运算的实现(2)多级先行进位方式多级先行进位方式 多级先行进位又称多级先行进位又称组内并行、组间并行组内并行、组间并行进位方式。进位方式。 字长为字长为16位的两级先行进位加法器,第位的两级先行进位加法器,第一小组的最高位进位一小组的最高位进位C4: C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0组进位组进位产生函数产生函数G1*组进位组进位传递函数传递函数P1*依次类推:依次类推: C8=G2*+P2*G1*+P2*P

14、1*C0 C12=G3*+P3*G2 * +P3*P2*G1*+P3*P2*P1*C0C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1*+P4*P3*P2*P1*C0计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现CLA电路电路4位位BCLA加法器加法器4位位BCLA加法器加法器4位位BCLA加法器加法器4位位BCLA加法器加法器A4A1A8A5A12A9A16A13B16B13B12B9B8B5B4B1S4S1S8S5S12S9S16S13C0C16P2P1P3P4G1G2G3G4C4C8C12计算机

15、组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现 若不考虑若不考虑Gi、Pi的形成时间,的形成时间,C0经过经过2ty产生第产生第1小组的小组的C1、C2、C3及所有组进及所有组进位产生函数位产生函数Gi*和组进位传递函数和组进位传递函数Pi*;再经;再经过过2ty,产生,产生C4、C8、C12、C16;最后经过;最后经过2ty后,才能产生第后,才能产生第2、3、4小组内的小组内的C5C7、C9C11、C13C15。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现

16、C C1616C C1212C C8 8C C4 4C C0 0C C1 1C Ci ityty2 24 46 6 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.1 基本算术运算的实现基本算术运算的实现4位CLA加法器A4A1B4B1S4S1C4C0四位CLA加法器四位BCLA加法器BCLA加法器A4A1B4B1S4S1C0P1G1计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院第第4章章4.1 基本算术运算的实现基本算术运算的实现4.2 定点加减运算定点加减运算4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作4.4 定点乘法运算定

17、点乘法运算4.5 定点除法运算定点除法运算4.6 规格化浮点运算规格化浮点运算 4.7 十进制整数的加减运算十进制整数的加减运算4.8 逻辑运算与实现逻辑运算与实现4.9 运算器的基本组成与实例运算器的基本组成与实例 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算 4.2.1 原码加减运算原码加减运算 对原码表示的两个数进行加减运算时,对原码表示的两个数进行加减运算时,符号位不参与运算,仅仅是两数的绝对值符号位不参与运算,仅仅是两数的绝对值参与运算。参与运算。 计算机的实际操作是加还是减,不仅计算机的实际操作是加还是减,不仅取决于指令的

18、操作码,还取决于两个操作取决于指令的操作码,还取决于两个操作数的符号,例如:加法时可能要做减法数的符号,例如:加法时可能要做减法(两数异号);减法时又可能做加法(两(两数异号);减法时又可能做加法(两数异号),所以原码加减运算的实现是比数异号),所以原码加减运算的实现是比较复杂的。较复杂的。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算 4.2.2 补码加减运算补码加减运算1.补码加法补码加法 两个补码表示的数相加,符号位参两个补码表示的数相加,符号位参加运算,且两数和的补码等于两数补码加运算,且两数和的补码等于两数补码之和,即之和,即

19、 X+Y补补=X补补+Y补补2.补码减法补码减法 根据补码加法公式可推出:根据补码加法公式可推出: X-Y补补=X+(-Y)补补=X补补+-Y补补 已知已知Y补补求求-Y补补的方法是:将的方法是:将Y补补连同符号位一起求反,末尾加连同符号位一起求反,末尾加“1”。注意计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算 -Y补补被称为被称为Y补补的机器负数,由的机器负数,由Y补补求求-Y补补的过程称为对的过程称为对Y补补变补(求补),变补(求补),表示为:表示为: -Y补补=Y补补变补变补注意计算机组成原理计算机组成原理北京理工大学计算机学院

20、北京理工大学计算机学院4.2 定点加减运算定点加减运算 我们要注意将我们要注意将“某数的补码表示某数的补码表示”与与“变补变补”这两个概念区分开来。一个负数这两个概念区分开来。一个负数由原码表示转换成补码表示时,符号位是由原码表示转换成补码表示时,符号位是不变的,仅对数值位的各位变反,末尾加不变的,仅对数值位的各位变反,末尾加“1”。而变补则不论这个数的真值是正是。而变补则不论这个数的真值是正是负,一律连同符号位一起变反,末尾加负,一律连同符号位一起变反,末尾加“1”。 Y补补表示的真值如果是正数,则变补表示的真值如果是正数,则变补后后-Y补补所表示真值变为负数,反之亦然。所表示真值变为负数,

21、反之亦然。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院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)若做

22、加法,则两数直接相加;若做若做加法,则两数直接相加;若做减法,则将被减数与减数的机器负数相加减法,则将被减数与减数的机器负数相加; (4)运算结果用补码表示。运算结果用补码表示。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算例例1:A=0.1011,B=-0.1110,求,求:A+B A补补=0.1011,B补补=1.0010 0.1011 + 1.00101.1101A+B补补=1.1101,A+B=-0.0011计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算 0.1101 A

23、-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位数相加。要想得到

24、正确的结位数相加。要想得到正确的结果,在将果,在将8位数与位数与32位数相加之前,必须将位数相加之前,必须将8位数转换成位数转换成32位数形式,这被称为位数形式,这被称为“符号扩符号扩展展”。 对于补码,符号扩展方法是:原有符号对于补码,符号扩展方法是:原有符号位保持不变,若为正数则所有附加位都用位保持不变,若为正数则所有附加位都用0进进行填充,若为负数则所有附加位都用行填充,若为负数则所有附加位都用1进行填进行填充。也可以理解为是用符号位来填充附加的充。也可以理解为是用符号位来填充附加的高位。高位。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定

25、点加减运算 例例:将用将用8位二进制补码表示的十进制数位二进制补码表示的十进制数121,扩展成,扩展成16位二进制补码,结果用十六进位二进制补码,结果用十六进制表示制表示。 解:解:十进制数十进制数121的的8位二进制补码表示位二进制补码表示为为10000111,扩展成,扩展成16位二进制补码,符号扩位二进制补码,符号扩展,表示为展,表示为1111111110000111= FF87H 。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算4.2.3 补码的溢出判断与检测方法补码的溢出判断与检测方法 1.溢出的产生溢出的产生 在补码加减运算中

26、,有时会遇到这在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号样的情况:两个正数相加,而结果的符号位却为位却为1(结果为负);两个负数相加,(结果为负);两个负数相加,而结果的符号位却为而结果的符号位却为0(结果为正)。(结果为正)。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算例例1:X=1011B=11D,Y=111B=7D X补补=0,1011,Y补补=0,01110,1 0 1 1+ 0,0 1 1 11,0 0 1 0 X+Y补补=1,0010,X+Y=-1110B=-14D 两正数相加结果为两正数相加结果为

27、-14D,显然是错误的。,显然是错误的。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算例例2:X=-1011B=-11D,Y=-111B=-7D X补补=1,0101 Y补补=1,1001 X+Y补补=0,1110,X+Y=1110B=14D 两负数相加结果为两负数相加结果为14D,显然也是错,显然也是错误的。误的。1,0 1 0 1+ 1,1 0 0 10,1 1 1 0计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算 为什么会发生这种错误呢?原因在于为什么会发生这种错误呢?原因

28、在于两数相加之和的数值已超过了机器允许的两数相加之和的数值已超过了机器允许的表示范围。表示范围。 字长为字长为n+1位的定点整数(其中一位位的定点整数(其中一位为符号位),采用补码表示,当运算结果为符号位),采用补码表示,当运算结果大于大于2n-1或小于或小于-2n时,就产生溢出。时,就产生溢出。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算 设参加运算的两数为设参加运算的两数为X、Y,做加法,做加法运算。运算。 若若X、Y异号,不会溢出。异号,不会溢出。 若若X、Y同号同号,运算结果为正且大于运算结果为正且大于所能表示的最大正数或运算

29、结果为负且小所能表示的最大正数或运算结果为负且小于所能表示的最小负数(绝对值最大的负于所能表示的最小负数(绝对值最大的负数)时,产生溢出数)时,产生溢出。将两正数相加产生的。将两正数相加产生的溢出称为正溢;反之,两负数相加产生的溢出称为正溢;反之,两负数相加产生的溢出称为负溢。溢出称为负溢。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算2. 溢出检测方法溢出检测方法 设:被操作数为:设:被操作数为:X补补=Xs,X1X2Xn 操作数为:操作数为:Y补补=Ys,Y1Y2Yn 其和(差)为:其和(差)为:S补补=Ss,S1S2Sn(1)采用

30、一个符号位采用一个符号位 两正数相加,结果为负表明产生正溢;两正数相加,结果为负表明产生正溢;两负数相加,结果为正表明产生负溢。因此两负数相加,结果为正表明产生负溢。因此可得出采用一个符号位检测溢出的方法:可得出采用一个符号位检测溢出的方法: 当当Xs=Ys=0,Ss=1时,产生正溢时,产生正溢。 当当Xs=Ys=1,Ss=0时,产生负溢时,产生负溢。溢出溢出=XsYsSs+XsYsSs计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算(2)采用进位位采用进位位 两数运算时,产生的进位为两数运算时,产生的进位为 Cs,C1C2Cn, 其中:

31、其中:Cs为符号位产生的进位,为符号位产生的进位,C1为为最高数值位产生的进位。最高数值位产生的进位。 两正数相加,当最高有效位产生进位两正数相加,当最高有效位产生进位(C1=1)而符号位不产生进位()而符号位不产生进位(Cs=0)时,)时,发生正溢发生正溢。 两负数相加,当最高有效位没有进位两负数相加,当最高有效位没有进位(C1=0)而符号位产生进位()而符号位产生进位(Cs=1)时,)时,发生负溢。发生负溢。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算溢出溢出=CsC1+CsC1=Cs C1 1,0 1 0 1+ 1,1 0 0

32、10,1 1 1 00,1 0 1 1+ 0,0 1 1 11,0 0 1 0111111计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算(3)采用变形补码(双符号位补码)采用变形补码(双符号位补码) 在双符号位的情况下,把左边的符号在双符号位的情况下,把左边的符号位位Ss1叫做真符,因为它代表了该数真正的叫做真符,因为它代表了该数真正的符号,两个符号位都作为数的一部分参加符号,两个符号位都作为数的一部分参加运算。这种编码又称为变形补码。运算。这种编码又称为变形补码。 双符号位的含义如下:双符号位的含义如下: Ss1Ss2=00 结果为正

33、数,结果为正数,无溢出无溢出 Ss1Ss2=01 结果结果正溢正溢 Ss1Ss2=10 结果结果负溢负溢 Ss1Ss2=11 结果为负数,结果为负数,无溢无溢出出计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算 当两位符号位的值不一致时,表明产当两位符号位的值不一致时,表明产生溢出。生溢出。 溢出溢出=Ss1 SS2 注意计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.2 定点加减运算定点加减运算 前例前例中字长为中字长为5位,数的表示范围为位,数的表示范围为-1615,采用采用变形补码(变形补码(双符号位双符

34、号位)运算)运算,则有:,则有: 11+7=18(正溢)(正溢) 0 0,1 0 1 1 + 0 0,0 1 1 10 1,0 0 1 0 -11+(-7)=-18(负溢)(负溢) 1 1,0 1 0 1 + 1 1,1 0 0 11 0,1 1 1 0计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院ACBF0 10 1XXsYsFs寄存器寄存器加法器 YFF XX F1 F F_YY寄存器寄存器X寄存器寄存器加法器加法器CPX4.2 定点加减运算定点加减运算4.2.4 补码定点加减运算的实现补码定点加减运算的实现 补码加法:补码加法:XF、YF、FX、CPXXFYFF

35、XCPX 1 A C计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院ACBF0 10 1XXsYsFs寄存器寄存器加法器 YFF XX F1 F F_YY寄存器寄存器X寄存器寄存器加法器加法器CPX4.2 定点加减运算定点加减运算 补码减法:补码减法:XF、YF、1F、FX、CPXFXCPXXFYF1F 1 AC计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院第第4章章4.1 基本算术运算的实现基本算术运算的实现4.2 定点加减运算定点加减运算4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作4.4 定点乘法运算定点乘法运算4.5 定点除法

36、运算定点除法运算4.6 规格化浮点运算规格化浮点运算 4.7 十进制整数的加减运算十进制整数的加减运算4.8 逻辑运算与实现逻辑运算与实现4.9 运算器的基本组成与实例运算器的基本组成与实例 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作4.3.1 带符号数的移位操作带符号数的移位操作 算术移位应保持数的符号不变,而数算术移位应保持数的符号不变,而数值的大小则要发生变化。左移一位使数值值的大小则要发生变化。左移一位使数值增大一倍,相当于该数乘以增大一倍,相当于该数乘以2,而右移一位,而右移一位则使数值缩小一倍,相

37、当于该数除以则使数值缩小一倍,相当于该数除以2。1. .原码的移位规则原码的移位规则 负数的原码移位后的空出位补负数的原码移位后的空出位补0左移左移X X1 1X X2 2X Xn-1n-1X Xn n1 1右移右移X X1 1X X2 2X Xn-1n-1X Xn n1 1左移左移X X2 2X X3 3X Xn n0 01 1右移右移0 0X X1 1X Xn-2n-2X Xn-1n-11 1计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作2.补码的移位规则补码的移位规则 负数的补码左移后的空出位补负数的补码左

38、移后的空出位补0,右移,右移后的空出位补后的空出位补1。左移左移X X1 1X X2 2X Xn-1n-1X Xn n1 1右移右移X X1 1X X2 2X Xn-1n-1X Xn n1 1左移左移X X2 2X X3 3X Xn n0 01 1右移右移1 1X X1 1X Xn-2n-2X Xn-1n-11 1计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作3. 移位功能的实现移位功能的实现 通常移位操作由移位寄存器来实现。通常移位操作由移位寄存器来实现。但也有一些计算机不设置专门的移位寄存但也有一些计算机不设

39、置专门的移位寄存器,而在加法器的输出端加一个实现直传、器,而在加法器的输出端加一个实现直传、左移一位和右移一位的控制逻辑电路(称左移一位和右移一位的控制逻辑电路(称为移位器)。为移位器)。 分别用分别用2FL、FL和和F/2L 这三个这三个不同控制信号选择左移、直传和右移操作。不同控制信号选择左移、直传和右移操作。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院直传4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作LiFiFi+1Fi-12F LF LF/2 LF Fi iF Fi+1i+1F Fi-1i-1右移右移左移左移F Fi iFLFLF Fi-1i-1F

40、/2LF/2LF Fi+1i+12FL2FLF Fi iF Fi+1i+1F Fi-1i-1 1 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作4.3.2 带符号数的舍入操作带符号数的舍入操作 在算术右移中,由于受硬件的限制,在算术右移中,由于受硬件的限制,运算结果有可能需要舍去一定的尾数,会运算结果有可能需要舍去一定的尾数,会造成一些误差。为了缩小误差,就要进行造成一些误差。为了缩小误差,就要进行舍入处理。舍入处理。1.恒舍(切断)恒舍(切断) 这是一种最容易实现的舍入方法,无这是一种最容易实现的舍入方法,无论

41、多余部分论多余部分q位为何代码,一律舍去,保留位为何代码,一律舍去,保留部分部分p位不作任何改变。位不作任何改变。保留部分保留部分p p位位 多余部分多余部分q q位位p+qp+q位位计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作2. 冯冯诺依曼舍入法诺依曼舍入法 这种舍入法又称为恒置这种舍入法又称为恒置1法,即不论多法,即不论多余部分余部分q位为何代码,都把位为何代码,都把p位的最低位置位的最低位置1。 保留部分保留部分p p位位 多余部分多余部分q q位位p+qp+q位位1保留部分保留部分p p位位 多余部分

42、多余部分q q位位p+qp+q位位0 1保留部分最低位为保留部分最低位为1 1保留部分最低位为保留部分最低位为0 0计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作3. 下舍上入法下舍上入法 下舍上入就是下舍上入就是0舍舍1入。用将要舍去的入。用将要舍去的q位部分的最高位作为判断标志,如该位为位部分的最高位作为判断标志,如该位为0,则舍去整个则舍去整个q位部分,如该位为位部分,如该位为1,则在前,则在前面的面的p位部分的最低位上加位部分的最低位上加1。 保留部分保留部分p p位位 多余部分多余部分q q位位p+qp

43、+q位位多余部分最高位为多余部分最高位为0 0多余部分最高位为多余部分最高位为1 1 0保留部分保留部分p p位位 多余部分多余部分q q位位p+qp+q位位11 1+111计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作4.查表舍入法查表舍入法 用用ROM存放下溢处理表,存放下溢处理表,每次经查表来读得相应的处理结每次经查表来读得相应的处理结果。果。ROM表的容量为表的容量为2K个单元,个单元,每个单元字长为每个单元字长为K-1位。下溢处位。下溢处理表的内容设置一般采用的方法理表的内容设置一般采用的方法是:当是:

44、当K位数据的高位数据的高K-1位为全位为全“1”时,让那些单元按截断法填时,让那些单元按截断法填入入K-1位全位全“1”,其余单元都按,其余单元都按最低位(即附加位)最低位(即附加位)0舍舍1入的结入的结果来填其内容。果来填其内容。地址地址 内容内容000 00001 01010 01011 10100 10101 11 11111 11计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院第第4章章4.1 基本算术运算的实现基本算术运算的实现4.2 定点加减运算定点加减运算4.3 带符号数的移位和舍入操作带符号数的移位和舍入操作4.4 定点乘法运算定点乘法运算4.5 定点除

45、法运算定点除法运算4.6 规格化浮点运算规格化浮点运算 4.7 十进制整数的加减运算十进制整数的加减运算4.8 逻辑运算与实现逻辑运算与实现4.9 运算器的基本组成与实例运算器的基本组成与实例 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算 4.4.1 原码一位乘法原码一位乘法 用原码实现乘法运算是十分方便的。用原码实现乘法运算是十分方便的。原码一位乘法是从手算演变而来的,即用两原码一位乘法是从手算演变而来的,即用两个操作数的绝对值相乘,乘积的符号为两操个操作数的绝对值相乘,乘积的符号为两操作数符号的异或值(同号为正,异号为负)。作数符

46、号的异或值(同号为正,异号为负)。 乘积乘积 P|X| |Y| 符号符号Ps=Xs Ys 例如:例如:X=0.1101,Y=-0.1011,列出手,列出手算乘法算式为算乘法算式为计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算 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 0.1 0 0 0 1 1 1 1 因为因为Ps=Xs Ys=0 1=1 所以所以XY=-0.10001111计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘

47、法运算 原码一位乘法的规则为:原码一位乘法的规则为: 参加运算的操作数取其绝对值;参加运算的操作数取其绝对值; 令乘数的最低位为判断位,若为令乘数的最低位为判断位,若为“1”,加被乘数,若为,加被乘数,若为“0”,不加被乘数,不加被乘数(加(加0);); 累加后的部分积右移一位;累加后的部分积右移一位; 重复重复n次和;次和; 符号位单独处理,同号为正,异号为符号位单独处理,同号为正,异号为负。负。 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算乘法运算需要乘法运算需要3个寄存器:个寄存器: A寄存器:部分积与最后乘积的高位部寄存器:部

48、分积与最后乘积的高位部分,初值为分,初值为0。 B寄存器:被乘数寄存器:被乘数X。 C寄存器:乘数寄存器:乘数Y,运算后,运算后C寄存器中寄存器中不再需要保留乘数,改为存放乘积的低位部不再需要保留乘数,改为存放乘积的低位部分。分。 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算 已知:已知:X=0.1101,Y=-0.1011,求:,求:X Y。 |X|=0.1101B,|Y|=0.1011C,0A 符号位不参加运算符号位不参加运算 A、C寄存器级联,右移。寄存器级联,右移。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学

49、计算机学院4.4 定点乘法运算定点乘法运算 A C 说明说明0 0.0 0 0 0 1 0 1 1+|X| 0 0.1 1 0 1 C4=1,+|X|0 0.1 1 0 1 0 0.0 1 1 0 1 1 0 1 部分积右移一位部分积右移一位0 1.0 0 1 1+|X| 0 0.1 1 0 1 C4=1,+|X| 0 0.1 0 0 1 1 1 1 0 部分积右移一位部分积右移一位+0 0 0.0 0 0 0 C4=0,+00 0.1 0 0 1 0 0.0 1 0 0 1 1 1 1 部分积右移一位部分积右移一位+|X| 0 0.1 1 0 1 C4=1,+|X|0 1.0 0 0 1 0

50、 0.1 0 0 0 1 1 1 1 部分积右移一位部分积右移一位PS=XS YS=0 1=1X Y=-0.10001111 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算 |X|B,|Y|C0A,0CRCn=1(A+B)AC CCR+1CRCR=n?EndYN.AACCXS YS PSNY计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算4.4.2 补码一位乘法补码一位乘法比较法比较法Booth乘法乘法 设:被乘数设:被乘数X补补=Xs.X1X2Xn,乘数,乘数Y补补=Ys.Y1Y

51、2Yn。 在乘数的最低位之后增加一位附加位在乘数的最低位之后增加一位附加位Yn+1,它的初值为,它的初值为0,增加附加位不会影响,增加附加位不会影响运算结果。运算结果。 每次运算取决于乘数相邻两位每次运算取决于乘数相邻两位Yi、Yi+1的值,把它们称为乘法的判断位。根的值,把它们称为乘法的判断位。根据校正法的统一表达式推出:由乘数相邻据校正法的统一表达式推出:由乘数相邻两位的比较结果(两位的比较结果(Yi+1-Yi)来确定运算操)来确定运算操作。作。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算Booth乘法规则如下:乘法规则如下: 参

52、加运算的数用补码表示;参加运算的数用补码表示; 符号位参加运算;符号位参加运算; 乘数最低位后面增加一位附加位乘数最低位后面增加一位附加位Yn+1,其初值为,其初值为0; 由于每求一次部分积要右移一位,由于每求一次部分积要右移一位,所以乘数的最低两位所以乘数的最低两位Yn、Yn+1的值决定了的值决定了每次应执行的操作;每次应执行的操作;计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算判断位判断位Yn Yn+1 操操 作作 0 0 原部分积右移一位原部分积右移一位 0 1 原部分积加原部分积加X补补后右移一位后右移一位 1 0 原部分积加原

53、部分积加-X补补后右移一位后右移一位 1 1 原部分积右移一位原部分积右移一位 计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算 移位按补码右移规则进行;移位按补码右移规则进行; 共需做共需做n+1次累加,次累加,n次移位,第次移位,第n+1次不移位。次不移位。例:已知例:已知X=-0.1101,Y=0.1011;求;求X Y。 X补补=1.0011B,Y补补=0.1011C,0A -X补补=0.1101计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算 A C A C 附加位附加位

54、说明说明0 0.0 0 0 0 0.1 0 1 1 0 0.0 0 0 0 0.1 0 1 1 0 0+-X+-X补补 0 0.1 1 0 1 C0 0.1 1 0 1 C4 4C C5 5=10=10,+-X+-X补补0 0.1 1 0 10 0.1 1 0 1 0 0.0 1 1 0 1 0 1 0 1 1 0 0.0 1 1 0 1 0 1 0 1 1 部分积右移一位部分积右移一位+0 0 0.0 0 0 0 C+0 0 0.0 0 0 0 C4 4C C5 5=11=11,+0+00 0.0 1 1 00 0.0 1 1 0 0 0.0 0 1 1 0 1 0 1 0 1 0 0.0

55、0 1 1 0 1 0 1 0 1 部分积右移一位部分积右移一位+X+X补补 1 1.0 0 1 1 C1 1.0 0 1 1 C4 4C C5 5=01=01,+X+X补补1 1.0 1 1 01 1.0 1 1 0 1 1.1 0 1 1 0 0 1 0 1 0 1 1.1 0 1 1 0 0 1 0 1 0 部分积右移一位部分积右移一位+-X+-X补补 0 0.1 1 0 1 C0 0.1 1 0 1 C4 4C C5 5=10=10,+-X+-X补补0 0.1 0 0 00 0.1 0 0 0 0 0.0 1 0 0 0 0 0 1 0 1 0 0.0 1 0 0 0 0 0 1 0

56、1 部分积右移一位部分积右移一位+X+X补补 1 1.0 0 1 1 C1 1.0 0 1 1 C4 4C C5 5=01=01,+X+X补补1 1.0 1 1 11 1.0 1 1 1XX YY补补=1.01110001=1.01110001XX Y=-0.10001111Y=-0.10001111计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算X补补B,Y补补C0A,0CR,0Cn+1CnCn+1=?A-BACR+1CRCR=n+1?EndYN.A+BAAACC011000/11计算机组成原理计算机组成原理北京理工大学计算机学院北京理

57、工大学计算机学院4.4 定点乘法运算定点乘法运算4.4.3 补码两位乘法补码两位乘法 为了提高乘法的执行速度,可以选用为了提高乘法的执行速度,可以选用两位乘法的方案。所谓两位乘法,就是每两位乘法的方案。所谓两位乘法,就是每次处理乘数中的两位,从而使乘法的速度次处理乘数中的两位,从而使乘法的速度提高了一倍。两位乘法又可分为原码两位提高了一倍。两位乘法又可分为原码两位乘法和补码两位乘法,在此只讨论乘法和补码两位乘法,在此只讨论补码两补码两位乘法。位乘法。 根据前面介绍的根据前面介绍的Booth乘法方便地推导乘法方便地推导出补码两位乘法,即把补码两位乘理解为出补码两位乘法,即把补码两位乘理解为将将B

58、ooth乘法的两次合并为一次来做。乘法的两次合并为一次来做。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算 补码两位乘法可以通过补码两位乘法可以通过Yi-1YiYi+1三位三位的不同组合来判断原部分积与的不同组合来判断原部分积与X补补的运算的运算情况,然后右移两位得到新的部分积。情况,然后右移两位得到新的部分积。计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算补码两位乘法规则如下:补码两位乘法规则如下: 参加运算的数用补码表示;参加运算的数用补码表示; 符号位参加运算;符号位参加运

59、算; 乘数最低位后增加一位附加位乘数最低位后增加一位附加位Yn+1,初值为初值为0; 根据乘数的最低三位根据乘数的最低三位Yn-1YnYn+1的值的值决定每次应执行的操作;决定每次应执行的操作; 移位按补码右移规则进行。移位按补码右移规则进行。 比较结果(比较结果(Yi+1+Yi-2Yi-1)计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算Yn-1YnYn+10 0 0 +0,右移,右移2位位0 0 1 +X补补,右移,右移2位位0 1 0 +X补补,右移,右移2位位0 1 1 +2X补补,右移,右移2位位1 0 0 +2-X补补,右移,

60、右移2位位1 0 1 +-X补补,右移,右移2位位1 1 0 +-X补补,右移,右移2位位1 1 1 +0,右移,右移2位位计算机组成原理计算机组成原理北京理工大学计算机学院北京理工大学计算机学院4.4 定点乘法运算定点乘法运算 被乘数和部分积取三符号位,当乘数被乘数和部分积取三符号位,当乘数的数值位的数值位n 为偶数时,乘数取两符号位,为偶数时,乘数取两符号位,共需作共需作(n/2)+1次累加,次累加,n/2次移位(最后一次移位(最后一次不移位);当次不移位);当n为奇数时,乘数只需一个为奇数时,乘数只需一个符号位,共需符号位,共需(n1)/2次累加和移位,但最次累加和移位,但最后一次仅移一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论