1、第3章 运算器与运算方法3.1加法器3.1加法器 运算器是计算机中的主要功能部件之一,是对二进制数据进行各种算术和逻辑运算的装置。根据数据编码类型,计算机中的运算部件可分为定点运算器和浮点运算器。运算器中的各种运算都是分解成加法运算进行的,因此加法器是运算器的基本部件。3.1.1半加器与全加器(1)半加器 完成对两个一位二进制数相加,不考虑低位进位的电路,称为半加器。表3-1是两个二进制数Xi和Yi相加的真值表,Hi是半加和,Ci表示向高位的进位。(2)全加器多位二进制数据相加,必须考虑位和位之间的进位。这种考虑低位进位的电路称为全加器。表3-2是全加运算的真值表,其中Xi、Yi表示第i位的加
2、数,Ci-1表示第i位的进位输入,Fi是第i位的全加和,Ci是第i位的进位输出。3.1.2串行进位与并行进位 半加器和全加器只能进行一位二进制数的加法运算,可以用于组成n位加法器。根据运算方法的不同,加法器分为串行加法器和并行加法器。(1)串行加法器 将n个加法器串接起来,进位信号顺序从低位传到高位,这样的加法器电路称为串行加法器或行波进位加法器。图3-4是4位串行加法器,实现了数据X=X3X2X1X0和Y=Y3Y2Y1Y0的逐位相加,得到二进制和F=F3F2F1F0,以及进位输出C4。(2)并行进位加法器 要提高加法器的运算速度,可以预先形成各位的进位,将进位信号同时送到各位加法器的进位输入
3、端,全部的全加器同时运算,两数的加法可以一次完成。这种预先生成进位的方法称为先行进位或并行进位。采用并行进位的加法器称为先行进位加法器。(2)并行进位加法器 对于4位加法器,进位C1、C2、C3、C4的表达式为:C1=X1Y1+(X1+Y1)C0 C2=X2Y2+(X2+Y2)C1=X2Y2+(X2+Y2)X1Y1+(X2+Y2)(X1+Y1)C0 C3=X3Y3+(X3+Y3)C2=X3Y3+(X3+Y3)X2Y2+(X3+Y3)(X2+Y2)X1Y1+(X3+Y3)(X2+Y2)(X1+Y1)C0 C4=X4Y4+(X4+Y4)C3=X4Y4+(X4+Y4)X3Y3+(X4+Y4)(X3+
4、Y3)X2Y2+(X4+Y4)(X3+Y3)(X2+Y2)X1Y1+(X4+Y4)(X3+Y3)(X2+Y2)(X1+Y1)C0(2)并行进位加法器 这样的进位产生电路非常复杂,为了简化,可以定义两个辅助函数:Pi=Xi+Yi Gi=XiYi Pi表示进位传递函数,表示这一位的两个输入数据位有一个为1,如果低位进位输入为1,则将向高位产生进位输出。Gi表示进位产生函数,表示两个输入数据都是1,则产生进位输出。(2)并行进位加法器 将Pi、Gi代入前面的C1C4的表达式中,便可得:C1=G1+P1C0 C2=G2+P2G1+P2P1C0 C3=G3+P3G2+P3P2G1+P3P2P1C0 C4
5、=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0(2)并行进位加法器 根据这些表达式构成的C1C4的电路,称为先行进位产生电路。(2)并行进位加法器 采用这种先行进位电路的4位加法器逻辑图(3)组间串行进位加法器 采用前述先行进位表达式构成的16位或32位加法器,电路将非常复杂。将4位先行进位加法器看成是一个加法单元,即4位一组,这样可以将多个组串接起来,构成4n位的加法器。(3)组间串行进位加法器 图3-7是4个4位先行进位加法器串接起来构成的16位加法器。这个16位加法器各组间的进位信号是串行传送的,组内的进位信号是并行传送的。(4)组间并行进位加法器 将并行概念应用
6、到组间进位的产生逻辑表达式。定义Cm表示4位加法器的进位输出,Pm表示4位加法器的进位传递输出,Gm表示4位加法器的进位产生输出,有表达式:Pm=P4P3P2P1 Gm=G4+P4G3+P4P3G2+P4P3P2G1 Cm=Gm+PmC0 将上式用于4组16位加法器中,有每组的进位输出表达式:Cm1=Gm1+Pm1C0 Cm2=Gm2+Pm2Cm1=Gm2+Pm2Gm1+Pm2Pm1C0 Cm3=Gm3+Pm3Cm2=Gm3+Pm3Gm2+Pm3Pm2Gm1+Pm3Pm2Pm1C0 Cm4=Gm4+Pm4Cm3=Gm4+Pm4Gm3+Pm4Pm3Gm2+Pm4Pm3Pm2Gm1+Pm4Pm3P
7、m2Pm1C0(4)组间并行进位加法器 根据上面的逻辑表达式构成组间先行进位16位加法器3.1.3算术逻辑运算部件 运算器的核心是算术逻辑单元ALU(Arithmetic and Logic Unit),用于完成数据的算术运算和逻辑运算。ALU通常表示为两个输入口端口,一个输出口端口和多个功能控制信号端的一个逻辑符号。如图3-9。两个输入端口分别接受参加运算的两个操作数,运算的结果由输出端口送出。功能控制信号用于决定ALU所执行的运算功能。3.1.3算术逻辑运算部件本节介绍国际流行的美国商售4位ALU中规模集成电路SN74181。(1)SN74181逻辑符号SN74181能对两个4位二进制进行16种算术运算和16种逻辑运算。它的基本逻辑结构是先行进位加法器。其逻辑符号如图3-10。(4)74181应用 使用74181可组成字长为4的倍数的ALU。图3-12是用4位74181芯片进位信号串接组成的16位ALU。(4)74181应用 根据74181提供的G、P信号,可以实现芯片之间的并行运算。(4)74181应用 实现上述逻辑式的电路逻辑图如图3-13。这个电路被称为片间先行进位发生器(4)74181应用 图3-14是用4片74181和1片74182芯片组成的16位快速ALU。