第4章-1 数值的机器运算

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

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

1、计算机组成原理,朱华贵 2015年9月21日,计算机组成原理,第4章 数值的机器运算,朱华贵 2015年9月21日,计算机组成原理,运算器是计算机进行算术运算和逻辑运算的主要部件,运算器的逻辑结构取决于机器的指令系统、数据表示方法和运算方法等。 本章主要讨论数值数据在计算机中实现算术运算和逻辑运算的方法,以及运算部件的基本结构和工作原理。,第4章 数值的机器运算,本章学习内容,4.1 基本算术运算的实现 4.2 定点加减运算 4.3 带符号数的移位和舍入操作 4.4 定点乘法运算 4.5 定点除法运算 4.6 规格化浮点运算 4.7 十进制整数的加法运算 4.8 逻辑运算与实现 4.9 运算器

2、的基本组成与实例,本章学习要求,掌握:定点补码加法和减法运算方法 理解:3种溢出检测方法 理解:补码移位运算和常见的舍入操作方法 了解:串行加法器与并行加法器 理解:进位产生和进位传递 掌握:定点原码、补码乘法运算方法 掌握:定点原码、补码加减交替除法运算方法 理解:浮点加减乘除运算 理解:逻辑运算 了解:运算器的基本结构及浮点协处理器,4.1 基本算术运算的实现,计算机中最基本的算术运算是加法运算,不论加、减、乘、除运算最终都可以归结为加法运算。所以在此讨论最基本的运算部件加法器,以及并行加法器的进位问题。,4.1.1 加法器,1.全加器 全加器(FA)是最基本的加法单元,它有三个输入量:操

3、作数Ai和Bi、低位传来的进位Ci-1;两个输出量:本位和Si、向高位的进位Ci。 图4-1 全加器的逻辑框图,全加器真值表,根据真值表,可得到全加器的逻辑表达式为: Si=AiBiCi-1 Ci=AiBi+(AiBi)Ci-1,全加器的逻辑表达式,2.串行加法器与并行加法器,加法器有串行和并行之分。在串行加法器中,只有一个全加器,数据逐位串行送入加法器进行运算;并行加法器则由多个全加器组成,其位数的多少取决于机器的字长,数据的各位同时运算。,串行加法器具有器件少、成本低的优点,但运算速度太慢,所以除去某些低速的专用运算器外很少采用。 并行加法器可同时对数据的各位相加,但存在着一个加法的最长运

4、算时间问题。这是因为虽然操作数的各位是同时提供的,但低位运算所产生的进位会影响高位的运算结果。例如:1111和0001相加,最低位产生的进位将逐位影响至最高位,因此,并行加法器的最长运算时间主要是由进位信号的传递时间决定的,而每个全加器本身的求和延迟只是次要因素。很明显,提高并行加法器速度的关键是尽量加快进位产生和传递的速度。,并行加法器中的每一个全加器都有一个从低位送来的进位输入和一个传送给高位的进位输出。 将传递进位信号的逻辑线路连接起来构成的进位网络称为进位链。 每一位的进位表达式为: Ci=AiBi+(AiBi)Ci-1 其中: Gi=AiBi为进位产生函数 Pi=AiBi为进位传递函

5、数 进位表达式Ci=Gi+PiCi-1,4.1.2 进位的产生和传递,图4-3 串行进位的并行加法器 其中:C1=G1+P1C0 C2=G2+P2C1 Cn=Gn+PnCn-1,串行进位的并行加法器,4.1.2 进位的产生和传递(续),串行进位的并行加法器的总延迟时间与字长成正比,字长越长,总延迟时间就越长。 假定,将一级“与门”、“或门”的延迟时间定为ty,从上述公式中可看出,每一级全加器的进位延迟时间为2ty。在字长为n位的情况下,若不考虑Gi、Pi的形成时间,从C0Cn的最长延迟时间为2nty(设C0为加法器最低位的进位输入,Cn为加法器最高位的进位输出)。,1.并行进位方式 并行进位又

6、叫先行进位、同时进位,其特点是各级进位信号同时形成。 C1=G1+PC0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1 +P4P3P2P1C0 ,4.1.3 并行加法器的快速进位,这种进位方式是快速的,若不考虑Gi、Pi的形成时间,从C0Cn的最长延迟时间仅为2ty,而与字长无关。但是随着加法器位数的增加,Ci的逻辑表达式会变得越来越长,输入变量会越来越多,这会使电路结构变得很复杂,所以完全采用并行进位是不现实的。,单级先行进位方式(组内并行、组间串

7、行) 以16位加法器为例,可分为4组,每组4位。第一小组组内的进位逻辑函数C1、C2、C3、C4的表达式与前述相同,它们是同时产生的,实现上述进位逻辑函数的电路称之为4位先行进位电路CLA,其延迟时间是2ty。 利用这种4位的CLA电路以及进位产生/传递电路和求和电路可以构成4位的CLA加法器。用4个这样的CLA加法器,很容易构成16位的单级先行进位加法器。,2.分组并行进位方式,16位单级先行进位加法器,图4-4 16位单级先行进位加法器,16位单级先行进位时间图,图4-5 16位单级先行进位时间图,多级先行进位方式(组内并行、组间并行) 仍以字长为16位的加法器作为例子,分析两级先行进位加

8、法器的设计方法。第一小组的进位输出C4可以变成两个与项相或: C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 =G1*+P1*C0 其中:G1*=G4+P4G3+P4P3G2+P4P3P2G1 P1*=P4P3P2P1 Gi*称为组进位产生函数 Pi*称为组进位传递函数,2.分组并行进位方式(续),依次类推,可以得到: C8=G2*+P2*C4=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,成组

9、先行进位电路BCLA,其延迟时间是2ty。利用这种4位的BCLA电路以及进位产生/传递电路和求和电路可以构成4位的BCLA加法器。16位的两级先行进位加法器可由4个BCLA加法器和1个CLA电路组成。,2.分组并行进位方式(续),图4-6 16位两级先行进位加法器,若不考虑Gi、Pi的形成时间,C0经过2ty产生第一小组的C1、C2、C3及所有组进位产生函数Gi*和组进位传递函数Pi*;再经过2ty,由CLA电路产生C4、C8、C12、C16;再经过2ty后,才能产生第二、三、四小组内的C5C7、C9C11、C13C15。此时加法器的最长进位延迟时间是6ty。,2.分组并行进位方式(续),图4

10、-7 16位两级先行进位时间图,定点数的加减运算包括原码、补码和反码3种带符号数的加减运算,其中补码加减运算实现起来最方便。,4.2 定点加减运算,原码加减运算规则: 参加运算的操作数取其绝对值; 若做加法,则两数直接相加,若做减法,则将减数先变一次补,再进行加法运算; 运算之后,可能有两种情况: 有进位,结果为正,即得到正确的结果。 无进位,结果为负,则应再变一次补,才能得到正确的结果。 结果加上符号位。 通常,把运算之前的变补称为前变补,运算之后的变补称为后变补。,4.2.1 原码加减运算,4.2.2 补码加减运算,1.补码加法 两个补码表示的数相加,符号位参加运算,且两数和的补码等于两数

11、补码之和,即: X+Y补=X补+Y补,根据补码加法公式可推出: X-Y补=X+(-Y)补=X补+-Y补 从补码减法公式可以看出,只要求得-Y补,就可以变减法为加法。不管Y的真值为正或为负,已知Y补求-Y补的方法是:将Y补连同符号位一起求反,末尾加“1” 。-Y补被称为Y补的机器负数,由Y补求-Y补的过程称为对Y补变补(求补),表示为 -Y补=Y补变补,2.补码减法,2.补码减法(续),“某数的补码表示”与“变补”是两个不同的概念。一个负数由原码转换成补码时,符号位是不变的,仅对数值位各位变反,末位加“1”。而变补则不论这个数的真值是正是负,一律连同符号位一起变反,末位加“1”。Y补表示的真值如

12、果是正数,则变补后-Y补所表示的真值变为负数,反之亦然。 例1:Y=-0.0110, Y原=1.0110, Y补=1.1010, -Y补=0.0110 例2:Y=0.0110, Y原=0.0110, Y补=0.0110, -Y补=1.1010,参加运算的两个操作数均用补码表示; 符号位作为数的一部分参加运算; 若做加法,则两数直接相加;若做减法,则将被减数与减数的机器负数相加; 运算结果仍用补码表示。,3.补码加减运算规则,例3:A=0.1011,B=-0.1110,求A+B A补=0.1011 B补=1.0010 0.1011 A补 + 1.0010 B补 1.1101 A+B补 A+B补=

13、1.1101 A+B=-0.0011,例4:A=0.1011,B=-0.0010,求A-B A补=0.1011 B补=1.1110 -B补=0.0010 0.1011 A补 + 0.0010 -B补 0.1101 A-B补 A-B补=0.1101 A-B=0.1101,补码减法示例,在计算机算术运算中,有时必须将采用给定位数表示的数转换成具有更多位数的某种表示形式,这被称为“符号扩展”。 实际上补码的符号扩展非常简单,所有附加位均用符号位填充,即正数用0进行填充,负数用1填充。,4.符号扩展,4.2.3 补码的溢出判断与检测方法,1.溢出的产生 在补码运算中,若两个正数相加,而结果为负;两个负

14、数相加,而结果为正,则结果出错。 例5:设:X=1011B=11D,Y=111B=7D 则 X补=0,1011,Y补=0,0111 0,1 0 1 1 X补 + 0,0 1 1 1 Y补 1,0 0 1 0 X+Y补 X+Y补=1,0010 X+Y=-1110B=-14D 两正数相加结果为-14D,显然是错误的。,1.溢出的产生(续),例6:设:X=-1011B=-11D,Y=-111B=-7D 则 X补=1,0101 Y补=1,1001 1,0 1 0 1 X补 + 1,1 0 0 1 Y补 0,1 1 1 0 X+Y补 X+Y补=0,1110 X+Y=1110B=14D 两负数相加结果为1

15、4D,显然也是错误的。,1.溢出的产生(续),字长为n+1位的定点整数(其中一位为符号位),采用补码表示,当运算结果大于2n-1或小于-2n时,就产生溢出。 设参加运算的两数为X、Y,做加法运算。 若X、Y异号,实际上是做两数相减,所以不会溢出。 若X、Y同号,运算结果为正且大于所能表示的最大正数或运算结果为负且小于所能表示的最小负数(绝对值最大的负数)时,产生溢出。 将两正数相加产生的溢出称为正溢;反之,两负数相加产生的溢出称为负溢。,2.溢出检测方法,设:被操作数为: X补=Xs,X1X2Xn 操作数为: Y补=Ys,Y1Y2Yn 其和(差)为:S补=Ss,S1S2Sn 采用一个符号位 采用一个符号位检测溢出时,当Xs=Ys=0,Ss=1时,产生正溢;当Xs=Ys=1,Ss=0时,产生负溢。 溢出判断条件为 溢出= Ss+ Xs Ys,2.溢出检测方法(续),采用进位位判断 两数运算时,产生的进位为 Cs,C1C2Cn, 其中:Cs为符号位产生的进位,C1为最高数值位产生的进位。 两正数相加,当最高有效位产生进位(C1=1)而符号位不产生进位(Cs=0)时,发生正溢;两负数相加,当最高有效位不产生进位(C1=0)而符号位产生进位(Cs=1)时,发生负溢。故溢出条件为 溢出= C1+Cs =CsC1,2.溢出检测方法(续),采用变形补码(双符号位补码) 在双符号位的情

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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