四章数据的机器运算.ppt
《四章数据的机器运算.ppt》由会员分享,可在线阅读,更多相关《四章数据的机器运算.ppt(95页珍藏版)》请在三一办公上搜索。
1、1,第四章 数据的机器运算,计算机的主要功能是对数据进行各种加工和处理,包括加、减、乘、除这些基本的算术运算,与、或、非这些基本的逻辑运算,以及由此构成的其它复杂的运算。运算器则是实现这些运算的主要部件。无论多么复杂的运算,最终都要分解为加法运算来实现。其中,减法运算通过补码转化为加法来实现;乘、除运算可以转换为加减运算、移位操作来实现。加法和移位是计算机中最基本的两种运算操作。可见,加法器又是运算器的核心部件。在加法器的基础上增加移位功能,并通过选择输入控制条件,就可以实现所有的运算。,2,本章主要内容,主要内容算术、逻辑运算的实现定点加、减运算数的移位和舍入操作定点乘、除运算规格化浮点运算
2、,3,一、算术逻辑运算的实现,计算机中最基本的算术运算是加法运算,不论加、减、乘、除运算最终都可以归结为加法运算。所以首先讨论最基本、最核心的运算部件加法器,以及并行加法器的进位问题。加法器是由全加器和其它必要的逻辑电路组成的,所以我们从全加器开始讨论。,4,1、全加器(FA),全加器(FA)是最基本的运算单元,由它构成加法器。全加器有三个输入量:操作数Ai、Bi、以及低位传来的进位信号Ci-1。全加器有两个输出量:本位和Si、以及向高位的进位信号Ci。,5,全加器的逻辑方程和电路,根据真值表得:Si=AiBiCi-1 Ci=AiBi+(AiBi)Ci-1 Si:本位和 Ci:向高位的进位,实
3、现电路,逻辑框图,一个全加器只完成一位加法,6,全加器构成加法器,全加器并不存储信息,可用门电路来实现。用全加器能够方便地构成加法器。加法器分为串行加法器和并行加法器。串行加法器只有一个全加器,数据逐位串行送入加法器进行计算。由于运算速度慢,一般不用。并行加法器则由若干个这样的全加器构成,各位数据同时运算。并行加法器的位数与操作数的位数相等。并行加法器的最长运算时间主要取决于进位信号的传递时间。例如:1111和0001相加,最低位产生的进位将逐位影响到最高位.由此可见,提高并行加法器速度的关键是尽量加快进位产生和传递的速度。,7,2、进位产生与传递,进位链的概念:并行加法器中的每一个全加器都有
4、一个从低位送来的进位输入和一个传送给高位的进位输出。我们把构成进位信号产生和传递的逻辑网络称为进位链。进位链上每一位的进位表达式为:Ci=AiBi+(AiBi)Ci-1 设Gi=AiBi,称为进位产生函数Pi=AiBi,称为进位传递函数 进位表达式 Ci=Gi+PiCi-1,8,串行进位,把n个全加器串联起来,就可以实现两个n位数的相加。这种加法器称为串行进位的并行加法器,串行进位又叫行波进位。,其中:C1=G1+P1C0 C2=G2+P2C1 Cn=Gn+PnCn-1,串行进位的并行加法器,总的延迟时间正比于字长,字长越长,总延迟时间也越长。若一位进位需2ty时间,完成n位进位就需要2nty
5、.要提高加法运算速度,必须改进进位方式。,9,3、并行加法器的快速进位,改进串行进位方式的基本思路是让各进位同时形成,避免各进位之间的依赖关系。现在来分析一下进位关系。展开C1=G1+P1C0;C2=G2+P2C1;,Cn=Gn+PnCn-1 得关系式:C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 以上进位输出只与Gi、Pi以及最低进位C0有关,而且不依赖于其低位进位Ci-1的输入,因此各级进位可以同时产生
6、,形成并行进位。,10,并行进位的特点,并行进位的特点是各级进位信号同时形成,与字长无关,提高了整体运算速度。并行进位又叫先行进位。最长延迟时间仅为2ty。随着加法器位数的增加,Ci的逻辑表达式会变得越来越长,输入变量会越来越多,电路结构也会变得越来越复杂,导致电路实现也越来越困难。并行进位方式需继续改进,才能有实用价值。这就是下面要介绍的分组进位方式。,11,以16位加法器为例,将其分为4组,每组4位。在组内,按照并行进位函数直接产生C1C4,这些进位可同时得到。实现这种进位逻辑的电路称为4位先行进位电路(CLA),如74181ALU。利用这种4位一组的CLA电路和4位全加器可以构成4位CL
7、A加法器。注意,4位CLA加法器包含了两部分逻辑:4位全加器和4位一组的先行进位链,这个组内的进位为一级进位。在组间,每个组的进位输入是前一个组的进位输出,而每个组的进位输出是下一个组的进位输入.,构成16位加法器很容易实现,单级先行进位,12,单级先行进位(续一),上述组内并行、组间串行的进位方式也称为单级先行进位方式,原理如下图所示。,13,单级先行进位(续二),组内并行、组间串行进位的时间图(16位)如下:完成进位时间8ty.进位时间与组数成正比,组数越多,进位时间越长。,14,多级先行进位,为说明问题,我们不妨仍以16位加法器为例,仍然4位一组,分成4个小组,先就第一小组的进位输出函数
8、C4做一下分析:C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 G1*P1*=G1*+P1*C0 G1*称为组进位产生函数,P1*称为组进位传递函数;这两个函数类似于进位产生函数G和进位传递函数P.,15,多级先行进位(续一),四个组内的最高进位C16、C12、C8、C4可以分别表示为:C4=G1*+P1*C0 C8=G2*+P2*C4 C12=G3*+P3*C8 C16=G4*+P4*C12现在逐项代入、并展开得关系式:C4=G1*+P1*C0C8=G2*+P2*C4=G2*+P2*G1*+P2*P1*C0C12=G3*+P3*G2*+P3*P2*G1*+P3*P
9、2*P1*C0C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1*+P4*P3*P2*P1*C0可以看出,这4组进位结构与前述4位先行进位逻辑完全相同,组间进位信号只与最低进位C0有关,所以能同时产生。,16,多级先行进位(续二),组内进位信号能同时产生、组间进位信号也能同时产生,由此可以构成多级并行进位逻辑。16位2级先行进位加法器如下图所示。,17,多级先行进位(续三),问题是这4个组间进位信号如何用硬件来产生呢?对于多级先行进位的实现可以按如下思路来理解:先把单级先行进位加法器的串行进位链断开;增加一级先行进位链,这个新增加的先行进位链的进位称为二级进位;组间进位信
10、号C4、C8、C12、C16由二级进位链来产生,其逻辑关系式已经得到;让一级进位链多产生两个辅助函数Gi*和Pi*,并且作为二级进位链的输入。,18,多级先行进位(续四),16位2级先行进位时间图,进位产生次序如下:产生第一小组的C1C3、所有组进位产生函数Gi*和组进位传递函数Pi*,时间为2ty.由CLA电路产生第二、三、四小组的组间进位信号C4、C8、C12、C16,时间为2ty.产生第二、三、四小组的组内进位信号C5、C6、C7、C9、C10、C11、C13、C14、C15,时间为2ty.,19,4、多功能算术逻辑部件ALU,前面介绍了运算器的算术运算功能,为了完成多种算术逻辑运算,需
11、要将加法器的功能进行扩展,扩展的基本思想如下:,参加运算的两个数Ai、Bi和低位进位Ci-1先不进行全加,先把两个输入Ai、Bi和四个控制参数S0、S1、S2、S3进行组合,形成函数Xi和Yi,然后再将Xi、Yi和低位进位Ci-1通过全加器进行全加。这样一来,控制参数不同,得到的组合函数也不同,从而实现多种算术和逻辑运算。,20,算术逻辑部件ALU,算术逻辑部件ALU大体上有三部分组成:全加器进位链输入选择器下面以ALU的一位逻辑为例,原理性地说明算术、逻辑功能是如何实现的。,21,算术逻辑部件ALU(续一),一位加法器由全加器和进位门构成,其中,两个半加器构成全加器、与或非门构成一位进位门。
12、,一位输入选择器,由两个与或非门构成,可输入2个本位操作数或非、4个控制信号(S3S0),一个控制门M,选择算逻运算。当M=0时,开门接收低位来的进位信号,执行算术运算;当M=1时,关门不接收低位进位信号,执行逻辑运算,与进位无关。,22,算术逻辑部件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,通过不同的输入选择,实现不同的功能,这进一步说明:数据是在传送过程实现运算、并得到处理的。多位ALU的实现思路完全一样。,23,5、运算器的组织,运
13、算器主要由算逻部件ALU、寄存器、多路转换器、内部数据总线组成。在运算器内部,各功能模块之间的连接大都采用总线结构,称为运算器的内部总线,ALU和各寄存器都挂在上面。运算器大体上有如下三种结构:单总线结构、双总线结构和三总线总线结构。,24,操作数需要分两次送入ALU,而且需要两个缓冲寄存器;完成一次运算需要3步。特点是控制电路简单,而速度较慢。,两个操作数可以同时到达ALU进行运算,且马上可以得到运算结果,输出端需要设置一个缓冲寄存器;完成一次运算需要2步。,两条总线同时供给操作数,输出与第三条总线相连;完成一次运算需要1步。特点是操作速度快,控制相对复杂一些。,运算器的3种组织结构,25,
14、二、定点加减运算,原码加减运算当原码做加减运算时,符号位不参加运算,只在两数的绝对值之间进行。加法时可能要做减法(两数异号)、减法时又可能做加法(两数异号)。操作结果需要根据绝对值的大小来确定运算结果的符号。计算机中通常没有减法器,减法运算需要转换为加法来实现。结论:原码加减运算过程比较复杂,一般不用.,26,1、补码加减运算,补码加减运算的依据如下:,和的补码等于补码的和 X+Y补=X补+Y补 相反数的补码等于补码的相反数-X补=-X补 差的补码等于补码的差X-Y补=X补+-Y补=X补-Y补,补码的运算规则:参加运算的操作数用补码表示。补码的符号位与数值位同时参加运算。若做加法,则两数补码直
15、接相加;若做减法,用被减数与减数的机器负数相加。运算结果为和、差的补码。注:机器负数等于补码连同符号位按位求反,末位加1。,27,补码加减示例,例1、A=0.1011,B=-0.1110,求A+B.解:A补=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.1101,28,2、补码加减溢出的判别,例3、X=1011,Y=111 求
16、X+Y。例4、X=-1011,Y=-111 求X+Y。解:X补=0,1011,Y补=0,0111 解:X补=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的和数。,29,补码加减运算溢出,当运算结果超出了机器所能表示的范围时,数值位侵占了符号位,这种现象称为溢出。两个同符号的数相加会产生溢出。两个正数相加,结果大于机器所能表示的最大正数,称为上溢
17、(正溢)。两个负数相加,结果小于机器所能表示的最小负数,称为下溢(负溢)。,30,补码加减溢出的判别方法,判断溢出的三种基本方法:采用一个符号位判别 当参加运算的两个数的符号为0、而和的符号位为1时上溢;当参加运算的两个数的符号为1、而和的符号位为0时下溢。判别条件为:溢出=XsYsSs+XsYsSs其中,Xs、Ys为参加运算两数的符号,Ss为结果符号位。,31,补码加减溢出的判别方法(续),采用进位位判别 两个正数相加,当最高有效位产生进位(C1=1)而符号位不产生进位(Cs=0)时,发生上溢;两个负数相加,当最高有效位不产生进位(C1=0)而符号位产生进位,发生下溢。判别条件为:溢出=Cs
18、C1+CsC1=CsC1 采用变形补码(双符号位补码)采用变形补码检测,当运算结果的两符号位不一致时表示溢出。若符号位用Ss1Ss2表示,则Ss1Ss2=01 结果上溢,Ss1Ss2=10 结果下溢.判别溢出的条件为:溢出=Ss1Ss2,32,3、补码定点加减运算器的基本组成,补码加法:在XF、YF、FX三个控制信号的控制下,打开门A、门B和门C,把寄存器X和寄存器Y的内容送入加法器的两个输入端进行加法运算,把结果送回寄存器X中.补码减法:与补码加法不同之处在于要用YF来代替YF、并在1F控制信号作用下使结果加1,即可完成补码减法运算。,33,三、带符号数的移位与舍入,移位是算术、逻辑运算的又
19、一基本操作,而且几乎所有机器的指令系统都设有移位指令。比如,乘法运算大多数是通过“累加移位”来实现的。算术移位操作时,符号位不变,数值大小则会发生变化。左移一位相当于乘以2,右移一位相当于除以2,因为移位使位权发生了变化。在移位过程中,有效数位会被移出数据字而丢失。因此,还需要考虑数据的舍入问题,以尽可能提高数据的表示精度。,34,1、移位规则,原码移位规则 符号位不变 空出位补0 例如:1X1X2X3Xn 左移后为:1X2X3Xn0 右移后为:10X1X2Xn-1,补码移位规则符号位不变 左移时,空出位补0 右移时,符号位补充空出位例如:1X1X2X3Xn 左移后为:1X2X3Xn0 右移后
20、为:11X1X2Xn-1,算术左移在不产生溢出时,符号位保持不变。,我们用的微机使用补码来表示数据.,35,2、移位器逻辑电路,移位器是由与门和或门组成的逻辑电路(实际是一个多路选择器),可以实现直传(不移位)、左斜一位送(左移一位)和右斜一位送(右移一位)的功能。移位器逻辑电路如图所示。,左移由2FL控制,Fi-1Li直传由FL来控制,FiLi 右移由F/2L来控制,Fi+1Li移位器无数据寄存能力。,36,3、舍入操作,舍入操作有以下几种:截断法:无条件地舍去多余的位。恒置1法:舍去多余位,保留部分最低位置1。0舍1入法:舍去部分的最高位为1时,则保留部分末位加1,与四舍五入法类似。截断法
21、和恒置1法误差比较大;0舍1入法比较合理,但当保留部分为0.111时,会导致再次溢出。末位恒置1,在除法中非常有用。,37,四、定点乘法运算,乘法运算要比加法运算复杂。先举一个大家熟悉的手工定点乘法的例子;之后我们来看,如果将手工运算改为机器运算,会出现什么问题?该如何解决?,手工计算的二进制乘法规则:数值位:00=0 10=0 11=1,逻辑与。符号位:同号相乘为正 异号相乘为负,逻辑异或其结果:乘积=符号位/数值位。,38,乘法:由手工计算到机器运算,由手工计算到机器运算,需要解决3个问题:符号如何处理?多个部分积如何相加?为保持两次部分积之间的位权对应关系,会导致加法器位数的增加,能否在
22、不增加位数的情况下保持位权对应?由于解决方式的不同,形成了两种主要的乘法器结构采用常规的加法器来实现将n位乘法转换为n次累加和移位,每次处理1位。为避免加法器位数的扩充,可以把手工计算时的新部分积“左移累加”改为机器运算的原部分积“累加右移”。采用阵列乘法器实现利用中大规模集成电路把多项部分积同时相加,这种结构的乘法器称为阵列乘法器。,39,1、原码一位乘法,原码一位乘法是从手算演变而来的,即用两个操作数的绝对值相乘,乘积的符号为两操作数符号的异或值(同号为正,异号为负).乘积 P=|X|Y|符号 Ps=XsYs原码一位乘法的规则 被乘数和乘数取绝对值。乘数的最低位为1时,部分积加被乘数,否则
23、加0。部分积和乘数右移一位。重复,直到乘数全部移出。积的符号由两乘数符号的异或得到。积的符号与积的数值拼接得到积的原码。,40,原码一位乘示例,实际运算的准备工作:|被乘数|B寄存器|乘数|C寄存器(将要存放部分积的低位)0 A寄存器(将要存放部分积的高位)例4:已知:X=0.1101,Y=-0.1011,求:XY。解:|X|=00.1101B(被乘数采用双符号位)|Y|=.1011C(乘数取数值)0A,41,A C 说明,42,原码一位乘法的硬件实现,A、B为n+2位,C为n位,加法器为n+2位,异或门。A、C寄存器级连在一起,具有右移功能。每次移位时,A的最低位进入C 的最高位,而C的最低
24、位被丢掉。最后,A的内容为乘积的高位部分,C的内容为乘积的低位部分。C的最低位作为控制信号,控制运算器加被乘数还是加零。,43,2、补码一位乘法,原码乘法虽然容易实现,但一般计算机中数据多以补码表示。若仍用原码做乘法,需要进行码制转换,反倒不方便而且又影响速度。因为补码符号位直接参加运算,所以补码乘法不能简单地套用原码乘法的算法。实现补码乘法有2种方法。一种方法为校正法,使用较少,只给出算式:XY补=X补(0.X1X2Xn)-X补Y另一种更好的方法为比较法,该算法是英国人Booth夫妇提出,所以也称为Booth法。该算法无需校正,控制较为简单。以下主要讨论比较法。,44,Booth的推导,设:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 机器 运算

链接地址:https://www.31ppt.com/p-5379655.html