《运算方法和运算器》由会员分享,可在线阅读,更多相关《运算方法和运算器(115页珍藏版)》请在金锄头文库上搜索。
1、2.5 定点运算器的组成n2.5.1 逻辑运算n2.5.2 多功能算术逻辑运算单元n2.5.3 内部总线n2.5.4 定点运算器的基本结构2.5.1 逻辑运算n计算机中除了进行加、减、乘、除等基本 算术运算外,还可对两个或一个逻辑数进 行逻辑运算。n所谓逻辑数是指不带符号的二进制数。利 用逻辑运算可以进行两个数的比较,或者 从某个数中选取某几位等操作。n计算机中的逻辑运算,主要是指逻辑非、 逻辑加、逻辑乘、逻辑异四种基本运算。2.5.1 逻辑运算(续1)n逻辑非也称求反。对某数进行逻辑非运算,就是 按位求反,常用变量上方加一横来表示。 设一个数表示成: x0x1x2 xn对求逻辑非,则有:z0
2、z1z2 znzi xi (i0,1,2,n) 1.逻辑非运算 2.5.1 逻辑运算(续2)例21: x101001011,x211110000 求x1,x2 解: x1 10110100x2 00001111 2.5.1 逻辑运算(续4)例22:10100001,10011011, 求。 解: 1 0 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 即 101110112.5.1 逻辑运算(续5)n 对两数进行逻辑乘,就是按位求它们的“与”,所 以逻辑乘又称“逻辑与”,常用记号“”或“”来 表示。n设有两数和,它们表示为 x0x1x2 xny y0y1
3、y2 yn 若 z0z1z2 zn 则 zi xiyi (i0,1,2,n) 3.逻辑乘运算 2.5.1 逻辑运算(续6)例23:10111001,11110011, 求。 解: 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 1 0 0 0 1 即 101100012.5.1 逻辑运算(续7)对两数进行异就是按位求它们的模2和,所以逻辑 异又称“按位加”,常用记号“”表示。 n设有两数和: x0x1x2 xny y0y1y2 yn 若和的逻辑异为: z0z1z2 zn 则 zi xiyi (i0,1,2,n) 4.逻辑异运算 2.5.1 逻辑运算(续8)例23:1
4、0101011,11001100, 求。 解: 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 即 01100111 2.5.1 逻辑运算(续9)事实上,逻辑加还可以通过逻辑乘和逻辑非来实现:iii =ii 同样,逻辑乘也可以用逻辑加和逻辑非来实现 :iii ii 2.5.2 多功能算术/逻辑运算单元(ALU) n由一位全加器(FA)构成的行波进位加法 器,它可以实现补码数的加法运算和减 法运算。 n这种加法/减法器存在两个问题:一是由于串行进位,它的运算时间很长。假如加 法器由n位全加器构成,每一位的进位延迟时间为 20ns,那么最坏情况下,进
5、位信号从最低位传递 到最高位而最后输出稳定,至少需要n*20ns,这 在高速计算中显然是不利的。n二是就行波进位加法器本身来说,它只能完成 加法和减法两种操作而不能完成逻辑操作。本 节我们介绍的多功能算术/逻辑运算单元(ALU) 不仅具有多种算术运算和逻辑运算的功能,而 且具有先行进位逻辑,从而能实现高速运算。2.5.2 多功能算术/逻辑运算单元(ALU)续1 )一位全加器(FA)的逻辑表达式为:FiAiBiCiCi1AiBiBiCiCiAi 1.基本思想将Ai和Bi先组合成由控制参数 S0,S1,S2,S3控制的组合函数Xi和Yi,然后 再将Xi,Yi和下一位进位数通过全加器进行 全加。这样
6、,不同的控制参数可以得到不同 的组合函数,因而能够实现多种算术运算和 逻辑运算。因此,一位算术/逻辑运算单元 的逻辑表达式为:FiXiYiCniCni1XiYiYiCniCniXi图2.10 ALU的逻辑结构原理框图2.5.2 多功能算术/逻辑运算单元(ALU)续2上式中进位下标用ni代替原来全 加器中的i,i代表集成在一片电路上的ALU 的二进制位数。对于4位一片的ALU,i 0,1,2,3。n代表若干片ALU组成更大字长的运 算器时每片电路的最低位计数,例如当4片 组成16位字长的运算器时,n0,4,8,12。控制参数S0 ,S1 ,S2 ,S3 分别控制输入Ai和Bi,产生Y和X的函数。
7、其中Yi是受S0 ,S1控制的Ai和Bi的组合函数,而Xi是 受S2 ,S3控制的Ai和Bi组合函数,其函数关系如表2.4所示。2.逻辑表达式表2.4 与控制参数和输入量的关系Ai 1 101 1Ai + Bi1 0Ai Bi1 0Ai + Bi0 1 Ai Bi0 110 0Ai0 0XiS2 S3YiS0 S1根据上面所列的函数关系,即可列出Xi和Yi的逻辑表达式:XiS2S3S2S3(AiBi)S2S3(AiBi)S2S3AiYiS0S1AiS0S1AiBiS0S1AiBi根据上面所列的函数关系,化简Yi的逻辑表达式得:YiS0S1AiS0S1AiBiS0S1AiBiAi(S0S1S0S
8、1BiS0S1Bi)Ai(S0S1(BiBi)S0S1BiS0S1Bi)Ai(S0BiS1Bi) Ai (S0Bi )(S1Bi)Ai (S0S1S0Bi S1Bi)AiS0BiS1Bi根据上面所列的函数关系,化简Xi的逻辑表达式得:XiS2S3S2S3(AiBi)S2S3(AiBi)S2S3AiS2S3S2AiS2BiS3AiS3BiS2S3AiS2S3S2AiS2BiS3Bi Ai(S3 S2)S2S3S2AiS2BiS3Bi AiS3 AiS2S2S3AiS2BiS3Bi AiS3S2S3S2Ai Ai Ai Ai (Bi Bi)S2BiS3Bi AiS3 Bi Bi S2(S3 AiB
9、i)Ai (S3 AiBi)Bi (S3 AiBi) (S3 AiBi) ( S2 AiBi) S3AiBiS2AiBiAi 1 101 1Ai + Bi1 0Ai Bi1 0Ai + Bi0 1 Ai Bi0 110 0Ai0 0XiS2 S3YiS0 S1进一步化简可得:XiS3AiBiS2AiBiYiAiS0BiS1BiXi Yi S3AiBiS2AiBi AiS0BiS1Bi Yi将Xi 和Yi代入前面的进位表达式,可简化为:Cn+i+1YiXi Cn+ i=S3AiBiS2AiBi AiS0BiS1BiAiS0BiS1Bi Yi定点运算器的组成综上所述,ALU的某一位逻辑表达式如下:
10、XiS3AiBiS2AiBiYiAiS0BiS1BiFiXiYiCniCn+i+1YiXi Cn+ i(2.36)4位之间采用先行进位公式,根据式(2.36),每 一位的进位公式可递推如下:第0位向第1位的进位公式为:Cn1Y0X0Cn其中Cn是向第0位(末位)的进位。第1位向第2位的进位公式为:Cn2Y1X1Cn1Y1Y0X1X0X1Cn 第2位向第3位的进位公式为:Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn第3位的进位输出(即整个4位运算进位输出)公式为: Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn定点运算器的组成设: GY3Y2X3
11、Y1X2X3Y0X1X2X3PX0X1X2X3则:Cn4GPCnG称为进位发生输出,P称为进位传送输出。在电路中 多加这两个进位输出的目的,是为了便于实现多片(组 )ALU之间的先行进位,为此还需一个配合电路,称之为 先行进位发生器(CLA) 。Cn+4是本片(组)的最后进位输出。逻辑表达式表 明,这是一个先行进位逻辑。换句话说,第0位的进位输 入Cn可以直接传送到最高位上去,因而可以实现高速运 算。设: GY3Y2X3Y1X2X3Y0X1X2X3PX0X1X2X3则:Cn4GPCn定点运算器的组成图2.11(a)示出了用负逻辑表示的4位算术/逻辑运算单元(ALU)的逻辑电路图(CAI演示),
12、它是根据上面的原始推导公式用TTL电路实现的。这个器件的商业标号为74181ALU。M (Y2Y1X2 Y0X1X2X0X1X2Cn)M Cn3M (Y1Y0X1X0X1Cn)M Cn2Y3Y2X3Y1X2X3Y0X1X2X3 GX0X1X2X3 PP G+Cn G=G+P Cn=Cn+4 =Cn+4YiAi S0BiS1Bi XiS3Ai BiS2AiBiM(Y0X0Cn) M Cn1除了S0S3四个控制端外,还有一个控制端 ,它使用来控制ALU是进行算术运算还是进行逻 辑运算的。当0时,进行算术操作。对进位信号 没有任何影响。此时F不仅与本位的被操作数Y和 操作数X有关,而且与本位的进位输
13、出,即C有关。当1时,进行逻辑操作。封锁了各位的 进位输出,即C 0,各位的运算结果F仅与Y和X有 关。3.算术逻辑运算的实现 2.5.2多功能算术/逻辑运算单元(ALU)续8图2.11(b)示出了工作于负逻辑和正逻辑操作数方式的74181ALU方框图。显然,这个器件执行的正逻辑输入/输出方式的一组算术运算和逻辑操作与负逻辑输入/输出方式的一组算术运算和逻辑操作是等效的。表2.5列出了74181ALU的运算功能表,它有两种 工作方式。对正逻辑操作数来说,算术运算称高电平操作,逻辑运算称正逻辑操作(即高电平为“1”,低电 平为“0”)。对于负逻辑操作数来说,正好相反。由于S0 S3有16种状态组
14、合,因此对正逻辑输入与输出而言,有 16种算术运算功能和16种逻辑运算功能。同样,对于负逻辑输入与输出而言,也有16种算术运算功能和16种逻辑运算功能。表2.5 74181ALU算术/逻辑运算功能表 注意:表2.5中算术运算操作是用补码表示法来表示的。其中“加”是指算术加,运算时要考虑进位,而符号“”是指“逻辑加”。其次,减法是用补码方 法进行的,其中数的反码是内部产生的,而结果输出“A减B减1”,因此做减法时需在最末位产生一个强迫进位(加1),以便产生“A减B”的结果。另外,“AB”输出端可指示两个数相等,因此它与其他ALU的“AB”输出端按“与”逻辑连接后 ,可以检测两个数的相等条件。2.5.2多功能算术/逻辑运算单元(ALU)续134.两级先行进位的ALU 74181ALU设置了P和G两个本组先行进位输 出端。如果将四片74181的P,G输出端送入到 74182先行进位部件(CLA),又可实现第二级的 先行进位,即组与组之间的先行进位。假设4片(组)74181的先行进位输出依次 为P0,G0,G1,P1,P2,G2,P3,G3, 74182CLA所提供的进 位逻辑关系如下: 2.5.2多功能算术/逻辑运算单元(ALU)续14 CnG0P0CnCnG1P1CnG1G0P1P0P1CnCnG2P2CnG2G1P2G0P1P2P0P1P2Cn (2.38)Cn4 G3