《第6讲 多功能算术与逻辑运算单元ALU》由会员分享,可在线阅读,更多相关《第6讲 多功能算术与逻辑运算单元ALU(40页珍藏版)》请在金锄头文库上搜索。
1、信息工程系 系统结构教研室,一、算术逻辑运算的实现,计算机中最基本的算术运算是加法运算,不论加、减、乘、除运算最终都可以归结为加法运算。所以首先讨论最基本、最核心的运算部件加法器,以及并行加法器的进位问题。 加法器是由全加器和其它必要的逻辑电路组成的,所以我们从全加器开始讨论。,信息工程系 系统结构教研室,1、全加器(FA),全加器(FA)是最基本的运算单元,由它构成加法器。 全加器有三个输入量:操作数Ai、Bi、以及低位传来的进位信号Ci-1 。 全加器有两个输出量:本位和Si、以及向高位的进位信号Ci。,信息工程系 系统结构教研室,全加器的逻辑方程和电路,根据真值表得: Si=AiBiCi
2、-1 Ci=AiBi+(AiBi)Ci-1 Si : 本位和 Ci : 向高位的进位,实现电路,逻辑框图,一个全加器只完成一位加法,信息工程系 系统结构教研室,全加器构成加法器,全加器并不存储信息,可用门电路来实现。用全加器能够方便地构成加法器。加法器分为串行加法器和并行加法器。 串行加法器只有一个全加器,数据逐位串行送入加法器进行计算。由于运算速度慢,一般不用。 并行加法器则由若干个这样的全加器构成,各位数据同时运算。并行加法器的位数与操作数的位数相等。并行加法器的最长运算时间主要取决于进位信号的传递时间。例如:1111和0001相加,最低位产生的进位将逐位影响到最高位. 由此可见,提高并行
3、加法器速度的关键是尽量加快进位产生和传递的速度。,信息工程系 系统结构教研室,2、进位产生与传递,进位链的概念: 并行加法器中的每一个全加器都有一个从低位送来的进位输入和一个传送给高位的进位输出。我们把构成进位信号产生和传递的逻辑网络称为进位链。 进位链上每一位的进位表达式为: Ci=AiBi+(AiBi)Ci-1 设Gi=AiBi ,称为进位产生函数 Pi=AiBi ,称为进位传递函数 进位表达式 Ci=Gi+PiCi-1,信息工程系 系统结构教研室,串行进位,把n个全加器串联起来,就可以实现两个n位数的相加。这种加法器称为串行进位的并行加法器,串行进位又叫行波进位。,其中:C1=G1+P1
4、C0 C2=G2+P2C1 Cn=Gn+PnCn-1,串行进位的并行加法器,总的延迟时间正比于字长,字长越长,总延迟时间也越长。 若一位进位需2ty时间,完成n位进位就需要2nty. 要提高加法运算速度,必须改进进位方式。,信息工程系 系统结构教研室,设n位并行加法器的序号是:第1位为最低位,第n位为最高位,则各进位符号的逻辑式如下:,信息工程系 系统结构教研室,为了提高运算速度,现在广泛采用并行进位(先行进位)结构,即并行地形成各级进位。逻辑式如下:,进位传递函数 Pi=Xi Yi 进位产生函数 Gi=XiYi,信息工程系 系统结构教研室,并行进位的特点,并行进位的特点是各级进位信号同时形成
5、,与字长无关,提高了整体运算速度 。并行进位又叫先行进位。 最长延迟时间仅为2ty。 随着加法器位数的增加,Ci的逻辑表达式会变得越来越长,输入变量会越来越多,电路结构也会变得越来越复杂,导致电路实现也越来越困难。 并行进位方式需继续改进,才能有实用价值。这就是下面要介绍的分组进位方式。,信息工程系 系统结构教研室,以16位加法器为例,将其分为4组,每组4位。 在组内,按照并行进位函数直接产生C1C4,这些进位可同时得到。实现这种进位逻辑的电路称为4位先行进位电路(CLA),如74181ALU。 利用这种4位一组的CLA电路和4位全加器可以构成4位CLA加法器。注意,4位CLA加法器包含了两部
6、分逻辑:4位全加器和4位一组的先行进位链,这个组内的进位为一级进位。 在组间,每个组的进位输入是前一个组的进位输出,而每个组的进位输出是下一个组的进位输入.,构成16 位加法 器很容 易实现,单级先行进位,信息工程系 系统结构教研室,单级先行进位(续一),上述组内并行、组间串行的进位方式也称为单级先行进位方式,原理如下图所示。,信息工程系 系统结构教研室,组内并行、组间并行的进位链,第一小组的有关进位逻辑: 其余各组可照此类推,仅下标序号相应变化。如 C1是第一组产生的组间进位,作为第二小组的初始进位。,信息工程系 系统结构教研室,信息工程系 系统结构教研室,单级先行进位(续二),组内并行、组
7、间串行进位的时间图(16位)如下: 完成进位时间8ty. 进位时间与组数成正比,组数越多,进位时间越长。,信息工程系 系统结构教研室,多级先行进位,为说明问题,我们不妨仍以16位加法器为例,仍然4位一组,分成4个小组,先就第一小组的进位输出函数C4做一下分析: C4 = G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 G1* P1* = G1* +P1*C0 G1*称为组进位产生函数,P1*称为组进位传递函数;这两个函数类似于进位产生函数G和进位传递函数P.,信息工程系 系统结构教研室,多级先行进位(续一),四个组内的最高进位C16、C12、C8、C4可以分别表示为: C
8、4 = G1* + P1* C0 C8 = G2* + P2* C4 C12 = G3* + P3* C8 C16 = 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有关,所以能同时产生。,信息工程系 系
9、统结构教研室,多级先行进位(续二),组内进位信号能同时产生、组间进位信号也能同时产生,由此可以构成多级并行进位逻辑。16位2级先行进位加法器如下图所示。,信息工程系 系统结构教研室,多级先行进位(续三),问题是这4个组间进位信号如何用硬件来产生呢?对于多级先行进位的实现可以按如下思路来理解: 先把单级先行进位加法器的串行进位链断开; 增加一级先行进位链,这个新增加的先行进位链的进位称为二级进位; 组间进位信号C4、C8、C12、C16由二级进位链来产生,其逻辑关系式已经得到; 让一级进位链多产生两个辅助函数Gi*和Pi*,并且作为二级进位链的输入。,信息工程系 系统结构教研室,多级先行进位(续
10、四),16位2级先行进位时间图,进位产生次序如下: 产生第一小组的C1C3、所有组进位产生函数Gi*和组进位传递函数Pi*,时间为2ty. 由CLA电路产生第二、三、四小组的组间进位信号C4、C8、C12、C16,时间为2ty. 产生第二、三、四小组的组内进位信号C5、C6、C7、C9、C10、C11、C13、C14、C15,时间为2ty.,信息工程系 系统结构教研室,4、多功能算术逻辑部件ALU,前面介绍了运算器的算术运算功能,为了完成多种算术逻辑运算,需要将加法器的功能进行扩展,扩展的基本思想如下:,参加运算的两个数Ai、Bi和低位进位Ci-1先不进行全加,先把两个输入Ai、Bi和四个控制
11、参数S0、S1、S2、S3进行组合,形成函数Xi和Yi,然后再将Xi、Yi和低位进位Ci-1通过全加器进行全加。这样一来,控制参数不同,得到的组合函数也不同,从而实现多种算术和逻辑运算。,信息工程系 系统结构教研室,一位全加器(FA)的逻辑表达式为 FiAiBiCi Ci1AiBiBiCiCiAi 将Ai和Bi先组合成由控制参数S0,S1,S2,S3控制 的组合函数Xi和Yi,然后再将Xi,Yi和下一位进位数通 过全加器进行全加。这样,不同的控制参数可以得到 不同的组合函数,因而能够实现多种算术运算和逻辑 运算。因此,一位算术/逻辑运算单元的逻辑表达式为 FiXiYiCni Cni1XiYiY
12、iCniCniXi,定点运算器的组成,1.基本思想,图2.10 ALU的逻辑结构原理框图,信息工程系 系统结构教研室,上式中进位下标用ni代替原来以为全 加器中的i,i代表集成在一片电路上的ALU的 二进制位数。 对于4位一片的ALU,i0,1,2,3。 n代表若干片ALU组成更大字长的运算器时每 片电路的最低位计数,例如当4片ALU组成16 位字长的运算器时,n0,4,8,12。,定点运算器的组成,信息工程系 系统结构教研室,控制参数S0 ,S1 ,S2 ,S3 分别控制输入Ai和Bi,产生Y和X 的函数。其中Yi是受S0 ,S1控制的Ai和Bi的组合函数,而Xi是受 S2 ,S3控制的Ai
13、和Bi组合函数,其函数关系如表2.4所示。,定点运算器的组成,2.逻辑表达式,表2.4 与控制参数和输入量的关系,信息工程系 系统结构教研室,定点运算器的组成,综上所述,ALU的某一位逻辑表达式如下: XiS3AiBiS2AiBi YiAiS0BiS1Bi FiXiYiCni Cn+i+1YiXi Cn+ i,(2.36),信息工程系 系统结构教研室,例如: S3S2S1S00000 代入:,四个控制参数则可以处理16种算术逻辑运算,每种运算只针对1位二进制编码 思考:如何设计4位ALU?16位呢?,功能之一:16种算术逻辑运算,信息工程系 系统结构教研室,信息工程系 系统结构教研室,功能之二
14、:先行进位逻辑(实现高速运算),4位ALU 问题1:片内是串行进位还是并行进位?,信息工程系 系统结构教研室,4位之间采用先行进位公式,根据式(2.36),每一 位的进位公式可递推如下: 第0位向第1位的进位公式为: Cn1Y0X0Cn 其中Cn是向第0位(末位)的进位。 第1位向第2位的进位公式为: Cn2Y1X1Cn1Y1Y0X1X0X1Cn 第2位向第3位的进位公式为: Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn 第3位的进位输出(即整个4位运算进位输出)公式为: Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn,定点运算器的组成,设:
15、GY3Y2X3Y1X2X3Y0X1X2X3 PX0X1X2X3 则:Cn4GPCn,(G),(P),信息工程系 系统结构教研室,这样,对每一片ALU来说,都有三个进位输出。其中 G称为进位发生输出,P称为进位传送输出。在电路中多 加这两个进位输出的目的,是为了便于实现多片(组) ALU之间的先行进位,为此还需一个配合电路,称之为先 行进位发生器(CLA),下面还要介绍。 Cn+4是本片(组)的最后进位输出。逻辑表达式表明, 这是一个先行进位逻辑。换句话说,第0位的进位输入 Cn可以直接传送到最高位上去,因而可以实现高速运算。,定点运算器的组成,设: GY3Y2X3Y1X2X3Y0X1X2X3
16、PX0X1X2X3 则:Cn4GPCn (3个进位输出项),信息工程系 系统结构教研室,定点运算器的组成,图2.11(a)示出了用负逻辑表示的4位 算术/逻辑运算单元(ALU)的逻辑电路图 ,它是根据上面的原始推导公式用TTL电路实现的。 这个器件的商业标号为74181ALU。,信息工程系 系统结构教研室,前面说过,74181ALU设置了P和G两个本组先行进 位输出端。如果将四片74181的P,G输出端送入到 74182先行进位部件(CLA),又可实现第二级的先行 进位,即:组与组之间的先行进位。 假设4片(组)74181的先行进位输出依次为: P0,G0; G1,P1; P2,G2; P3,G3,那么参考式(2.37)的进 位逻辑表达式,先行进位部件74182CLA所提供的进位 逻辑关系如下:,定点运算器的组成,两级先行进位的ALU,CnG0P0Cn CnG1P1CnG1G0P1P