《运算方法和运算器》PPT课件.ppt
《《运算方法和运算器》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《运算方法和运算器》PPT课件.ppt(106页珍藏版)》请在三一办公上搜索。
1、第五章 运算方法和运算器,本章着重讨论两个大问题:运算方法:即计算机中数值数据的运算规则 加减法(定点,浮点)(补码为重点)移位运算 乘除法(定点,浮点)(难点)逻辑运算运算器的基本结构和工作原理:着重讨论运算规则的具体物理实现(难点),规则,第五章 运算方法和运算器,5.1 定点加减运算 原码加减法原码加减运算规则(P94):要考虑符号和数值两部分同号相加和异号相减:数值部分相加,结果的符号取被加(减)数符号;异号相加和同号相减:数值部分相减,结果的符号取绝对值大的数的符号,但数值部分相减,要将减数变补,变为加法进行。对于定点机,两数同号相加和异号相减,结果可能溢出,须作溢出判断。一般机器溢
2、出后,提示溢出信息,然后停机。原码一般不用来做加减运算,而多用来做乘除运算,做加减运算时,多用补码。,第五章 运算方法和运算器,5.1 定点加减运算 补码加减法运算(重点)引入补码后,不仅减法能变成加法,而且符号位能同数值位一样参与加运算,这样可以大大简化运算器的结构。1、补码加减运算规则 参加运算的两个操作数均用补码表示;符号位作为数的一部分参加运算;若做加法,则两数直接相加;XY补=X补Y补 若做减法,则将被减数与减数的机器负数相加;XY补=X补Y补(mod 2,一位符号位))运算结果用补码表示。,第五章 运算方法和运算器,2.变补的概念:对所有二进制位(包括符号位)均取反,然后在末尾在加
3、1已知Y补,求Y补=Y补变补的方法是:对Y补,包括符号位在内,各位取反,末位加1。-Y补被称为Y补的机器负数,由Y补求-Y补的过程称为对Y补变补(求补),补码:一个负数由原码表示转换成补码表示时 符号位是不变的,仅对数值位的各位变反,末尾加“1”。变补:则不论这个数的真值是正是负,一律连同符号位一起变反,末尾加1。Y补表示的真值如果是正数,则变补后-Y补所表示真值变为负数,反之亦然。例如:Y补=1.01101 Y补=0.10011 3、溢出判断一般用双符号位进行判断:符号位00,表示正数,符号位11,表示负数结果的符号位为01时,称为上溢;结果的符号位为10时,称为下溢,第五章 运算方法和运算
4、器,例1:X=0.0101 Y=-0.1001 求XY=?解:X补=00.0101 Y补=11.0111-Y补=00.1001,两符号位相同,无溢出,X+Y补 11.1100,X-Y补 00.1110,X+Y=-0.0100,X-Y=+0.1110,第五章 运算方法和运算器,例2:X=0.1011 Y=0.1001 求XY=?解:X补=00.1011 Y补=00.1001-Y补=11.0111,两符号位相异,正溢出第一符号位为正确符号,X+Y补 01.0100,X-Y补 100.0010,X+Y=溢出,X-Y=+0.0010,两符号位相同,无溢出,第五章 运算方法和运算器,例3:X=-0.10
5、11 Y=-0.1001 求XY=?解:X补=11.0101 Y补=11.0111-Y补=00.1001,两符号位相异,负溢出第一符号位为正确符号,X+Y补 110.1100,X-Y补 11.1110,X+Y=溢出,X-Y=-0.0010,两符号位相同,无溢出,第五章 运算方法和运算器,总结:1.用模4补码进行加法运算,结果的两符号位 相异时,表示溢出;01正溢出、10 负溢出;相同时,表示不溢出2.模4补码相加的结果,不论溢出与否,第一符号位始终指示正确的符号建议:以模4补码做习题!,第五章 运算方法和运算器,练习:求XY=?1.X=0.1001 Y=-0.1100 X+Y=-0.0011
6、X-Y 溢出2.X=-0.0110 Y=0.1101 X+Y=0.0111 X-Y 溢出3.X=-0.1010 Y=-0.1001 X+Y 溢出 X-Y=-0.0001,第五章 运算方法和运算器,三、反码加减法运算 1、反码加减运算规则 参加运算的两个操作数均用反码表示;符号位作为数的一部分参加运算;若做加法,则两数直接相加;X反+Y反=X+Y反 若做减法,则将被减数与连同符号位一起变反后的减数相加;X反+-Y反=X-Y反 运算时如果符号位产生进位,则在末位加1,成为循环进位;运算结果用补码表示。对于补码:,X+Y补 100.1011,第五章 运算方法和运算器,三、反码加减法运算 2、说明:反
7、码加法,规则同补码加法,但若符号位有进位,需将此进位加到末位循环进位 由Y反如何求-Y反?对Y反,包括符号位,各位求反。,第五章 运算方法和运算器,例1:X=0.1101 Y=-0.0010 用反码规则求XY=?解:X反00.1101 Y反11.1101-Y反00.0010,X+Y反 100.1010,X-Y反 00.1111,X+Y=0.1011,X-Y=0.1111,第五章 运算方法和运算器,例2:X=0.1011 Y=-0.0101 用反码规则求XY=?解:X反00.1011 Y反11.1010-Y反00.0101,X+Y反 100.0101,X-Y反 01.0000,X+Y=0.011
8、0,X-Y=溢出,第五章 运算方法和运算器,练习:1、X=-0.1100 Y=-0.0010 用反码规则求XY=?解:X反11.0011 Y反11.1101-Y反00.0010,X-Y反 11.0101,X+Y=-0.1110,X-Y=-0.1010,X+Y反 111.0000,第五章 运算方法和运算器,练习:2、X=-0.1101 Y=0.0110 用反码规则求XY=?解:X反11.0010 Y反00.0110-Y反11.1001,X-Y反 110.1011,X+Y=-0.0111,X-Y=溢出,X+Y反 11.1000,第五章 运算方法和运算器,5.2 补码的溢出判断与检测方法1.溢出的产
9、生 在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为1(结果为负);两个负数相加,而结果的符号位却为0(结果为正)。,例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,显然是错误的。,第五章 运算方法和运算器,5.2 补码的溢出判断与检测方法1.溢出的产生 在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为1(结果为负);两个负数相加,而结果的符号
10、位却为0(结果为正)。,例2:设:X=-1011B=-11D,Y=-111B=-7D 则:X补=1,0101 Y补=1,1001 有:1,0 1 0 1+1,1 0 0 1 0,1 1 1 0 得出结果:X+Y补=0,1110,X+Y=1110B=14D 两负数相加结果为14D,显然也是错误的。,原因:在于两数相加之和的数值已超过了机器允许的表示范围。字长为n+1位的定点整数(其中一位为符号位),采用补码表示:当运算结果大于2n-1 或小于-2n时,就产生溢出。设参加运算的两数为X、Y,做加法运算。若X、Y异号,不会溢出。若X、Y同号,运算结果为正且大于所能表示的最大正数或运算结果为负且小于所
11、能表示的最小负数(绝对值最大的负数)时,产生溢出。溢出分为2种:正溢和负溢。,第五章 运算方法和运算器,5.2 补码的溢出判断与检测方法1.溢出的产生 在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为1(结果为负);两个负数相加,而结果的符号位却为0(结果为正)。,第五章 运算方法和运算器,5.2 补码的溢出判断与检测方法 2.溢出检测方法 采用一个符号位判断采用一个符号位加法运算时检测溢出的方法:两正数相加,结果为负表明产生正溢;即当Xs=Ys=0,Ss=1时,产生正溢。两负数相加,结果为正表明产生负溢。即当Xs=Ys=1,Ss=0时,产生负溢。因此可得出加法运算时溢
12、出的判断条件为:溢出=XsYsSs+XsYsSs采用一个符号位减法运算时检测溢出的方法:两数相减,只有X,Y异号时才可能溢出;因此可得出减法运算时溢出的判断条件为:溢出=XsYsSs+XsYsSs,第五章 运算方法和运算器,5.2 补码的溢出判断与检测方法 2.溢出检测方法 采用进位位判断两正数相加,当最高有效位产生进位(C1=1)而符号位不产生进位(Cs=0)时,发生正溢;两负数相加,当最高有效位没有进位(C1=0)而符号位产生进位(Cs=1)时,发生负溢。溢出的判断条件为:溢出=CsC1+CsC1=CsC1,例1:设:X=1011B=11D,Y=111B=7D 则:X补=0,1011,Y补
13、=0,0111 有:0,1 0 1 1+0,0 1 1 1 1,0 0 1 0,C1=1,Cs=0,例2:设:X=-1011B=-11D,Y=-111B=-7D 则:X补=1,0101 Y补=1,1001 有:1,0 1 0 1+1,1 0 0 1 0,1 1 1 0,C1=0,Cs=1,第五章 运算方法和运算器,5.2 补码的溢出判断与检测方法 2.溢出检测方法 采用变形补码(双符号位补码)判断变形补码定义:小数“变形补码”的定义为:X补=整数“变形补码”的定义为:X补=(设字长为:n+1位)变形补码的性质:当-1X1时,数X的“模4补码”的两个符号位相同,00表示正号,11 表示负号,其数
14、值位与补码相同。当符号位为01或10时,表示数值溢出:为01时表示两正数之和大于等于1的情况,称为数值“上溢”;为10 时表示两负数之和小于-1的情况,称为数值“下溢”。“模4补码”表示中,0有唯一的补码:00,000000,第五章 运算方法和运算器,5.2 补码的溢出判断与检测方法 2.溢出检测方法 采用变形补码(双符号位补码)判断双符号位的含义如下:Ss1Ss2=00 结果为正数,无溢出 Ss1Ss2=11 结果为负数,无溢出 Ss1Ss2=01 结果正溢 Ss1Ss2=10 结果负溢 例如:字长为5位,数的表示范围为-1615,采用变形补码(双符号位)运算,则有:练习:11D+5D-11
15、D+(-5D),11+7=18(正溢)0 0,1 0 1 1+0 0,0 1 1 1 0 1,0 0 1 0,-11+(-7)=-18(负溢)1 1,0 1 0 1+1 1,1 0 0 1 1 0,1 1 1 0,溢出的判断条件为:溢出=Ss1Ss2,第五章 运算方法和运算器,5.3 移位运算和舍入操作带符号数的移位操作 意义移位运算是计算机中最基本、最常见的运算操作之一,任何计算机都含有移位指令。逻辑移位:逻辑移位的对象是没有数值含义的一组二进制代码,因此移位时不必考虑符号问题,左移、右移空位都补0。算术移位:寄存器中带符号数的移位,移位时,符号位保持不变,仅数量变化。计算机中的字长固定,左
16、、右移时,出现空位怎么办?左移:x=2x 右移:x=,下面仅讨论算术移位,第五章运算方法和运算器,2.算术移位规则前提:移位后,符号位保持不变 正数正数的符号位为0,且x原=x反=x补(x 0)故进行算术移位时,出现的空位均添补0。正数:左移、右移都补0 x原=0.1001 2x原=0.0010 x反=0.0011 1/2x反=0.0001 x补=0.1001 2x补=0.0010,第五章 运算方法和运算器,负数原码除符号位外,原码的数值部分与真值相同,故移位后都补0。x原=1.0111 2x原=1.1110 1/2x原=1.0011反码除符号位外,反码的数值部分与原码相反,故移位后都补1x反
17、=1.0111 2x反=1.1111 1/2x反=1.1011,第五章运算方法和运算器,补码x补=1.1001 x原=1.0111 x反=1.1000 x补=1.0111000 x原=1.1001000 x反=1.0110111x补=1.1100010 x原=1.0011110 x反=1.1100001分析发现:补码由低位向高位出现第一个“1”的左边各位与反码同,从“1”开始的右边各位与原码同。补码规则(负数):左移:补0,同原码 右移:补1,同反码,注意:左移时,当数值最高位为:原码(1)、反码和补码(0)时,结果溢出;右移时,当数值最低位为:原码(1)和补码(1)、反码(0)时,结果不会溢
18、出,但是数值变小;,第五章运算方法和运算器,移位功能的实现,注意:上图为第i位的一位逻辑电路左移时,相当于乘以2,控制信号2FL有效右移时,相当于除以2,控制信号2/FL有效不移位时,控制信号FL有效,第五章 运算方法和运算器,、带符号数的舍入操作在算术移位时,由于硬件的限制,会失去一定的位数,造成一些误差,为减小误差,就要进行舍入操作。恒舍(切断):保留p位 多余q位全部舍去冯诺依曼舍入法(末位恒置1)0舍1入法ROM舍入法(查表法,P104),第五章 运算方法和运算器,5.4 基本运算的实现 一、加法器 计算机中最基本的运算部件是加法器。通常,加法器再配以其他必要的逻辑电路就可以进行计算机
19、中的一些基本运算。1.全加器三个输入量:操作数Ai和Bi、低位传来的进 位Ci-1,两个输出量:本位和Si、向高位的进位Ci。,全加器的逻辑表达式为:Si=AiBiCi-1 Ci=AiBi+(AiBi)Ci-1,第五章 运算方法和运算器,5.4 基本运算的实现 一、加法器 2.串行加法器在串行加法器中,只有一个全加器,数据逐位串行送加法器进行运算。如果操作数长n 位,加法就要分n次进行,每次只能产生一位和。串行运算器特点:所用元器件少(一位全加器),但速度极低,因此,现在用的不多,现在广泛使用的是并行运算器。,第五章 运算方法和运算器,5.4 基本运算的实现 一、加法器 3.并行加法器其位数的
20、多少取决于机器的字长,数据的各位同时运算。并行加法器特点:虽然操作数的各位是同时提供的,但低位运算所产生的进位有可能会影响高位的运算结果。也可以说并行加法器的最长运算时间主要是由进位信号的传递时间决定的。提高并行加法器速度的关键是尽量加快进位产生和传递的速度。,补码加减运算器如下图,第五章 运算方法和运算器,5.4 基本运算的实现 二、并行加法器进位的产生和传递并行加法器的位数:取决于机器的字长,和操作数的位数相同;并行加法器的速度:并行加法器的最长运算时间主要是由进位信号的传递时间决定的。提高并行加法器速度的关键是尽量加快进位产生和传递的速度。进位链:各级进位间存在一个由低位向高位的传递关系
21、,这种进位信号的传递结构进位链。(各级进位信号,逐级串联成一条链)1).全加器的函数表达式 Si=Ai Bi Ci-1 Ci=AiBi+(Ai+Bi)Ci-1=Gi+PiCi-1,第五章 运算方法和运算器,Ci=AiBi+(Ai+Bi)Ci1=Gi+PiCi-1 Gi=AiBi 名称:进位产生函数、本地进位、绝对进位含义:只有本位两输入全1时,才产生向高位的进位。(进位仅与本位有关,与低位无关)Pi=Ai+Bi 名称:进位传送函数、传送条件、跳跃条件含义:只要本位两输入有一个为1时,低位来的进位就能传送到高位。,第五章 运算方法和运算器,2).进位信号的传送进位链串行进位链(行波进位链)进位逐
22、级形成,每一级的进位直接依赖于前一级的进位 C1=A1B1+(A1+B1)C0 C2=A2B2+(A2+B2)C1 C2要等C1形成后才能产生 Cn=AnBn+(An+Bn)Cn-1 Cn要等Cn-1形成后才能产生,第五章 运算方法和运算器,串行进位并行加法器的特点:电路较节省,但严重影响着加法器的速度;进位时间:Ci=AiBi+(Ai+Bi)Ci-1=Gi+Pi Ci-1若全部用与门和或门来构造加法器,每级门延迟为1ty,n位字长,不考虑Gi、Pi的形成时间,由C0产生后到Cn产生共需2nty.为什么?因为每一级加法器的进位延迟时间是2ty改进:1)减少门的级数 2)采用高速进位元件,第五章
23、 运算方法和运算器,并行进位链(理想进位链。)Gi=AiBi Pi=Ai+Bi C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 上述各式中所有各位的进位均不依赖于低位的进位,各位的进位可以同时产生。,第五章 运算方法和运算器,用与门和或门实现的并行进位链(CLA)电路。每级门延迟1ty,从C0Cn的最长延迟时间共需2ty。,第五章 运算方法和运算器,C0、G、P 形成后,最多只有两级门的延迟即可形成Cn,是速
24、度最快的一种进位链。n位字长,Cn产生共需2ty.但此方案Cn的逻辑表达式会变得越来越长,这使得电路结构变得很复杂,完全采用并行进位是不现实的,故称为理想的进位链。优点:速度快(各级进位信号几乎同时产生)缺点:位数增多,扇入系数太大,无法完全实现。,第五章 运算方法和运算器,分组并行进位方式单级先行进位方式:将n位加法分组,组内用并行进位链,组间用串行进位链。(组内并行,组间串行)例如:利用4位先行进位电路和求和电路可以构成4位的先行进位加法器。则16位加法器,可分4组,4位/组就可用4个4位的先行进位加法器构成。如图:P103图5-6,组内:并行进位,组间:串行进位特点:这种方案,速度高,但
25、线路相对串行进位复 杂,成本高。,第五章 运算方法和运算器,分组并行进位方式多级先行进位方式:(组内并行,组间并行)首先对第一组的最高进位位C4有:C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0=G*1+P*1C0 同理:(P104)对第二组,第三组,第四组的最高进位位C8、C12、C16有:C8=G2*+P2*C4=G2*+P2*G1*+P2*P1*C0C12=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,第五章 运算方法和运算器,G*i、T*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算方法和运算器 运算 方法 运算器 PPT 课件
链接地址:https://www.31ppt.com/p-5611052.html