资源预览内容
第1页 / 共95页
第2页 / 共95页
第3页 / 共95页
第4页 / 共95页
第5页 / 共95页
第6页 / 共95页
第7页 / 共95页
第8页 / 共95页
第9页 / 共95页
第10页 / 共95页
亲,该文档总共95页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四章 数据的机器运算n计算机的主要功能是对数据进行各种加工和处理,包括 加、减、乘、除这些基本的算术运算,与、或、非这些 基本的逻辑运算,以及由此构成的其它复杂的运算。运 算器则是实现这些运算的主要部件。n无论多么复杂的运算,最终都要分解为加法运算来实现 。其中,减法运算通过补码转化为加法来实现 ;乘、除 运算可以转换为加减运算、移位操作来实现。加法和移 位是计算机中最基本的两种运算操作。n可见,加法器又是运算器的核心部件。在加法器的基础 上增加移位功能,并通过选择输入控制条件,就可以实 现所有的运算。 1本章主要内容主要内容n算术、逻辑运算的实现n定点加、减运算n数的移位和舍入操作n定点乘、除运算n规格化浮点运算2一、算术逻辑运算的实现 计算机中最基本的算术运算是加法运算,不论加、 减、乘、除运算最终都可以归结为加法运算。所以 首先讨论最基本、最核心的运算部件加法器,以 及并行加法器的进位问题。加法器是由全加器和其它必要的逻辑电路组成的, 所以我们从全加器开始讨论。31、全加器(FA)n全加器(FA)是最基本 的运算单元,由它构成 加法器。n全加器有三个输入量: 操作数Ai、Bi、以及低 位传来的进位信号Ci-1 。n全加器有两个输出量: 本位和Si、以及向高位 的进位信号Ci。 Ai Bi Ci-1 Si Ci0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1全加器真值表4全加器的逻辑方程和电路根据真值表得:Si=AiBiCi-1Ci=AiBi+(AiBi)Ci-1Si : 本位和Ci : 向高位的进位 实现电路逻辑框图一个全加器只完成一位加法5全加器构成加法器n全加器并不存储信息,可用门电路来实现。用全加 器能够方便地构成加法器。加法器分为串行加法器 和并行加法器。 n串行加法器只有一个全加器,数据逐位串行送入加 法器进行计算。由于运算速度慢,一般不用。n并行加法器则由若干个这样的全加器构成,各位数 据同时运算。并行加法器的位数与操作数的位数相 等。并行加法器的最长长运算时间时间 主要取决于进进位 信号的传递时间传递时间 。例如:1111和0001相加, 最低位产产生的进进位将逐位影响到最高位.n由此可见见,提高并行加法器速度的关键键是尽量加快 进进位产产生和传递传递 的速度。62、进位产生与传递n进位链的概念: 并行加法器中的每一个全加器都有一个从低位送来的 进位输入和一个传送给高位的进位输出。我们把构成 进位信号产生和传递的逻辑网络称为进位链。n进位链上每一位的进位表达式为:Ci=AiBi+(AiBi)Ci-1 设Gi=AiBi ,称为进位产生函数 Pi=AiBi ,称为进位传递函数 进位表达式 Ci=Gi+PiCi-17串行进位n把n个全加器串联起来,就可以实现两个n位数的相加。这种加法器 称为串行进位的并行加法器,串行进位又叫行波进位。 其中:C1=G1+P1C0C2=G2+P2C1Cn=Gn+PnCn-1n串行进位的并行加法器,总的延迟时间正比于字 长,字长越长,总延迟时间也越长。n若一位进位需2ty时间,完成n位进位就需要2nty.n要提高加法运算速度,必须改进进位方式。 83、并行加法器的快速进位l改进串行进位方式的基本思路是让各进位同时形成,避免各进位之 间的依赖关系。现在来分析一下进位关系。 展开C1=G1+P1C0 ;C2=G2+P2C1 ; ,Cn=Gn+PnCn-1 得关系式:C1=G1+P1C0C2=G2+P2C1=G2+P2G1+P2P1C0C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1 +P4P3P2P1C0以上进位输出只与Gi、Pi以及最低进位C0有关,而且不依赖于其低 位进位Ci-1的输入,因此各级进位可以同时产生,形成并行进位。9并行进位的特点n并行进位的特点是各级进位信号同时形成,与字长无 关,提高了整体运算速度 。并行进位又叫先行进位。n最长延迟时间仅为2ty。n随着加法器位数的增加,Ci的逻辑表达式会变得越来 越长,输入变量会越来越多,电路结构也会变得越来 越复杂,导致电路实现也越来越困难。n并行进位方式需继续改进,才能有实用价值。这就是 下面要介绍的分组进位方式。10n以16位加法器为例,将其分为4组,每组4位。n在组内,按照并行进位函数直接产生C1C4,这 些进位可同时得到。实现这种进位逻辑的电路称为 4位先行进位电路(CLA),如74181ALU。n利用这种4位一组的CLA电路和4位全加器可以构 成4位CLA加法器。注意,4位CLA加法器包含了 两部分逻辑:4位全加器和4位一组的先行进位链 ,这个组内的进位为一级进位。 n在组间,每个组的进位输入是前一个组的进位输出 ,而每个组的进位输出是下一个组的进位输入.构成16 位加法 器很容 易实现 单级先行进位11单级先行进位(续一)n上述组内并行、组间串行的进位方式也称为单级先 行进位方式,原理如下图所示。12单级先行进位(续二)n组内并行、组间串行进位的时间图(16位)如下:n完成进位时间8ty.n进位时间与组数成正比,组数越多,进位时间越长。13多级先行进位n为说明问题,我们不妨仍以16位加法器为例,仍然4 位一组,分成4个小组,先就第一小组的进位输出函 数C4做一下分析:C4 = G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0G1* P1*= G1* +P1*C0n G1*称为组进位产生函数,P1*称为组进位传递函数; 这两个函数类似于进位产生函数G和进位传递函数P.14多级先行进位(续一)n四个组内的最高进位C16、C12、C8、C4可以分别表示为:C4 = G1* + P1* C0C8 = G2* + P2* C4C12 = G3* + P3* C8C16 = G4* + P4* C12现在逐项代入、并展开得关系式: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有关,所以能同时产生。15多级先行进位(续二)n组内进位信号能同时产生、组间进位信号也能同时产 生,由此可以构成多级并行进位逻辑。16位2级先行 进位加法器如下图所示。16多级先行进位(续三)n问题是这4个组间进位信号如何用硬件来产生呢? 对于多级先行进位的实现可以按如下思路来理解:n先把单级先行进位加法器的串行进位链断开;n增加一级先行进位链,这个新增加的先行进位链的 进位称为二级进位;n组间进位信号C4、C8、C12、C16由二级进位链来产 生,其逻辑关系式已经得到;n让一级进位链多产生两个辅助函数Gi*和Pi*,并且 作为二级进位链的输入。 17多级先行进位(续四)16位2级先行进位时间图 进位产生次序如下:n产生第一小组的C1C3、所有 组进位产生函数Gi*和组进位传 递函数Pi*,时间为2ty. n由CLA电路产生第二、三、四 小组的组间进位信号C4、C8、 C12、C16,时间为2ty.n产生第二、三、四小组的组内 进位信号C5、C6、C7、C9、C10 、C11、C13、C14、C15,时间为 2ty. 184、多功能算术逻辑部件ALUn前面介绍了运算器的算术运算功能,为了完成多种算 术逻辑运算,需要将加法器的功能进行扩展,扩展的 基本思想如下:参加运算的两个数Ai、Bi和低位进位 Ci-1先不进行全加,先把两个输入Ai、 Bi和四个控制参数S0、S1、S2、S3进 行组合,形成函数Xi和Yi,然后再将Xi 、Yi和低位进位Ci-1通过全加器进行全 加。这样一来,控制参数不同,得到 的组合函数也不同,从而实现多种算 术和逻辑运算。 19算术逻辑部件ALUn算术逻辑部件ALU大体上有三部分组成:n全加器n进位链n输入选择器n下面以ALU的一位逻辑为例,原理性地说明 算术、逻辑功能是如何实现的。20算术逻辑部件ALU(续一)l一位加法器由全加器和进位门构 成,其中,两个半加器构成全加 器、与或非门构成一位进位门。l一位输入选择器,由两个与或非 门构成,可输入2个本位操作数 或非、4个控制信号(S3S0)l一个控制门M,选择算逻运算。 当M=0时,开门接收低位来的进 位信号,执行算术运算;当M=1 时,关门不接收低位进位信号, 执行逻辑运算,与进位无关。 21算术逻辑部件ALU(续二)控制信号与选择器输出关系表: S3 S2 Xi S1 S0 Yi 0 0 1 0 0 Ai 0 1 Ai+Bi 0 1 AiBi 1 0 Ai+Bi 1 0 AiBi 1 1 Ai 1 1 0 进位传递函数进位产生函数通过不同的输入选择,实现不同的功能,这进一步说明:数据是在传 送过程实现运算、并得到处理的。多位ALU的实现思路完全一样。225、运算器的组织n运算器主要由算逻部件ALU、寄存器、多路转换 器、内部数据总线组成。n在运算器内部,各功能模块之间的连接大都采用 总线结构,称为运算器的内部总线,ALU和各寄 存器都挂在上面。n运算器大体上有如下三种结构:单总线结构、双 总线结构和三总线总线结构。23l操作数需要分两次送入ALU,而 且需要两个缓冲寄存器;完成一 次运算需要3步。特点是控制电路 简单,而速度较慢。 l两个操作数可以同时到达ALU进行 运算,且马上可以得到运算结果, 输出端需要设置一个缓冲寄存器 ; 完成一次运算需要2步 。l两条总线同时供给操作数,输出与 第三条总线相连;完成一次运算需 要1步。特点是操作速度快,控制 相对复杂一些。 运算器的3种组织结构24二、定点加减运算 n原码加减运算n当原码做加减运算时,符号位不参加运算,只 在两数的绝对值之间进行。n加法时可能要做减法(两数异号)、减法时又 可能做加法(两数异号)。n操作结果需要根据绝对值的大小来确定运算结 果的符号。计算机中通常没有减法器,减法运 算需要转换为加法来实现。 结论:原码加减运算过程比较复杂,一般不用.251、补码加减运算 补码加减运算的依据如下:n和的补码等于补码的和 nX + Y补 = X补 + Y补 n相反数的补码等于补码的相反数 n-X补 = - X补 n差的补码等于补码的差nX-Y补 = X补+ -Y补 = X补- Y补补码的运算规则: n参加运算的操作数用补码表 示。n补码的符号位与数值位同时 参加运算。n若做加法,则两数补码直接 相加; 若做减法,用被减数与减数 的机器负数相加。n运算结果为和、差的补码。注:机器负数等于补码连同符 号位按位求反,末位加1。26补码加减示例例1、A=0.1011,B=-0.1110,求A+B. 解: A补 = 0.1011,B补 = 1.00100.1011 +1.0010 1.1101
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号