数据的机器运算ppt课件_第1页
数据的机器运算ppt课件_第2页
数据的机器运算ppt课件_第3页
数据的机器运算ppt课件_第4页
数据的机器运算ppt课件_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章第四章 数据的机器运算数据的机器运算n计算机的主要功能是对数据进展各种加工和处置,包括计算机的主要功能是对数据进展各种加工和处置,包括加、减、乘、除这些根本的算术运算,与、或、非这些加、减、乘、除这些根本的算术运算,与、或、非这些根本的逻辑运算,以及由此构成的其它复杂的运算。运根本的逻辑运算,以及由此构成的其它复杂的运算。运算器那么是实现这些运算的主要部件。算器那么是实现这些运算的主要部件。n无论多么复杂的运算,最终都要分解为加法运算来实现。无论多么复杂的运算,最终都要分解为加法运算来实现。其中,减法运算经过补码转化为加法来实现其中,减法运算经过补码转化为加法来实现 ;乘、除运;乘、除运

2、算可以转换为加减运算、移位操作来实现。加法和移位算可以转换为加减运算、移位操作来实现。加法和移位是计算机中最根本的两种运算操作。是计算机中最根本的两种运算操作。n可见,加法器又是运算器的中心部件。在加法器的根底可见,加法器又是运算器的中心部件。在加法器的根底上添加移位功能,并经过选择输入控制条件,就可以实上添加移位功能,并经过选择输入控制条件,就可以实现一切的运算。现一切的运算。 本章主要内容本章主要内容主要内容主要内容算术、逻辑运算的实现算术、逻辑运算的实现定点加、减运算定点加、减运算数的移位和舍入操作数的移位和舍入操作定点乘、除运算定点乘、除运算规格化浮点运算规格化浮点运算一、算术逻辑运算

3、的实现一、算术逻辑运算的实现 计算机中最根本的算术运算是加法运算,不论加、计算机中最根本的算术运算是加法运算,不论加、减、乘、除运算最终都可以归结为加法运算。所以减、乘、除运算最终都可以归结为加法运算。所以首先讨论最根本、最中心的运算部件首先讨论最根本、最中心的运算部件加法器,加法器,以及并行加法器的进位问题。以及并行加法器的进位问题。加法器是由全加器和其它必要的逻辑电路组成的,加法器是由全加器和其它必要的逻辑电路组成的,所以我们从全加器开场讨论。所以我们从全加器开场讨论。1 1、全加器、全加器FAFAn全加器全加器FA是最根本是最根本的运算单元,由它构成的运算单元,由它构成加法器。加法器。n

4、全加器有三个输入量:全加器有三个输入量:操作数操作数Ai、Bi、以及低、以及低位传来的进位信号位传来的进位信号Ci-1 。n全加器有两个输出量:全加器有两个输出量:本位和本位和Si、以及向高位、以及向高位的进位信号的进位信号Ci。 Ai Bi Ci-1 Si Ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 全加器真值表全加器的逻辑方程和电路全加器的逻辑方程和电路根据真值表得:根据真值表得: Si=AiBiCi-1 Si=AiBiCi-1 Ci=AiBi+(AiCi=AiBi+(

5、AiBi)Ci-1Bi)Ci-1 Si : Si : 本位和本位和 Ci : Ci : 向高位的进向高位的进位位实现电路实现电路逻辑框图逻辑框图一个全加器只完成一位加法一个全加器只完成一位加法全加器构成加法器全加器构成加法器n全加器并不存储信息,可用门电路来实现。用全加全加器并不存储信息,可用门电路来实现。用全加器可以方便地构成加法器。加法器分为串行加法器器可以方便地构成加法器。加法器分为串行加法器和并行加法器。和并行加法器。 n串行加法器只需一个全加器,数据逐位串行送入加串行加法器只需一个全加器,数据逐位串行送入加法器进展计算。由于运算速度慢,普通不用。法器进展计算。由于运算速度慢,普通不用

6、。n并行加法器那么由假设干个这样的全加器构成,各并行加法器那么由假设干个这样的全加器构成,各位数据同时运算。并行加法器的位数与操作数的位位数据同时运算。并行加法器的位数与操作数的位数相等。并行加法器的最长运算时间主要取决于进数相等。并行加法器的最长运算时间主要取决于进位信号的传送时间。例如:位信号的传送时间。例如:1111和和0001相加,相加,最低位产生的进位将逐位影响到最高位最低位产生的进位将逐位影响到最高位.n由此可见,提高并行加法器速度的关键是尽量加快由此可见,提高并行加法器速度的关键是尽量加快进位产生和传送的速度。进位产生和传送的速度。2 2、进位产生与传送、进位产生与传送n进位链的

7、概念:进位链的概念:n并行加法器中的每一个全加器都有一个从低位送并行加法器中的每一个全加器都有一个从低位送来的进位输入和一个传送给高位的进位输出。我们把来的进位输入和一个传送给高位的进位输出。我们把构成进位信号产生和传送的逻辑网络称为进位链。构成进位信号产生和传送的逻辑网络称为进位链。n进位链上每一位的进位表达式为:进位链上每一位的进位表达式为:n Ci=AiBi+(Ai Bi)Ci-1 n设设Gi=AiBi ,称为进位产生函数,称为进位产生函数nPi=Ai Bi ,称为进位传送函数,称为进位传送函数n 进位表达式进位表达式 Ci=Gi+PiCi-1串行进位串行进位n把把n个全加器串联起来,就

8、可以实现两个个全加器串联起来,就可以实现两个n位数的相加。这种加法器位数的相加。这种加法器称为串行进位的并行加法器,串行进位又叫行波进位。称为串行进位的并行加法器,串行进位又叫行波进位。 FAFAFAC1C2Cn-1CnA1B1A2B2AnBnS1S2SnC0其中:其中:C1=G1+P1C0 C2=G2+P2C1 Cn=Gn+PnCn-1n串行进位的并行加法器,总的延迟时间正比于字串行进位的并行加法器,总的延迟时间正比于字长,字长越长,总延迟时间也越长。长,字长越长,总延迟时间也越长。n假设一位进位需假设一位进位需2ty时间,完成时间,完成n位进位就需求位进位就需求2nty.n要提高加法运算速

9、度,必需改良进位方式。要提高加法运算速度,必需改良进位方式。 3 3、并行加法器的快速进位、并行加法器的快速进位l改良串行进位方式的根本思绪是让各进位同时构成,防止各进位之改良串行进位方式的根本思绪是让各进位同时构成,防止各进位之间的依赖关系。如今来分析一下进位关系。间的依赖关系。如今来分析一下进位关系。 l展 开展 开 C 1 = G 1 + P 1 C 0 ; C 2 = G 2 + P 2 C 1 ; ,Cn=Gn+PnCn-1 得关系式:得关系式:l C1=G1+P1C0l C2=G2+P2C1=G2+P2G1+P2P1C0l C3=G3+P3C2=G3+P3G2+P3P2G1+P3P

10、2P1C0 l C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1 +P4P3P2P1C0l l以上进位输出只与以上进位输出只与Gi、Pi以及最低进位以及最低进位C0有关,而且不依赖有关,而且不依赖于其低位进位于其低位进位Ci-1的输入,因此各级进位可以同时产生,构成并行的输入,因此各级进位可以同时产生,构成并行进位。进位。并行进位的特点并行进位的特点n并行进位的特点是各级进位信号同时构成,与字长无并行进位的特点是各级进位信号同时构成,与字长无关,提高了整体运算速度关,提高了整体运算速度 。并行进位又叫先行进位。并行进位又叫先行进位。n最长延迟时间仅为最长延迟时间仅为2ty。

11、n随着加法器位数的添加,随着加法器位数的添加,Ci的逻辑表达式会变得越来的逻辑表达式会变得越来越长,输入变量会越来越多,电路构造也会变得越来越长,输入变量会越来越多,电路构造也会变得越来越复杂,导致电路实现也越来越困难。越复杂,导致电路实现也越来越困难。n并行进位方式需继续改良,才干有适用价值。这就是并行进位方式需继续改良,才干有适用价值。这就是下面要引见的分组进位方式。下面要引见的分组进位方式。n以以16位加法器为例,将其分为位加法器为例,将其分为4组,每组组,每组4位。位。n在组内,按照并行进位函数直接产生在组内,按照并行进位函数直接产生C1C4,这,这些进位可同时得到。实现这种进位逻辑的

12、电路称些进位可同时得到。实现这种进位逻辑的电路称为为4位先行进位电路位先行进位电路CLA,如,如74181ALU。n利用这种利用这种4位一组的位一组的CLA电路和电路和4位全加器可以构位全加器可以构成成4位位CLA加法器。留意,加法器。留意,4位位CLA加法器包含了加法器包含了两部分逻辑:两部分逻辑:4位全加器和位全加器和4位一组的先行进位链,位一组的先行进位链,这个组内的进位为一级进位。这个组内的进位为一级进位。 n在组间,每个组的进位输入是前一个组的进位输在组间,每个组的进位输入是前一个组的进位输出,而每个组的进位输出是下一个组的进位输入出,而每个组的进位输出是下一个组的进位输入.构成构成

13、1616位加法位加法器很容器很容易实现易实现 单级先行进位单级先行进位单级先行进位续一单级先行进位续一n上述组内并行、组间串行的进位方式也称为单级先上述组内并行、组间串行的进位方式也称为单级先行进位方式,原理如以下图所示。行进位方式,原理如以下图所示。单级先行进位续二单级先行进位续二n组内并行、组间串行进位的时间图组内并行、组间串行进位的时间图(16位位)如下:如下:n完成进位时间完成进位时间8ty.n进位时间与组数成正比,组数越多,进位时间越长。进位时间与组数成正比,组数越多,进位时间越长。多级先行进位多级先行进位n为阐明问题,我们无妨仍以为阐明问题,我们无妨仍以16位加法器为例,依然位加法

14、器为例,依然4位一组,分成位一组,分成4个小组,先就第一小组的进位输出函个小组,先就第一小组的进位输出函数数C4做一下分析:做一下分析:nC4 = G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0n G1* P1*n = G1* +P1*C0n G1*称为组进位产生函数,称为组进位产生函数,P1*称为组进位传送函数;称为组进位传送函数;这两个函数类似于进位产生函数这两个函数类似于进位产生函数G和进位传送函数和进位传送函数P.多级先行进位续一多级先行进位续一n四个组内的最高进位四个组内的最高进位C16C16、C12C12、C8C8、C4C4可以分别表示为可以分别表示为: :n

15、 C4 = G1 C4 = G1* * + P1 + P1* * C0 C0n C8 = G2 C8 = G2* * + P2 + P2* * C4 C4n C12 = G3 C12 = G3* * + P3 + P3* * C8 C8n C16 = G4 C16 = G4* * + P4 + P4* * C12 C12n如今逐项代入、并展开得关系式:如今逐项代入、并展开得关系式:nC4 = G1C4 = G1* * + P1 + P1* * C0 C0nC8 = G2C8 = G2* *+P2+P2* *C4=G2C4=G2* *+P2+P2* *G1G1* * +P2 +P2* *P1P1

16、* *C0C0nC12 = G3C12 = G3* *+P3+P3* *G2G2* *+P3+P3* *P2P2* *G1G1* * +P3 +P3* *P2P2* *P1P1* *C0C0nC16 = C16 = G4G4* *+P4+P4* *G3G3* *+P4+P4* *P3P3* *G2G2* *+P4+P4* *P3P3* *P2P2* *G1G1* *+P4+P4* *P3P3* *P2P2* *P1P1* *C0C0n可以看出,这可以看出,这4 4组进位构造与前述组进位构造与前述4 4位先行进位逻辑完全一位先行进位逻辑完全一样,组间进位信号只与最低进位样,组间进位信号只与最低进

17、位C0C0有关,所以能同时产生。有关,所以能同时产生。多级先行进位续二多级先行进位续二n组内进位信号能同时产生、组间进位信号也能同时产组内进位信号能同时产生、组间进位信号也能同时产生,由此可以构成多级并行进位逻辑。生,由此可以构成多级并行进位逻辑。16位位2级先行级先行进位加法器如以下图所示。进位加法器如以下图所示。多级先行进位续三多级先行进位续三n问题是这问题是这4个组间进位信号如何用硬件来产生呢?个组间进位信号如何用硬件来产生呢?对于多级先行进位的实现可以按如下思绪来了解:对于多级先行进位的实现可以按如下思绪来了解:n先把单级先行进位加法器的串行进位链断开;先把单级先行进位加法器的串行进位

18、链断开;n添加一级先行进位链,这个新添加的先行进位链的添加一级先行进位链,这个新添加的先行进位链的进位称为二级进位;进位称为二级进位;n组间进位信号组间进位信号C4、C8、C12、C16由二级进位链由二级进位链来产生,其逻辑关系式曾经得到;来产生,其逻辑关系式曾经得到;n让一级进位链多产生两个辅助函数让一级进位链多产生两个辅助函数Gi*和和Pi*,并且,并且作为二级进位链的输入。作为二级进位链的输入。 多级先行进位续四多级先行进位续四16位位2级先行进位时间图级先行进位时间图 进位产生次序如下:进位产生次序如下:产生第一小组的产生第一小组的C1C1C3C3、一切、一切组进位产生函数组进位产生函

19、数GiGi* *和组进位和组进位传送函数传送函数PiPi* *,时间为,时间为2ty. 2ty. 由由CLACLA电路产生第二、三、四小电路产生第二、三、四小组的组间进位信号组的组间进位信号C4C4、C8C8、C12C12、C16C16,时间为,时间为2ty.2ty.产生第二、三、四小组的组内产生第二、三、四小组的组内进位信号进位信号C5C5、C6C6、C7C7、C9C9、C10C10、C11C11、C13C13、C14C14、C15C15,时间为时间为2ty. 2ty. 4 4、多功能算术逻辑部件、多功能算术逻辑部件ALUALUn前面引见了运算器的算术运算功能,为了完成多种算前面引见了运算器

20、的算术运算功能,为了完成多种算术逻辑运算,需求将加法器的功能进展扩展,扩展的术逻辑运算,需求将加法器的功能进展扩展,扩展的根本思想如下:根本思想如下:参与运算的两个数参与运算的两个数Ai、Bi和低位进位和低位进位Ci-1先不进展全加,先把两个输入先不进展全加,先把两个输入Ai、Bi和四个控制参数和四个控制参数S0、S1、S2、S3进展组合,构成函数进展组合,构成函数Xi和和Yi,然后再,然后再将将Xi、Yi和低位进位和低位进位Ci-1经过全加器经过全加器进展全加。这样一来,控制参数不同,进展全加。这样一来,控制参数不同,得到的组合函数也不同,从而实现多得到的组合函数也不同,从而实现多种算术和逻

21、辑运算。种算术和逻辑运算。 算术逻辑部件算术逻辑部件ALUn算术逻辑部件算术逻辑部件ALU大体上有三部分组成:大体上有三部分组成:n全加器全加器n进位链进位链n输入选择器输入选择器n下面以下面以ALU的一位逻辑为例,原理性地阐明的一位逻辑为例,原理性地阐明算术、逻辑功能是如何实现的。算术、逻辑功能是如何实现的。算术逻辑部件算术逻辑部件ALU续一续一l一位加法器由全加器和进位门构一位加法器由全加器和进位门构成,其中,两个半加器构成全加成,其中,两个半加器构成全加器、与或非门构成一位进位门。器、与或非门构成一位进位门。l一位输入选择器,由两个与或非一位输入选择器,由两个与或非门构成,可输入门构成,

22、可输入2个本位操作数个本位操作数或非、或非、4个控制信号个控制信号S3S0l一个控制门一个控制门M,选择算逻运算。,选择算逻运算。当当M=0时,开门接纳低位来的进时,开门接纳低位来的进位信号,执行算术运算;当位信号,执行算术运算;当M=1时,关门不接纳低位进位信号,时,关门不接纳低位进位信号,执行逻辑运算,与进位无关。执行逻辑运算,与进位无关。 算术逻辑部件算术逻辑部件ALU续二续二控制信号与选择器输出关系表:控制信号与选择器输出关系表:S3 S2 Xi S1 S0 Yi0 0 1 0 0 Ai0 1 Ai+Bi 0 1 AiBi1 0 Ai+Bi 1 0 AiBi1 1 Ai 1 1 0 进

23、位传送函数进位传送函数进位产生函数进位产生函数经过不同的输入选择,实现不同的功能,这进一步阐明:数据是在传经过不同的输入选择,实现不同的功能,这进一步阐明:数据是在传送过程实现运算、并得四处置的。多位送过程实现运算、并得四处置的。多位ALUALU的实现思绪完全一样。的实现思绪完全一样。5 5、运算器的组织、运算器的组织n运算器主要由算逻部件运算器主要由算逻部件ALU、存放器、多路转换、存放器、多路转换器、内部数据总线组成。器、内部数据总线组成。n在运算器内部,各功能模块之间的衔接大都采用在运算器内部,各功能模块之间的衔接大都采用总线构造,称为运算器的内部总线,总线构造,称为运算器的内部总线,A

24、LU和各存和各存放器都挂在上面。放器都挂在上面。n运算器大体上有如下三种构造:单总线构造、双运算器大体上有如下三种构造:单总线构造、双总线构造和三总线总线构造。总线构造和三总线总线构造。l操作数需求分两次送入操作数需求分两次送入ALU,而,而且需求两个缓冲存放器;完成一且需求两个缓冲存放器;完成一次运算需求次运算需求3步。特点是控制电路步。特点是控制电路简单,而速度较慢。简单,而速度较慢。 l两个操作数可以同时到达两个操作数可以同时到达ALU进展进展运算,且马上可以得到运算结果,运算,且马上可以得到运算结果,输出端需求设置一个缓冲存放器输出端需求设置一个缓冲存放器 ;完成一次运算需求完成一次运

25、算需求2步步 。l两条总线同时供应操作数,输出与两条总线同时供应操作数,输出与第三条总线相连;完成一次运算需第三条总线相连;完成一次运算需求求1步。特点是操作速度快,控制步。特点是操作速度快,控制相对复杂一些。相对复杂一些。 运算器的运算器的3种组织构造种组织构造二、定点加减运算二、定点加减运算 n原码加减运算原码加减运算n当原码做加减运算时,符号位不参与运算,当原码做加减运算时,符号位不参与运算,只在两数的绝对值之间进展。只在两数的绝对值之间进展。n加法时能够要做减法两数异号、减法加法时能够要做减法两数异号、减法时又能够做加法两数异号。时又能够做加法两数异号。n操作结果需求根据绝对值的大小来

26、确定运操作结果需求根据绝对值的大小来确定运算结果的符号。计算机中通常没有减法器,算结果的符号。计算机中通常没有减法器,减法运算需求转换为加法来实现。减法运算需求转换为加法来实现。n结论:原码加减运算过程比较复杂,普通结论:原码加减运算过程比较复杂,普通不用不用. .1 1、补码加减运算、补码加减运算 补码加减运算的根据如下:补码加减运算的根据如下:n和的补码等于补码的和和的补码等于补码的和 nX + Y补补 = X补补 + Y补补 n相反数的补码等于补码的相反数相反数的补码等于补码的相反数 n-X补补 = - X补补 n差的补码等于补码的差差的补码等于补码的差nX-Y补补 = X补补+ -Y补

27、补 = X补补- Y补补 补码的运算规那么:补码的运算规那么: 参与运算的操作数用补参与运算的操作数用补码表示。码表示。补码的符号位与数值位补码的符号位与数值位同时参与运算。同时参与运算。假设做加法,那么两数假设做加法,那么两数补码直接相加;补码直接相加;假设做减法,用被减数假设做减法,用被减数与减数的机器负数相加。与减数的机器负数相加。运算结果为和、差的补运算结果为和、差的补码。码。 注注: :机器负数等于机器负数等于补码连同符号位按位求补码连同符号位按位求反,末位加反,末位加1 1。补码加减例如补码加减例如例例1、A=0.1011, B=-0.1110,求,求A+B.解:解: A补补 =

28、0.1011, B补补 = 1.00100.1011+1.00101.1101 A+B补补 = 1.1101 A+B = -0.0011例例2、A=0.1011, B=-0.0010,求,求A-B.解:解: A补补 = 0.1011, B补补 = 1.1110, -B补补 = 0.0010 0.1011+ 0.0010 0.1101 A-B补补 = 0.1101 A-B = 0.11012 2、补码加减溢出的判别、补码加减溢出的判别例例3、X=1011,Y=111 求求X+Y。 例例4、X=-1011,Y=-111 求求X+Y。解:解:X补补=0,1011,Y补补=0,0111 解:解:X补补

29、=1,0101,Y补补=1,10010,1011 (+11) 1,0101 (-11)+0,0111 (+7) + 1,1001 (-7 )1,0010 0,1110 X+Y补补 =1,0010 X+Y补补=0,1110 X+Y=-1110 (-14) X+Y=+1110 (+14) 出错缘由在于用了出错缘由在于用了4个二进制位来表示绝对值为个二进制位来表示绝对值为18的和数。的和数。补码加减运算溢出补码加减运算溢出n当运算结果超出了机器所能表示的范围时,当运算结果超出了机器所能表示的范围时,数值位侵占了符号位,这种景象称为溢出。数值位侵占了符号位,这种景象称为溢出。两个同符号的数相加会产生溢

30、出。两个同符号的数相加会产生溢出。 n两个正数相加,结果大于机器所能表示的两个正数相加,结果大于机器所能表示的最大正数,称为上溢正溢。最大正数,称为上溢正溢。n两个负数相加,结果小于机器所能表示的两个负数相加,结果小于机器所能表示的最小负数,称为下溢负溢。最小负数,称为下溢负溢。补码加减溢出的判别方法补码加减溢出的判别方法 判别溢出的三种根本方法:判别溢出的三种根本方法: 采用一个符号位判别采用一个符号位判别 当参与运算的两个数的符号为当参与运算的两个数的符号为0、而和的符号位为、而和的符号位为1时上溢;时上溢;当参与运算的两个数的符号为当参与运算的两个数的符号为1、而和的符号位为、而和的符号

31、位为0时下溢。时下溢。 判别条件为:溢出判别条件为:溢出= XsYsSs+XsYsSs其中,其中,Xs、Ys为参与运算两数的符号,为参与运算两数的符号, Ss为结果符号位。为结果符号位。补码加减溢出的判别方法补码加减溢出的判别方法( (续续) ) 采用进位位判别采用进位位判别 两个正数相加,当最高有效位产生进位两个正数相加,当最高有效位产生进位C1=1而符而符号位不产生进位号位不产生进位Cs=0时,发生上溢;时,发生上溢;两个负数相加,当最高有效位不产生进位两个负数相加,当最高有效位不产生进位C1=0而而符号位产生进位,发生下溢。符号位产生进位,发生下溢。 判别条件为:溢出判别条件为:溢出=

32、CsC1+CsC1 = Cs C1 采用变形补码双符号位补码采用变形补码双符号位补码采用变形补码检测,当运算结果的两符号位不一致时采用变形补码检测,当运算结果的两符号位不一致时表示溢出。假设符号位用表示溢出。假设符号位用Ss1Ss2表示,那么表示,那么Ss1Ss2=01 结果上溢,结果上溢,Ss1Ss2=10 结果下溢结果下溢. 判别溢出的条件为:判别溢出的条件为: 溢出溢出=Ss1 Ss2SS1一直正一直正确确3 3、补码定点加减运算器的根本组成、补码定点加减运算器的根本组成 l补码加法:补码加法: 在在XF、YF、FX三个控制三个控制信号的控制下,翻开门信号的控制下,翻开门A、门、门B和门

33、和门C,把存,把存放器放器X和存放器和存放器Y的内的内容送入加法器的两个输容送入加法器的两个输入端进展加法运算,把入端进展加法运算,把结果送回存放器结果送回存放器X中中.l补码减法:与补码加法补码减法:与补码加法不同之处在于要用不同之处在于要用YF来替代来替代YF、并、并在在1F控制信号作用控制信号作用下使结果加下使结果加1,即可完,即可完成补码减法运算。成补码减法运算。三、带符号数的移位与舍入三、带符号数的移位与舍入 n移位是算术、逻辑运算的又一根本操作,而且几乎移位是算术、逻辑运算的又一根本操作,而且几乎一切机器的指令系统都设有移位指令。比如,乘法一切机器的指令系统都设有移位指令。比如,乘

34、法运算大多数是经过运算大多数是经过“累加累加移位来实现的。移位来实现的。n算术移位操作时,符号位不变,数值大小那么会发算术移位操作时,符号位不变,数值大小那么会发生变化。左移一位相当于乘以生变化。左移一位相当于乘以2,右移一位相当于,右移一位相当于除以除以2,由于移位使位权发生了变化。,由于移位使位权发生了变化。n在移位过程中,有效数位会被移出数据字而丧失。在移位过程中,有效数位会被移出数据字而丧失。因此,还需求思索数据的舍入问题,以尽能够提高因此,还需求思索数据的舍入问题,以尽能够提高数据的表示精度。数据的表示精度。1 1、移位规那么、移位规那么 n原码移位规那么原码移位规那么 n符号位不变

35、符号位不变 n空出位补空出位补0 n例如:例如:1X1X2X3Xnn 左移后为:左移后为:1X2X3Xn0n 右移后为:右移后为:10X1X2Xn-1n补码移位规那么补码移位规那么n符号位不变符号位不变 n左移时,空出位补左移时,空出位补0 n右移时,符号位补充空出右移时,符号位补充空出位位n例如:例如:1X1X2X3Xnn 左移后为:左移后为:1X2X3Xn0n 右移后为:右移后为:11X1X2Xn-1算术左移在不产生溢出时,算术左移在不产生溢出时,符号位坚持不变。符号位坚持不变。 我们用的微机运用补码我们用的微机运用补码来表示数据来表示数据. . 2 2、移位器逻辑电路、移位器逻辑电路 n

36、移位器是由与门和或门组成的逻辑电路实践是一个移位器是由与门和或门组成的逻辑电路实践是一个多路选择器,可以实现直传不移位、左斜一位多路选择器,可以实现直传不移位、左斜一位送左移一位和右斜一位送右移一位的功能。送左移一位和右斜一位送右移一位的功能。移位器逻辑电路如下图。移位器逻辑电路如下图。 左移由左移由2FL控制,控制,Fi-1Li直传由直传由FL来控制,来控制,FiLi 右移由右移由F/2L来控制,来控制,Fi+1Li移位器无数据存放才干。移位器无数据存放才干。3 3、舍入操作、舍入操作 n舍入操作有以下几种:舍入操作有以下几种:n截断法:无条件地舍去多余的位。截断法:无条件地舍去多余的位。n

37、恒置恒置1法:舍去多余位,保管部分最低位置法:舍去多余位,保管部分最低位置1。 n0舍舍1入法:舍去部分的最高位为入法:舍去部分的最高位为1时,那么保管部时,那么保管部分末位加分末位加1,与四舍五入法类似。,与四舍五入法类似。n截断法和恒置截断法和恒置1法误差比较大;法误差比较大;0舍舍1入法比较合理,入法比较合理,但当保管部分为但当保管部分为0.111时,会导致再次溢出。末时,会导致再次溢出。末位恒置位恒置1,在除法中非常有用。,在除法中非常有用。四、定点乘法运算四、定点乘法运算 乘法运算要比加法运算复杂。先举一个大家熟习的手工定点乘法乘法运算要比加法运算复杂。先举一个大家熟习的手工定点乘法

38、的例子;之后我们来看,假设将手工运算改为机器运算,会出现的例子;之后我们来看,假设将手工运算改为机器运算,会出现什么问题?该如何处理?什么问题?该如何处理?l 例:例:0.11010.1011 = ?l 0.1101l 0.1011l 1101l 1101l 0000l + 1101l 0.10001111 l手工计算的二进制乘法规那么:手工计算的二进制乘法规那么:l数值位:数值位: 00 = 0l 10 = 0 l 11 = 1,逻辑与。,逻辑与。l符号位:符号位: 同号相乘为正同号相乘为正l 异号相乘为负,逻辑异异号相乘为负,逻辑异或或l其结果:乘积其结果:乘积 = 符号位符号位 / 数值

39、位。数值位。 乘法:由手工计算到机器运算乘法:由手工计算到机器运算n由手工计算到机器运算,需求处理由手工计算到机器运算,需求处理3个问题:个问题:n符号如何处置?符号如何处置?n多个部分积如何相加?多个部分积如何相加?n为坚持两次部分积之间的位权对应关系,会导致加法器位数的添加,为坚持两次部分积之间的位权对应关系,会导致加法器位数的添加,能否在不添加位数的情况下坚持位权对应?能否在不添加位数的情况下坚持位权对应?n由于处理方式的不同,构成了两种主要的乘法器构造由于处理方式的不同,构成了两种主要的乘法器构造n采用常规的加法器来实现采用常规的加法器来实现n将将n位乘法转换为位乘法转换为n次累加和移

40、位,每次处置次累加和移位,每次处置1位。位。n为防止加法器位数的扩展,可以把手工计算时的新部分积为防止加法器位数的扩展,可以把手工计算时的新部分积“左移左移累加改为机器运算的原部分积累加改为机器运算的原部分积“累加累加右移。右移。n采用阵列乘法器实现采用阵列乘法器实现n利用中大规模集成电路把多项部分积同时相加,这种构造的乘法器利用中大规模集成电路把多项部分积同时相加,这种构造的乘法器称为阵列乘法器。称为阵列乘法器。 1 1、原码一位乘法、原码一位乘法 n原码一位乘法是从手算演化而来的,即用两个操作数的绝对值相原码一位乘法是从手算演化而来的,即用两个操作数的绝对值相乘,乘积的符号为两操作数符号的

41、异或值乘,乘积的符号为两操作数符号的异或值(同号为正,异号为负同号为正,异号为负).n乘积乘积 P = |X|Y|n符号符号 Ps = Xs Ysn原码一位乘法的规那么原码一位乘法的规那么 n被乘数和乘数取绝对值。被乘数和乘数取绝对值。 n乘数的最低位为乘数的最低位为1时,部分积加被乘数,否那么加时,部分积加被乘数,否那么加0。n部分积和乘数右移一位。部分积和乘数右移一位。n反复,直到乘数全部移出。反复,直到乘数全部移出。 n积的符号由两乘数符号的异或得到。积的符号由两乘数符号的异或得到。 n积的符号与积的数值拼接得到积的原码。积的符号与积的数值拼接得到积的原码。原码一位乘例如原码一位乘例如实

42、践运算的预备任务:实践运算的预备任务:|被乘数被乘数| B存放器存放器|乘数乘数| C存放器将要存放部分积的低位存放器将要存放部分积的低位0 A存放器将要存放部分积的高位存放器将要存放部分积的高位例例4:知:知:X=0.1101,Y=-0.1011,求:,求:XY。解:解: |X|=00.1101B 被乘数采用双符号位被乘数采用双符号位 |Y|=.1011C 乘数取数值乘数取数值 0A 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 部分积右移一位部分积

43、右移一位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 0.1 0 0 0 1 1 1 1 部分积右移一位部分积右移一位Ps =Xs Ys = 0 1 = 1 XY = -0.10001111 原码一位乘法的硬件实现原码一位乘法的硬件实现 nA、B为为n+2位,位,C为为n位,加法器位,

44、加法器为为n+2位,异或门。位,异或门。nA、C存放器级连在一同,具有右存放器级连在一同,具有右移功能。每次移位时,移功能。每次移位时,A的最低位的最低位进入进入C 的最高位,而的最高位,而C的最低位被的最低位被丢掉。最后,丢掉。最后,A的内容为乘积的高的内容为乘积的高位部分,位部分,C的内容为乘积的低位部的内容为乘积的低位部分。分。nC的最低位作为控制信号,控制运的最低位作为控制信号,控制运算器加被乘数还是加零。算器加被乘数还是加零。 2 2、补码一位乘法、补码一位乘法 n原码乘法虽然容易实现,但普通计算机中数据多以补码原码乘法虽然容易实现,但普通计算机中数据多以补码表示。假设仍用原码做乘法

45、,需求进展码制转换,反倒表示。假设仍用原码做乘法,需求进展码制转换,反倒不方便而且又影响速度。不方便而且又影响速度。n由于补码符号位直接参与运算,所以补码乘法不能简单由于补码符号位直接参与运算,所以补码乘法不能简单地套用原码乘法的算法。实现补码乘法有地套用原码乘法的算法。实现补码乘法有2 2种方法。种方法。n一种方法为校正法,运用较少,只给出算式:一种方法为校正法,运用较少,只给出算式:nXXYY补补=X=X补补(0.X1X2Xn)-X(0.X1X2Xn)-X补补Y Yn另一种更好的方法为比较法,该算法是英国人另一种更好的方法为比较法,该算法是英国人BoothBooth夫妇夫妇提出,所以也称为

46、提出,所以也称为BoothBooth法。该算法无需校正,控制较为法。该算法无需校正,控制较为简单。以下主要讨论比较法。简单。以下主要讨论比较法。Booth的推导的推导设:被乘数设:被乘数X补补=X.X1X2Xn,乘数,乘数Y补补=Y.Y1Y2Yn,那,那么:么:XY补补 = X补补0.Y1Y2Yn - X补补Y = X补补2-1Y1+2-2Y2+2-nYn- X补补Y = X补补-Y+2-1Y1 +2-2Y2+2-nYn = X补补-Y+(Y1-2-1Y1)+ (2-1Y2-2-2Y2)+(2-(n-1)Yn-2-nYn) = X补补(Y1-Y)+(Y2-Y1)2-1+(0-Yn)2-n =

47、X补补(Y1-Y)+(Y2-Y1)2-1+(Yn+1-Yn)2-n ;Yn+1=0上式阐明:上式阐明:XY补可以根据乘数相邻两项的比较结果,补可以根据乘数相邻两项的比较结果, 即用即用“低位低位-高位的值来确定每步的运算操作。高位的值来确定每步的运算操作。Booth法的递推公式法的递推公式从前面的推导中得出递推公式:从前面的推导中得出递推公式: Z0补补 = 0 Z1补补 = 2-1Z0补补+(yn+1-yn)X补补 Z2补补 = 2-1Z1补补+(yn-yn-1)X补补 Zn补补 = 2-1Zn-1补补+(y2-y1)X补补 XY补补= Zn补补+(y1-ys)X补补式中,式中,Z0补为初始

48、部分积,补为初始部分积, Z1补补Zn补为每次累加并右移之后补为每次累加并右移之后的部分积。的部分积。XY补补=X补补 (y1-y0)+(y2-y1) 2-1+(yn+1-yn) 2-n n12Booth乘法运算规律与规那么乘法运算规律与规那么n判别位判别位 YnYn+1 操操 作作n 0 0 原部分积右移一位原部分积右移一位n 0 1 原部分积加原部分积加X补后右移一位补后右移一位n 1 0 原部分积加原部分积加-X补后右移一位补后右移一位n 1 1 原部分积右移一位原部分积右移一位n参与运算的数用补码表示,结果也是补码;符号位直接参与运算。参与运算的数用补码表示,结果也是补码;符号位直接参

49、与运算。 n乘数最低位后面添加一位附加位乘数最低位后面添加一位附加位Yn+1Yn+1,初值为,初值为0 0。n乘数的最低两位乘数的最低两位YnYn+1YnYn+1的值决议每次执行的操作。的值决议每次执行的操作。 n部分积和乘数一同右移一位。部分积和乘数一同右移一位。 n共做共做n+1n+1次累加、次累加、n n次移位,最后累加不移位。次移位,最后累加不移位。n由于符号位参与运算,部分积累加时最高有效位的进位能够侵由于符号位参与运算,部分积累加时最高有效位的进位能够侵占符号位,所以被乘数和部分积应取双符号位,乘数只需取一个符占符号位,所以被乘数和部分积应取双符号位,乘数只需取一个符号位号位规律规

50、律规那规那么么补码一位乘例如补码一位乘例如例例5:知:知: X=-0.1101,Y=0.1011; 求:求: XY。解:解: X补补 = 11.0011B, Y补补= 0.1011C, -X补补= 00.1101 0A运算过程见下页:运算过程见下页:补码一位乘补码一位乘 A C 附加位附加位 阐明阐明0 0.0 0 0 0 0.1 0 1 1 0 +-X补补 0 0.1 1 0 1 C4C5=10,+-X补补0 0.1 1 0 1 0 0.0 1 1 0 1 0 1 0 1 1 部分积右移一部分积右移一位位+0 0 0.0 0 0 0 C4C5=11,+00 0.0 1 1 0 0 0.0 0

51、 1 1 0 1 0 1 0 1 部分积右移一位部分积右移一位+X补补 1 1.0 0 1 1 C4C5=01,+X补补1 1.0 1 1 0 1 1.1 0 1 1 0 0 1 0 1 0 部分积右移一位部分积右移一位+-X补补 0 0.1 1 0 1 C4C5=10,+-X补补0 0.1 0 0 0 0 0.0 1 0 0 0 0 0 1 0 1 部分积右移一位部分积右移一位+X补补 1 1.0 0 1 1 C4C5=01,+X补补1 1.0 1 1 1 XY补补=1.01110001 XY= -0.10001111补码一位乘法的硬件实现补码一位乘法的硬件实现nA、B、C为为n+2位,位,

52、加法器为加法器为n+2位。位。n与或门有与或门有n+2个。个。n各器件的作用与原码各器件的作用与原码一位乘法一样。控制一位乘法一样。控制方式上有所不同,即方式上有所不同,即由由C存放器的最低两存放器的最低两位来控制加、减被乘位来控制加、减被乘数或加数或加0操作。操作。 3 3、阵列乘法器、阵列乘法器 为了提高乘法运算速度,还可以采用高速阵列乘法器为了提高乘法运算速度,还可以采用高速阵列乘法器执行乘法运算。设有两个不带符号的二进制整数:执行乘法运算。设有两个不带符号的二进制整数: A、B两数的乘积两数的乘积P为:为: 假设,当假设,当m = n = 4时,来思索乘法的情况:时,来思索乘法的情况:

53、 101022njjjmiiibBaA10101022nmkkkjiminjjipbaBAP阵列乘法器原理阵列乘法器原理 a3 a2 a1 a0 b3 b2 b1 b0 a3b0 a2b0 a1b0 a0b0 a3b1 a2b1 a1b1 a0b1 a3b2 a2b2 a1b2 a0b2 + a3b3 a2b3 a1b3 a0b3 P7 p6 p5 p4 p3 p2 p1 p0阵列乘法器原理续一阵列乘法器原理续一n一个根本乘法单元由两部分组成:一个根本乘法单元由两部分组成:naibi是逻辑与运算,可用与门实现是逻辑与运算,可用与门实现n错位相加可用全加器完成错位相加可用全加器完成根本乘法单元原

54、理图根本乘法单元原理图阵列乘法器原理续二阵列乘法器原理续二由乘法单元构成的乘法器如下图,每个方框代表一个根本乘法单元由乘法单元构成的乘法器如下图,每个方框代表一个根本乘法单元.阵列乘法器原理三阵列乘法器原理三n构成构成n nn n整数阵列乘法器,共需求整数阵列乘法器,共需求n nn n个个乘法单元。乘法单元。n假设采用补码相乘时,可在上述乘法阵假设采用补码相乘时,可在上述乘法阵列外添加三个求补器,两个为算前求补列外添加三个求补器,两个为算前求补器,将两个操作数先变成正整数,一个器,将两个操作数先变成正整数,一个为算后求补器,在相乘两数符号不一致为算后求补器,在相乘两数符号不一致时,把运算结果变

55、成补码。时,把运算结果变成补码。五、定点除法运算五、定点除法运算 n大家很熟习除法运算。手工计算除法的关键是比较余大家很熟习除法运算。手工计算除法的关键是比较余数与除数的大小,根据比较结果断定商值。数与除数的大小,根据比较结果断定商值。n问题是,当将手工计算转换为机器运算时,如何判别问题是,当将手工计算转换为机器运算时,如何判别够减?如何处置符号位?如何提高运算速度?够减?如何处置符号位?如何提高运算速度?n除法运算是乘法运算的逆运算。乘法经过加除法运算是乘法运算的逆运算。乘法经过加- -右移实右移实现,不难想到机器除法运算是经过减现,不难想到机器除法运算是经过减- -左移实现的。左移实现的。

56、n机器实现除法运算有两个先决条件纯小数:机器实现除法运算有两个先决条件纯小数:n除数不等于除数不等于0 0,否那么商为无穷大。,否那么商为无穷大。 n被除数要小于除数,否那么商会溢出。被除数要小于除数,否那么商会溢出。1 1、原码恢复余数法、原码恢复余数法 n所谓恢复余数法,不论被除数或部分余数能否所谓恢复余数法,不论被除数或部分余数能否够减除数,都一概先做减法。假设部分余数为正,够减除数,都一概先做减法。假设部分余数为正,表示够减,该位商上表示够减,该位商上“1 1;假设部分余数为负,表;假设部分余数为负,表示不够减,该位商上示不够减,该位商上“0 0,并要恢复余数加除,并要恢复余数加除数。

57、数。n恢复余数法固有的缺陷恢复余数法固有的缺陷: :n由于部分余数的正、负是随机出现的,使得除法运由于部分余数的正、负是随机出现的,使得除法运算的实践操作次数不固定,控制电路较复杂。算的实践操作次数不固定,控制电路较复杂。n在恢复余数时,要多作一次加法,降低了除法的执在恢复余数时,要多作一次加法,降低了除法的执行的速度。行的速度。 2 2、原码不恢复余数法、原码不恢复余数法n分析恢复余数法发现,当减除数操作使得余数为负数时,分析恢复余数法发现,当减除数操作使得余数为负数时,商为商为“0,并恢复余数,然后左移,再减除数。,并恢复余数,然后左移,再减除数。 n假设用假设用R表示余数,用表示余数,用

58、B表示除数,上述操作过程可表示除数,上述操作过程可表示为:表示为:n R + B 2 B = 2R + B n结论:当余数为负时,商上结论:当余数为负时,商上“0,余数左移一次后加,余数左移一次后加除数,结果不变。这就是不恢复余数法的实现思想。除数,结果不变。这就是不恢复余数法的实现思想。n不恢复余数法加减交替法的运算规那么为:不恢复余数法加减交替法的运算规那么为: n假设余数假设余数0,上商,上商“1,余数左移一位,减除数。,余数左移一位,减除数。 n假设余数假设余数0,上商,上商“0,余数左移一位,加除数。,余数左移一位,加除数。 n由于加减运算交替地进展,所以又称为原码加减交替法。由于加

59、减运算交替地进展,所以又称为原码加减交替法。原码不恢复余数法例如原码不恢复余数法例如除法运算需求除法运算需求3个存放器:个存放器:A存放器存放被除数:存放器存放被除数: 被除数被除数 A B存放器存放除数:存放器存放除数: 除数除数 BC存放器存放商:存放器存放商: 商商 C例例6:知:知:X=-0.10101,Y=0.11110,求:,求:XY。解:解: |X|=00.10101A, 0C |Y|=00.11110B, -|Y|=11.00010原码不恢原码不恢复余数法复余数法A C 阐明阐明0 0.1 0 1 0 1 0.0 0 0 0 0 -|Y| 1 1.0 0 0 1 0 -|Y|1

60、 1.1 0 1 1 1 0.0 0 0 0 0 余数为负,商余数为负,商0 1 1.0 1 1 1 0 左移一位左移一位+|Y| 0 0.1 1 1 1 0 +|Y|0 0.0 1 1 0 0 0.0 0 0 0 1 余数为正,商余数为正,商1 0 0.1 1 0 0 0 左移一位左移一位 -|Y| 1 1.0 0 0 1 0 -|Y|1 1.1 1 0 1 0 0.0 0 0 1 0 余数为负,商余数为负,商0 1 1.1 0 1 0 0 左移一位左移一位 +|Y| 0 0.1 1 1 1 0 +|Y|0 0.1 0 0 1 0 0.0 0 1 0 1 余数为正,商余数为正,商1 0 1.

温馨提示

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

评论

0/150

提交评论