数值的机器运算

《数值的机器运算》由会员分享,可在线阅读,更多相关《数值的机器运算(79页珍藏版)》请在文档大全上搜索。
1、第第4 4章章 数值的机器运算数值的机器运算基本算数运算的实现基本算数运算的实现4.1定点加减运算定点加减运算4.2 带符号数的移位和舍入操作带符号数的移位和舍入操作4.3定点乘法运算定点乘法运算4.4定点除法运算定点除法运算4.5规格化浮点运算规格化浮点运算4.6十进制整数的加法运算十进制整数的加法运算4.7逻辑运算与实现逻辑运算与实现4.8运算器的基本组成运算器的基本组成4.94.1 4.1 基本算数运算的实现基本算数运算的实现4.1.1 4.1.1 加法器加法器加法器是由全加器再配以其他必要的逻辑电路组成的。加法器是由全加器再配以其他必要的逻辑电路组成的。1全加器全加器全加器(全加器(F
2、A)是最基本的加法单元,它有)是最基本的加法单元,它有3个输入量:操作数个输入量:操作数A和和B,低位传进来的进位低位传进来的进位C-1。两个输出量:本位和。两个输出量:本位和S,向高位的进位向高位的进位C。全加器的逻辑框图如图。全加器的逻辑框图如图4-1所示,其真值表如所示,其真值表如表表4-1所示。所示。根据真值表,可得到全加器的逻辑表达式:根据真值表,可得到全加器的逻辑表达式: Si=Ai Bi Ci-1 Ci=AiBi+(Ai Bi)Ci-1图4-1 全加器逻辑图框图表4-1全加器真值表2串行加法器与并行加法器串行加法器与并行加法器加法器有串行和并行之分。在串行加法器中,只有一个全加器
3、,数据逐位串加法器有串行和并行之分。在串行加法器中,只有一个全加器,数据逐位串行送入加法器进行运算;并行加法器则由多个全加器组成,其位数的多少取行送入加法器进行运算;并行加法器则由多个全加器组成,其位数的多少取决于机器的字长,数据的各位同时运算。决于机器的字长,数据的各位同时运算。串行加法器如图串行加法器如图4-2所示。图中所示。图中FA是全加器,是全加器,A、B是两个具有右移功能的寄是两个具有右移功能的寄存器,存器,C为进位触发器。由移位寄存器从低位到高位逐位串行提供操作数相为进位触发器。由移位寄存器从低位到高位逐位串行提供操作数相加。如果操作数长加。如果操作数长n位,加法就要分位,加法就要
4、分n次进行,每次产生一位和,并行地送回次进行,每次产生一位和,并行地送回A寄存器。进位触发器用来寄存进位信号,以便参与下一次的运算。寄存器。进位触发器用来寄存进位信号,以便参与下一次的运算。串行加法器具有器件少、成本低的优点,但运输速度太慢,所以除了某些低串行加法器具有器件少、成本低的优点,但运输速度太慢,所以除了某些低速的专用运算器外很少采用。速的专用运算器外很少采用。并行加法器可同时对数据的各位相加,但存在着一个加法的最长运算时间问并行加法器可同时对数据的各位相加,但存在着一个加法的最长运算时间问题。这是因为虽然操作数的各位是同时提供的,但运算所产生的进位会影响题。这是因为虽然操作数的各位
5、是同时提供的,但运算所产生的进位会影响高位的运算结果。例如:高位的运算结果。例如:11.11和和00.01相加,最低位运算所产生的进位相加,最低位运算所产生的进位将逐位影响至最高位,因此,并行加法器的最长运算时间主要是由进位信号将逐位影响至最高位,因此,并行加法器的最长运算时间主要是由进位信号的传递时间决定的而每个全加器本身的求和延迟只是次要因素,很明显,提的传递时间决定的而每个全加器本身的求和延迟只是次要因素,很明显,提高并行加法器速度的关键是尽量加快进位和传递的速度。高并行加法器速度的关键是尽量加快进位和传递的速度。图4-2 串行加法器4.1.2 4.1.2 进位的产生和传递进位的产生和传
6、递并行加法器中的每一个全加器都有一个从低位送进来的进位输入和一个并行加法器中的每一个全加器都有一个从低位送进来的进位输入和一个传送给高位的进位输出。通常将传递进位信号的逻辑线路连接起来构成传送给高位的进位输出。通常将传递进位信号的逻辑线路连接起来构成的进位网络称为进位链。每一位的进位表达为:的进位网络称为进位链。每一位的进位表达为: Ci=AiBi+(Ai Bi)Ci-1其中,其中,“AB”取决于本位参加运算的两个数,而与低进位无关,因此称取决于本位参加运算的两个数,而与低进位无关,因此称AB为进位产生函数为进位产生函数(本次进位产生本次进位产生),用,用G表示,其含义是:若本位的表示,其含义
7、是:若本位的两个输入均为两个输入均为1,必然要向高位产生进位。,必然要向高位产生进位。“(A+B)C-1”则不但与本则不但与本位的两个数有关,还依赖于低位送来的进位,因此称位的两个数有关,还依赖于低位送来的进位,因此称A +B为进位传递为进位传递函数(低位进位传递),用函数(低位进位传递),用P表示,其含义是:当两个输入中有一个为表示,其含义是:当两个输入中有一个为1,低位传来的进位的进位,低位传来的进位的进位C-1将向更高位传送,所以进位表达示又可以将向更高位传送,所以进位表达示又可以写成:写成: Ci=Gi+PiCi把把n个全加器串接起来,就可以进行两个个全加器串接起来,就可以进行两个n位
8、数的相加。这种加法器称为位数的相加。这种加法器称为穿行进位的并行加法器。穿行进位的并行加法器。4.1.3 4.1.3 并行加法器的快速进位并行加法器的快速进位2.分组并行进位方式分组并行进位方式实际上,通常采用分组并行进位方式。这种进位方式是把实际上,通常采用分组并行进位方式。这种进位方式是把n位字长分为位字长分为若干小组,在组内各位之间实行并行快递进位,在组间既可以采用串行若干小组,在组内各位之间实行并行快递进位,在组间既可以采用串行进位方式,也可以采用并快速进位方式,因此有两种情况。进位方式,也可以采用并快速进位方式,因此有两种情况。(1)单级先进位方式(组内并行、组间串行)单级先进位方式
9、(组内并行、组间串行)以以16位加法器为例,可分为四组,每组四位。第一小组组内的进位逻辑位加法器为例,可分为四组,每组四位。第一小组组内的进位逻辑函数函数C、C、C、C的表达式与前述相同,的表达式与前述相同,C1C4信号时同时产生的,信号时同时产生的,实现上述进位逻辑函数的电路称之为实现上述进位逻辑函数的电路称之为4位先行进位电路,其延迟时间是位先行进位电路,其延迟时间是2ty。 利用这种利用这种4位的位的CLA电路及进位产生电路及进位产生/传递电路和求和电路可以构成传递电路和求和电路可以构成4位位的的CLA加法器。用加法器。用4个这样的个这样的CLA加法器,很容易构成加法器,很容易构成16位
10、的单级先行位的单级先行进位加法器。进位加法器。(2)多级先行进位方式(组内并行、组间并行)多级先行进位方式(组内并行、组间并行)在单级先行进位电路中,进位的延迟时间是和组数成正比的,组数越多,在单级先行进位电路中,进位的延迟时间是和组数成正比的,组数越多,进位的延迟时间久越长,因此当加法器的字长较长(进位的延迟时间久越长,因此当加法器的字长较长(n=16)时,为了加)时,为了加快进位传递时间,就有必要采用多级先行进位方式。快进位传递时间,就有必要采用多级先行进位方式。4.2 4.2 定点加减运算定点加减运算4.2.1 4.2.1 原码加减运算原码加减运算4.2.2 4.2.2 补码加减运算补码
11、加减运算3.补码加减运算规则补码加减运算规则补码加减运算规则如下:补码加减运算规则如下: 参加运算的两个操作数均用补码表示。参加运算的两个操作数均用补码表示。 符号位作为数的一部分参加运算。符号位作为数的一部分参加运算。 若做加法,则两个直接相加,若做减法,则将被减数与若做加法,则两个直接相加,若做减法,则将被减数与减数的机器负数相加。减数的机器负数相加。 运算结果仍用补码表示。运算结果仍用补码表示。4.2.3 4.2.3 补码的溢出判断与检测方法补码的溢出判断与检测方法1.溢出的产生溢出的产生在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的在补码加减运算中,有时会遇到这样的情况