- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
表2.5 74181ALU算术/逻辑运算功能表
说明:(1)H=高电平,L=低电平.(2)*表示每一位均移到下一个更高位,即A*
=2A
注意,表2.5中算术运算操作是用补码表示法来表示的。 其中“加”是指算术加,运算时要考虑进位,而符号“+”是 指“逻辑加”。 其次,减法是用补码方法进行的,其中数的反码是内部产生 的,而结果输出“A减B减1”,因此做减法时需在最末位产生一 个强迫进位(加1),以便产生“A减B”的结果。另外,“A=B”输 出端可指示两个数相等,因此它与其他ALU的“A=B"输出端 按“与”逻辑连接后,可以检测两个数的相等条件。
计算机组成原理
目录
☼
☼
☼ ☼ ☼ ☼ ☼ ☼ ☼
第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章
计算机系统概论 运算方法和运算器 存储系统 指令系统 中央处理器 总线系统 外围设备 输入输出系统 并行组织
上一讲回顾
1.原码除法原理 (1)回复余数法 (2)不回复余数法(加减交替法) 2.并行除法器 (1)可控加法/减法(CAS)单元 图2.10(a) (2)不回复余数阵列除法器 图2.10(b) 3.逻辑运算
内部总线和外部总线
根据总线所在位置,总线分为内部总线和外部 总线两类。 内部总线是指CPU内各部件的连线 外部总线是指系统总线,即CPU与存储器、I/O 系统之间的连线。
单向总线和双向总线
按总线的逻辑结构来说,总线可分为单向传送 总线和双向传送总线。 所谓单向总线,就是信息只能向一个方向传送 所谓双向总线,就是信息可以分两个方向传送, 既可以发送数据,也可以接收数据。
4.两级先行进位的ALU
前面说过,74181ALU设置了P和G两个本组先行进位输出端。如果将四片 74181的P,G输出端送入到74182先行进位部件(CLA),又可实现第二级的先行进 位,即组与组之间的先行进位。 假设4片(组)74181的先行进位输出依次为P0,G0,G1P1,P2,G2,P3,G3,那么 参考式(2.37)的进位逻辑表达式,先行进位部件74182CLA所提供的进位逻辑关系 如下: Cn+x=G0+P0Cn Cn+y=G1+P1Cn+x=G1+G0P1+P0P1Cn Cn+z=G2+P2Cn+y=G2+G1P2+G0P1P2+P0P1P2Cn (2.38) Cn+4 =G3+P3Cn+z=G3+G2P3+G1P1P2+G0P1P2P3+P0P1P2P3Cn =G*+P*Cn 其中 P*=P0P1P2P3 G*=G3+G2P3+G1P1P2+G0P1P2P3 根据以上表达式,用TTL器件实现的成组先行进位部件74182的逻辑电路如下 图所示 其中G*称为成组进位发生输出,P*称为成组进位传送输出。
三种结总线结构的运算器如(a)所示。由于所有部件都接到同一总线上,所以数据 可以在任何两个寄存器之间,或者在任一个寄存器和ALU之间传送。如果具有阵列 乘法器或除法器,那么它们所处的位置应与ALU相当。对这种结构的运算器来说, 在同一时间内,只能有一个操作数放在单总线上。为了把两个操作数输入到ALU, 需要分两次来做,而且还需要A,B两个缓冲寄存器。这种结构的主要缺点是操作速 度较慢。虽然在这种结构中输入数据和操作结果需要三次串行的选通操作,但它 并不会对每种指令都增加很多执行时间。只有在对全都是CPU寄存器中的两个操 作数进行操作时,单总线结构的运算器才会造成一定的时间损失。但是由于它只 控制一条总线,故控制电路比较简单。
根据上面所列的函数关系,即可列出Xi和Yi的逻辑表达式:
进一步化简并代入前面的求和与进位表达式,可得ALU的某一位逻辑 表达式如下 :
4位之间采用先行进位公式,根据式(2.36),每一位的进位公式可 递推如下: 第0位向第1位的进位公式为 Cn+1=Y0+X0Cn 其中Cn是向第0位(末位)的进位。 第1位向第2位的进位公式为 Cn+2=Y1+X1Cn+1=Y1+Y0X1+X0X1Cn 第2位向第3位的进位公式为 Cn+3=Y2+X2Cn+2=Y2+Y1X1+Y0X1X2+X0X1X2Cn 第3位的进位输出(即整个4位运算进位输出)公式为 Cn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+ X0X1X2X3Cn 设 G=Y3+Y2X3+Y1X2X3+Y0X1X2X3 P=X0X1X2X3 则 Cn+4=G+PCn (2.37)
3.算术逻辑运算的实现
上演示图中除了S0-S3四个控制端外,还有一个控制端 M,它使用来控制ALU是进行算术运算还是进行逻辑运算的。 当M=0时,M对进位信号没有任何影响。此时F 不仅与 本位的被操作数Y和操作数X 有关,而且与本位的进位输出,即 C 有关,因此M=0时,进行算术操作。 当M=1时,封锁了各位的进位输出,即C =0,因此各位的 运算结果F 仅与Y 和X 有关,故M=1时,进行逻辑操作。
这样,对一片ALU来说,可有三个进位输出。其中G称为进位发 生输出,P称为进位传送输出。 在电路中多加这两个进位输出的目的,是为了便于实现多片(组) ALU之间的先行进位,为此还需一个配合电路,称之为先行进位发生 器(CLA),下面还要介绍。 Cn+4是本片(组)的最后进位输出。逻辑表达式表明,这是一个先 行进位逻辑。换句话说,第0位的进位输入Cn可以直接传送到最高位 上去,因而可以实现高速运算。 用正逻辑表示的4位算术/逻辑运算单元(ALU)的逻辑电路图如 下图所示,它是根据上面的原始推导公式用TTL电路实现的。这个期 间的商业标号为74181ALU。
图2.12(b)示出了工作于负逻辑和正逻辑操作数方式的74181ALU方 框图。显然,这个器件执行的正逻辑输入/输出方式的一组算术运算和逻辑 操作与负逻辑输入/输出方式的一组算术运算和逻辑操作是等效的。
表2.6列出了74181ALU的运算功能表,它有两种工作方式。对正逻辑操作数 来说,算术运算称高电平操作,逻辑运算称正逻辑操作(即高电平为“1”,低电 平为“0”)。对于负逻辑操作数来说,正好相反。由于S -S 有16种状态组合, 因此对正逻辑输入与输出而言,有16种算术运算功能和16种逻辑运算功能。同样, 对于负逻辑输入与输出而言,也有16种算术运算功能和16种逻辑运算功能。
计算机组成原理
3
2.5 定点运算器的组成
运算器是数据的加工处理部件,是CPU的重要 组成部分; 最基本的结构中包含:算术/逻辑运算单元、数 据缓存寄存器、通用寄存器、多路转换器和数据总 线等逻辑构件。
2.5.2 多功能算术/逻辑 运算单元(ALU)
由一位全加器(FA)构成的行波进位加法器,它可以实现补码数的加 法运算和减法运算。但是这种加法/减法器存在两个问题: (1)由于串行进位,它的运算时间很长。假如加法器由n位全加器 构成,每一位的进位延迟时间为20ns,那么最坏情况下, 进位信号从最 低位传递到最高位而最后输出稳定,至少需要n*20ns,这在高速计算中 显然是不利的。 (2)就行波进位加法器本身来说,它只能完成加法和减法两种操作 而不能完成逻辑操作。 本节我们介绍的多功能算术/逻辑运算单元(ALU)不仅具有多种算术 运算和逻辑运算的功能,而且具有先行进位逻辑, 从而能实现高速运算。
2.5.4 定点运算器的基本结构
2.5.4 定点运算器的基本结构
本讲总结
1.ALU基本思想 全加器功能的扩展 2.逻辑串行进位与先行进位 先行进位表达式及图2.12 3.算数逻辑运算的实现 表2.6 4.两级先行进位的ALU 图2.13
2.逻辑表达式
控制参数S0 ,S1 ,S2 ,S3 分别控制输入Ai 和Bi ,产生Y和X 的函数。其中Yi是受S0 、S1控制的Ai和Bi的组合函数,而Xi是受S2 、 S3控制的Ai和Bi组合函数,其函数关系如表2.5所示。
表2.5 Xi,Yi与控制参数和输入量的关系
2.5 定点运算器的组成
2.5.3 内部总线
总线是计算机内各部件之间传送信息的公用的 一组连线。
由于计算机内部的主要工作过程是信息传送和 加工的过程,因此在机器内部各部件之间的数据传送 非常频繁。为了减少内部的传送线并便于控制,通常 将一些寄存器之间数据传送的通路加以归并,组成总 线结构,使不同来源的信息在此传输线上分时传送。
1. 基本思想
全加器的表达式为: Si = Ai i Ci B Ci+1 = AiBi + BiCi + AiCi 一位全加器内部逻辑图
Ci+
1
Si
C
A
B C
Ci
Ai
Bi
A
B
我们将Ai和Bi先组合成由控制参数S0,S1,S2,S3控制的组合函数Xi和Yi, 然后再将Xi,Yi和下一位进位数通过全加器进行全加。这样,不同的控制参数可 以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。 因此,一位算术/逻辑运算单元 的逻辑表达式为 Fi=Xi⊕Yi⊕Cn+i Cn+i+1=XiYi+YiCn+i+Cn+iXi 上式中进位下标用n+i代替原来 以为全加器中的i,i代表集成在一片 电路上的ALU的二进制位数。对于4位 一片的ALU,i=0,1,2,3。n代表 若干片ALU组成更大字长的运算器时 每片电路的进位输入,例如当4片组 成16位字长的运算器时,n=0,4,8, 12。
下图为由三态门组成的双向数据总线。
2.5.4 定点运算器的基本结构
运算器包括ALU\阵列乘除器\寄存器\多路开关\ 三态缓冲器\数据总线等逻辑部件。 运算器的设计,主要是围绕ALU和寄存器同数 据总线之间如何传送操作数和运算结果进行的。 在决定方案时,需要考虑数据传送的方便性和 操作速度,在微型机和单片机中还要考虑在硅片上 制作总线的工艺。计算机的运算器大体有如下
下面介绍如何用若干个74181ALU位片,与配套的74182先行进位部件CLA 在一起,构成一个全字长的ALU。 下图示出了用两个16位全先行进位部件级联组成的32位ALU逻辑方框图。在 这个电路中使用了八个74181ALU和两个74182CLA器件。很显然,对一个16位 来说,CLA部件构成了第二级的先行进位逻辑,即实现四个小组(位片)之间的 先行进位,从而使全字长ALU的运算时间大大缩短。