四章数据的机器运算.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 :
3、本位和 Ci : 向高位的进位,实现电路,逻辑框图,一个全加器只完成一位加法,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,串行进位的并行加法器,总的延迟时间正比于字长,字长越长,总延迟时间也越
5、长。 若一位进位需2ty时间,完成n位进位就需要2nty. 要提高加法运算速度,必须改进进位方式。,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以及最低进位C
6、0有关,而且不依赖于其低位进位Ci-1的输入,因此各级进位可以同时产生,形成并行进位。,10,并行进位的特点,并行进位的特点是各级进位信号同时形成,与字长无关,提高了整体运算速度 。并行进位又叫先行进位。 最长延迟时间仅为2ty。 随着加法器位数的增加,Ci的逻辑表达式会变得越来越长,输入变量会越来越多,电路结构也会变得越来越复杂,导致电路实现也越来越困难。 并行进位方式需继续改进,才能有实用价值。这就是下面要介绍的分组进位方式。,11,以16位加法器为例,将其分为4组,每组4位。 在组内,按照并行进位函数直接产生C1C4,这些进位可同时得到。实现这种进位逻辑的电路称为4位先行进位电路(CLA
7、),如74181ALU。 利用这种4位一组的CLA电路和4位全加器可以构成4位CLA加法器。注意,4位CLA加法器包含了两部分逻辑:4位全加器和4位一组的先行进位链,这个组内的进位为一级进位。 在组间,每个组的进位输入是前一个组的进位输出,而每个组的进位输出是下一个组的进位输入.,构成16 位加法 器很容 易实现,单级先行进位,12,单级先行进位(续一),上述组内并行、组间串行的进位方式也称为单级先行进位方式,原理如下图所示。,13,单级先行进位(续二),组内并行、组间串行进位的时间图(16位)如下: 完成进位时间8ty. 进位时间与组数成正比,组数越多,进位时间越长。,14,多级先行进位,为
8、说明问题,我们不妨仍以16位加法器为例,仍然4位一组,分成4个小组,先就第一小组的进位输出函数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 现在逐项代入、并展开得关
9、系式: C4 = G1* + P1* C0 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 可以看出,这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. 产生第二
11、、三、四小组的组内进位信号C5、C6、C7、C9、C10、C11、C13、C14、C15,时间为2ty.,19,4、多功能算术逻辑部件ALU,前面介绍了运算器的算术运算功能,为了完成多种算术逻辑运算,需要将加法器的功能进行扩展,扩展的基本思想如下:,参加运算的两个数Ai、Bi和低位进位Ci-1先不进行全加,先把两个输入Ai、Bi和四个控制参数S0、S1、S2、S3进行组合,形成函数Xi和Yi,然后再将Xi、Yi和低位进位Ci-1通过全加器进行全加。这样一来,控制参数不同,得到的组合函数也不同,从而实现多种算术和逻辑运算。,20,算术逻辑部件ALU,算术逻辑部件ALU大体上有三部分组成: 全加器
12、 进位链 输入选择器 下面以ALU的一位逻辑为例,原理性地说明算术、逻辑功能是如何实现的。,21,算术逻辑部件ALU(续一),一位加法器由全加器和进位门构成,其中,两个半加器构成全加器、与或非门构成一位进位门。,一位输入选择器,由两个与或非门构成,可输入2个本位操作数或非、4个控制信号(S3S0),一个控制门M,选择算逻运算。当M=0时,开门接收低位来的进位信号,执行算术运算;当M=1时,关门不接收低位进位信号,执行逻辑运算,与进位无关。,22,算术逻辑部件ALU(续二),控制信号与选择器输出关系表: S3 S2 Xi S1 S0 Yi 0 0 1 0 0 Ai 0 1 Ai+Bi 0 1 A
13、iBi 1 0 Ai+Bi 1 0 AiBi 1 1 Ai 1 1 0,通过不同的输入选择,实现不同的功能,这进一步说明:数据是在传送过程实现运算、并得到处理的。多位ALU的实现思路完全一样。,23,5、运算器的组织,运算器主要由算逻部件ALU、寄存器、多路转换器、内部数据总线组成。 在运算器内部,各功能模块之间的连接大都采用总线结构,称为运算器的内部总线,ALU和各寄存器都挂在上面。 运算器大体上有如下三种结构:单总线结构、双总线结构和三总线总线结构。,24,操作数需要分两次送入ALU,而且需要两个缓冲寄存器;完成一次运算需要3步。特点是控制电路简单,而速度较慢。,两个操作数可以同时到达AL
14、U进行运算,且马上可以得到运算结果,输出端需要设置一个缓冲寄存器 ;完成一次运算需要2步 。,两条总线同时供给操作数,输出与第三条总线相连;完成一次运算需要1步。特点是操作速度快,控制相对复杂一些。,运算器的3种组织结构,25,二、定点加减运算,原码加减运算 当原码做加减运算时,符号位不参加运算,只在两数的绝对值之间进行。 加法时可能要做减法(两数异号)、减法时又可能做加法(两数异号)。 操作结果需要根据绝对值的大小来确定运算结果的符号。计算机中通常没有减法器,减法运算需要转换为加法来实现。 结论:原码加减运算过程比较复杂,一般不用.,26,1、补码加减运算,补码加减运算的依据如下:,和的补码
15、等于补码的和 X + Y补 = X补 + Y补 相反数的补码等于补码的相反数 -X补 = - X补 差的补码等于补码的差 X-Y补 = X补+ -Y补 = X补- Y补,补码的运算规则: 参加运算的操作数用补码表示。 补码的符号位与数值位同时参加运算。 若做加法,则两数补码直接相加; 若做减法,用被减数与减数的机器负数相加。 运算结果为和、差的补码。 注:机器负数等于补码连同符号位按位求反,末位加1。,27,补码加减示例,例1、A=0.1011, B=-0.1110,求A+B. 解: A补 = 0.1011, B补 = 1.0010 0.1011 + 1.0010 1.1101 A+B补 =
16、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 求X+Y。 例4、X=-1011,Y=-111 求X+Y。 解:X补=0,1011,Y补=0,0111 解:X补=1,0101,Y补=1,1001 0,1011 (+11) 1,0101 (-11) + 0,0111 (+7) + 1,1001 (-7
17、) 1,0010 0,1110 X+Y补 =1,0010 X+Y补=0,1110 X+Y=-1110 (-14) X+Y=+1110 (+14) 出错原因在于用了4个二进制位来表示绝对值为18的和数。,29,补码加减运算溢出,当运算结果超出了机器所能表示的范围时,数值位侵占了符号位,这种现象称为溢出。两个同符号的数相加会产生溢出。 两个正数相加,结果大于机器所能表示的最大正数,称为上溢(正溢)。 两个负数相加,结果小于机器所能表示的最小负数,称为下溢(负溢)。,30,补码加减溢出的判别方法,判断溢出的三种基本方法: 采用一个符号位判别 当参加运算的两个数的符号为0、而和的符号位为1时上溢; 当
18、参加运算的两个数的符号为1、而和的符号位为0时下溢。 判别条件为:溢出= XsYsSs+XsYsSs 其中,Xs、Ys为参加运算两数的符号, Ss为结果符号位。,31,补码加减溢出的判别方法(续),采用进位位判别 两个正数相加,当最高有效位产生进位(C1=1)而符号位不产生进位(Cs=0)时,发生上溢; 两个负数相加,当最高有效位不产生进位(C1=0)而符号位产生进位,发生下溢。 判别条件为:溢出= CsC1+CsC1 = CsC1 采用变形补码(双符号位补码) 采用变形补码检测,当运算结果的两符号位不一致时表示溢出。若符号位用Ss1Ss2表示,则Ss1Ss2=01 结果上溢,Ss1Ss2=1
19、0 结果下溢. 判别溢出的条件为: 溢出=Ss1Ss2,32,3、补码定点加减运算器的基本组成,补码加法: 在XF、YF、FX三个控制信号的控制下,打开门A、门B和门C,把寄存器X和寄存器Y的内容送入加法器的两个输入端进行加法运算,把结果送回寄存器X中. 补码减法:与补码加法不同之处在于要用YF来代替YF、并在1F控制信号作用下使结果加1,即可完成补码减法运算。,33,三、带符号数的移位与舍入,移位是算术、逻辑运算的又一基本操作,而且几乎所有机器的指令系统都设有移位指令。比如,乘法运算大多数是通过“累加移位”来实现的。 算术移位操作时,符号位不变,数值大小则会发生变化。左移一位相当于乘以2,右
20、移一位相当于除以2,因为移位使位权发生了变化。 在移位过程中,有效数位会被移出数据字而丢失。因此,还需要考虑数据的舍入问题,以尽可能提高数据的表示精度。,34,1、移位规则,原码移位规则 符号位不变 空出位补0 例如:1X1X2X3Xn 左移后为:1X2X3Xn0 右移后为:10X1X2Xn-1,补码移位规则 符号位不变 左移时,空出位补0 右移时,符号位补充空出位 例如:1X1X2X3Xn 左移后为:1X2X3Xn0 右移后为:11X1X2Xn-1,算术左移在不产生溢出时, 符号位保持不变。,我们用的微机使用补码 来表示数据,35,2、移位器逻辑电路,移位器是由与门和或门组成的逻辑电路(实际
21、是一个多路选择器),可以实现直传(不移位)、左斜一位送(左移一位)和右斜一位送(右移一位)的功能。移位器逻辑电路如图所示。,左移由2FL控制,Fi-1Li 直传由FL来控制,FiLi 右移由F/2L来控制,Fi+1Li 移位器无数据寄存能力。,36,3、舍入操作,舍入操作有以下几种: 截断法:无条件地舍去多余的位。 恒置1法:舍去多余位,保留部分最低位置1。 0舍1入法:舍去部分的最高位为1时,则保留部分末位加1,与四舍五入法类似。 截断法和恒置1法误差比较大;0舍1入法比较合理,但当保留部分为0.111时,会导致再次溢出。末位恒置1,在除法中非常有用。,37,四、定点乘法运算,乘法运算要比加
22、法运算复杂。先举一个大家熟悉的手工定点乘法的例子;之后我们来看,如果将手工运算改为机器运算,会出现什么问题?该如何解决?,手工计算的二进制乘法规则: 数值位: 00 = 0 10 = 0 11 = 1,逻辑与。 符号位: 同号相乘为正 异号相乘为负,逻辑异或 其结果:乘积 = 符号位 / 数值位。,38,乘法:由手工计算到机器运算,由手工计算到机器运算,需要解决3个问题: 符号如何处理? 多个部分积如何相加? 为保持两次部分积之间的位权对应关系,会导致加法器位数的增加,能否在不增加位数的情况下保持位权对应? 由于解决方式的不同,形成了两种主要的乘法器结构 采用常规的加法器来实现 将n位乘法转换
23、为n次累加和移位,每次处理1位。 为避免加法器位数的扩充,可以把手工计算时的新部分积“左移累加”改为机器运算的原部分积“累加右移”。 采用阵列乘法器实现 利用中大规模集成电路把多项部分积同时相加,这种结构的乘法器称为阵列乘法器。,39,1、原码一位乘法,原码一位乘法是从手算演变而来的,即用两个操作数的绝对值相乘,乘积的符号为两操作数符号的异或值(同号为正,异号为负). 乘积 P = |X|Y| 符号 Ps = XsYs 原码一位乘法的规则 被乘数和乘数取绝对值。 乘数的最低位为1时,部分积加被乘数,否则加0。 部分积和乘数右移一位。 重复,直到乘数全部移出。 积的符号由两乘数符号的异或得到。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 机器 运算
链接地址:https://www.31doc.com/p-3207339.html