3.8.3 算术逻辑运算单元(ALU)
计算机中运算的功能是由运算器完成的,而运算器的核心部件是加法器和寄存器。算术运算就是数值直接做运算,而逻辑运算需要用到逻辑电路。既能完成逻辑运算又能完成算术运算的电路称为ALU 电路。图3.5为ALU 电路原理图。
图3.5 ALU 电路原理图
在图3.5中,A 和B为输入变量;F 是输出结果;K 为控制端,它输入的信号的不同决定电路是算术运算还是逻辑运算。
加法器可以实现补码数的加法运算和减法运算。但是这种加法/减法器存在两个问题:一是由于串行进位,它的运算时间很长。假如加法器由n 位全加器构成,每一位的进位延迟时间为20 ns,那么在最坏情况下,进位信号从最低位传递到最高位而最后输出稳定,至少需要n×20 ns,这在高速计算中显然是不利的。二是就加法器本身来说,它只能完成加法和减法两种操作而不能完成逻辑操作。本节我们介绍的多功能算术/逻辑运算单元(ALU)不仅具有多种算术运算和逻辑运算的功能,而且具有先行进位逻辑,从而能实现高速运算。
全加器的逻辑表达式为:
Fi=Ai⊕Bi⊕Ci
Ci+1=AiB i+BiC i+Ci A i
我们将Ai 和B i 先组合成由控制参数S 0S 1S 2S 3 控制的组合函数X i 和Y i,然后再将X i、Y i 和下一位进位数通过全加器进行全加。这样,不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。图3.6为ALU 的逻辑图。
一位算术/逻辑运算单元的逻辑表达式为
图3.6 ALU 逻辑图
F i=X i⊕Y i⊕X n+i
Cn+i+1=X iY i+Y iC n+i+Cn+i X i
控制参数S 0S 1S 2S 3 分别控制输入A i 和B i,产生X i 和Y i。其中Y i 是受S 0S 1 控制的A i 和B i 的组合函数,而X i 是受S 2S 3 控制的A i 和B i 组合函数。因此,可得X i 和Y i 的逻辑表达式:
X i=S 2S 3+S 2S 3(A i+Bi)+S 2S 3(A i+Bi)+S 2S 3 A i
Y i=S 0S 1 Ai+S 0SAiB i+S 0SAiB i
图3.7 负逻辑操作数方式的74181ALU 方框图
化简可得ALU 的逻辑表达式为:
图3.7 显示了工作于负逻辑操作数方式的74181ALU 方框图。这个器件执行的正逻辑输入/输出方式的一组算术运算和逻辑操作与负逻辑输入/输出方式的一组算术运算和逻辑操作是等效的。