计算机组成原理 定点运算器的组成和结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理第八章
定点运算器的组成和结构
1. 算术逻辑单元(简称ALU)
•针对每一种算术运算,都必须有一个相对应的基本硬件配置,其核心部件是加法器和寄存器。当需完成逻辑运算时,势必需要配置相应的逻辑电路,而ALU电路是既能完成算术运算又能完成逻辑运算的部件。
一、ALU电路
下图是ALU框图。图中A i和B i为输入变量;K i为控制信号,K i的不同取值可决定该电路作哪一种算术运算或哪一种逻辑运算;F i是输出函数。
现在ALU电路已制成集成电路芯片,如74181是能完成四位二进制代码的算逻运算部件ALU是一种功能较强的组合逻辑电路。它能进行多种算术运算和逻辑运算。ALU的基本逻辑结构是超前进位加法器,它通过改变加法器的进位产生函数G和进位传递函数P来获得多种运算能力。
二、快速进位链
随着操作数位数的增加,电路中进位的速度对运算时间的影响也越大,为了提高运算速度,本节将通过对进位过程的分析设计快速进位链
引例:简单串行级联的4位全加器如下图所示:
将4个全加器相连可得4位加法器(图2.7),但其加法时间长。这是因为其位间进位是串行传送的。本位全加和Fi必须等低位进位Ci-1来到后才能进行,加法时间与位数有关。只有改变进位逐位传送的路径,才能提高加法器工作速度。解决办法之一是采用“超前进位产生电路”来同时形成各位进位,从而实行快速加法。我们称这种加法器为超前进位加法器。根据各位进位的形成条件,可分别写出Ci的逻辑表达式:
C1=X1Y1+(X1+Y1)C0=G1+P1C0
其中: Gi=Xi·Yi 称为进位产生函数
Pi=Xi+Yi 称为进位传递函数
Gi的意义是:当XiYi 均为“1”时定会产生向高位的进位
Pi的意义是:当Xi和Yi中有一个为“1”时,若同时低位有进位输入,则本位也将向高位传送进位。写成通用式为:
C1=G1+P1C0C2=G2+P2C1=G2+P2(G1+P1C0)= G2+P2G1+P2P1C0
C3=G3+P3 G2+ P3 P2G1+ P3 P2P1C0
C4=G4+P4 G3+ P4 P3 G2+ P4 P3 P2G1+ P4 P3 P2P1C0
当全加器的输入均取反码时,它的输出也均取反码。(应用反演律采用与非、或非、与或非表示)将上式改写成如下:
根据上式可画得“超前进位产生电路”及四位超前进位加法器的逻辑图如下图2.8。
基本思想---------- 由全加器扩展开来:
Fi = Ai ⊕Bi ⊕Ci
Ci+1=AiBi + BiCi + CiAi 加入控制参数s0~s3,对输入 进行控制.此时全加器的输 入变为Xi, Yi
一位全加器(FA)的逻辑表达式为 1. 逻辑表达式
下图为控制参数s0~s3与输入量的关系:
S0 S1 Yi S2 S3 Xi 0 0 ~Ai 0 0 1 0 1 ~AiBi 0 1 ~Ai+~Bi 1 0 ~Ai~Bi 1 0 ~Ai+Bi 1 1 0 1 1 ~Ai
由上表,可得Xi,Yi 的逻辑表达式(化简后为)
Xi= S3AiBi + S2AiBi Yi = Ai +S0Bi +S1Bi
故: XiYi=Yi
代入进位表达式,简化为:
Cn+i+1 = Yi + XiCn+i
综上所述:
ALU 的某一位逻辑表达式可写为:
Xi=S3AiBi + S2AiBi Yi=Ai + S0Bi + S1Bi Fi=Yi ⊕ Xi ⊕ Cn+I Cn+i+1=Yi +XiCn+I
4位之间采用先行进位,则由上式,每一位的进位公式可递推如下:
第0位向第一位的进位: Cn+1 = Y0 + X0Cn
第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+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn
设: G =Y3+Y2X3+Y1X2X3+Y0X1X2X3
故:
这样,对一片ALU来说,可有三个进位输也,其中,G称为进位发生输出,P称为进位传送输出.在电路中多加这两个进位输出的目的是为了便于实现多片ALU之间的先行进位.(第0位的进位输入Cn可以直接传到最高位上去,从而实高速运算). 下面通过介绍SN74181型四位ALU中规模集成电路了介绍ALU的原理。
•它能执行16种算术运算和16种逻辑运算,M是状态控制端,M=H,执行逻辑运
算;M=L执行算术运算。S0 ~S3是运算选择端,它决定电路执行哪种算术运算或逻辑运算。
以正逻辑为例,B3~B0和A3~A0是两个操作数,F3~F0为输出结果。C-l表示最低位的外来进位,C n+4是7418l向高位的进位;P、G可供先行进位使用。M用于区别算术运算还是逻辑运算;S3~S0的不同取值可实现不同的运算。例如,当M=1,S3~S0=0110时,74181作逻辑运算A⊕B;当M=0,S3~S0=0110时,74181作算术运算。由上表可见,在正逻辑条件下,M=0,S3~S0=0110,且C-l=1时,完成A减B减1的操作。若想完成A减B运算,可使C-l=0。需注意,74181算术运算是用补码实现的,其中减数的反码是由内部电路形成的,而末位加“1”,则通过C-l=0来体现。尤其要注意的是,ALU为组合逻辑电路,因此实际应用ALU时,其输入端口A和B必须与锁存器相连,而且在运算的过程中锁存器的内容是不变的。其输出也必须送至寄存器中保存。
其引脚图如下:
74181ALU设置了P和G两个本组先行进位输出端,如果将四片74181的P,G端送到74181先行进位部件CLA,又可实现第二级的先行进,即组与组间的先行进位.
假设4片74181的先行进位输出依次为P0,G0,P1,G1,P2,G2,P3,G3,那么先行进位部件74182CLA所提供的进位逻辑关系如下:
Cn+2 = G1+P1Cn+1 = G1+G0P1+P0P1Cn
Cn+3 = G2+P2Cn+2 = G2+G1P2+G0P1P2+P0P1P2Cn
Cn+4 = G3+P3Cn+3 = G3+G2P3+G1P1P2+G0P1P2P3+P0P1P2P3Cn
其中: P* = P0P1P2P3
G* = G3+G2P3+G1P1P2+G0P1P2P3
由上述表达式,用TTL器件实现的成组先行进位部件74182的逻辑电路图如下: