4.运算器ALU
文章目录
- 4.运算器ALU
- 4.1逻辑运算
- 非(NOT)
- 与(AND)
- 或(OR)
- 异或(XOR)
- 同或(XNOR)
- 4.2加法器
- 4.2.1一位全加器
- 4.2.2串行加法器
- 4.2.3并行加法器
- 4.3ALU功能与结构
运算器由 算术逻辑单元ALU和若干 通用寄存器(用于暂存操作数和中间结果),如 累加器ACC, 乘商寄存器MQ, 操作数寄存器X, 变址寄存器IX, 基址寄存器BR等组成。其中 ACC,MQ,X是必须有的。
运算器的操作和操作种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂存在运算器中。
4.1逻辑运算
命题联结词
非 | 与 | 或 | 同或 | 异或 | |
---|---|---|---|---|---|
其他名称 | 非,反,逻辑否 | 与,逻辑乘,逻辑积 | 或,逻辑加,逻辑和 | 同或 | 异或,模2加 |
符号(数电) | ¬A Ā A’ ~A | ∧ · × | ∨ + | ⊙ | ⊕ |
符号(计算机位运算) | ~ | && | || | ^ | |
符号(离散) | ¬ | ∧ | ∨ | ↔ | ⊕ |
使用的联结词(离散) | 否定联结词 | 合取联结词 | 析取联结词 | 等价联结词 |
下面从表达式、真值表、门电路三个方法真是逻辑运算。
非(NOT)
Y = A’
A | Y |
---|---|
1 | 0 |
0 | 1 |
与(AND)
Y = A · B = AB
Y = A && B
A、B必须全部为真,Y才为真。
A | B | Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
或(OR)
Y = A + B
Y = A || B
A、B只要有一个为真,Y就为真。
A | B | Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
异或(XOR)
Y = A ⊕ B
相异为一,相同为零。AB不一样时结果为1,AB相同时结果为0。
A | B | Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
同或(XNOR)
Y = A ⊙ B
相同为一,相异为零。AB相同时结果为1,AB不一样时结果为0。
A | B | Y |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
4.2加法器
加法器是由全加器再配以其他必要的逻辑电路组成的,根据组成加法器的全加器个数是单个还是多个,加法器有串行和并行之分。
4.2.1一位全加器
全加器(FA)是最基本的加法单元,有加数Ai、加数Bi与低位传来的进位Ci-1共三个输入,有本位和Si与向高位的进位Ci共两个输出。
全加器的逻辑表达式如下:
一位全加器逻辑结构,逻辑单元:
4.2.2串行加法器
在串行加法器中,只有一个全加器,数据逐位串行送入加法器中进行运算。若操作数长n位,则加法就要分n次进行,每次产生1位和,并且逐行地送回寄存器。进位触发器用来寄存进位信号,以便参与下一次运算。
4.2.3并行加法器
并行加法器由多个全加器组成,其位数与机器的字长相同,各位数据同时运算。并行加法器可同时对数据的各位相加。虽然操作数的各位是同时提供的,但低位运算所产生的进位会影响高位的运算结果,并行加法器的最长运算时间主要是由进位信号的传递时间决定的,而每个全加器本身的求和延迟只是次要因素。
提高并行加法器速度的关键是尽量加快进位产生和传递的速度
并行加法器的进位产生和传递如下:
并行加法器中的每个全加器都有一个从低位送来的进位输入和一个传送给高位的进位输出。通常将传递进位信号的逻辑线路连接起来构成的进位网络称为进位链。
进位表达式为:
C
i
=
G
i
+
P
i
C
i
−
1
(
G
i
=
1
或
P
i
C
i
−
1
=
1
时,
C
i
=
1
)
C_i=G_i+P_iC_{i-1}(G_i=1或P_iC_{i-1}=1时,C_i=1)
Ci=Gi+PiCi−1(Gi=1或PiCi−1=1时,Ci=1)
Gi是进位产生函数,Gi=Ai Bi
Pi是进位传递函数,Pi=Ai⨁Bi
当Ai与Bi都为1时,Ci=1,即有进位信号产生,所以将AiBi称为进位产生函数或本地进位,并以Gi表示。
Ai⨁Bi=1且Ci-1=1时,Ci=1。这种情况可视为第i-1位的进位信号Ci-1可通过本位向高位传送,因此,把Ai⨁Bi称为进位传递函数(进位传递条件),并以Pi表示。
并行加法器的进位通常分为串行进位与并行进位。
4.3ALU功能与结构
ALU的基本功能包括:
-
算术运算:加减乘除四则运算
-
逻辑运算:与或非,异或等
-
辅助功能:移位、求补等
-
ALU基本结构:
Ai和Bi为输入变量;Ki为控制信号,Ki的不同取值可决定该电路做哪种算术运算或逻辑运算;Fi为输出函数。
- 典型的4位ALU芯片74181外特性如下:
CU解析完指令的含义(加减乘除逻辑运算)之后,发出一些信号,这里就是S0~S1。M的值用来区分算术运算(M=0)和逻辑运算(M=1),S3~S0的不同取值可实现不同的操作。
机器字长的真面目:一般来说,ALU是多少位,那么寄存器一般也会设计为多少位,来适配ALU的位数。所以一般ALU的位数就是机器字长。
C、AB、G、P一般是用于和其他机器进行串联。
例题:在串行进位的并行加法器中,影响加法器运算速度的关键因素是()
A.门电路的级延迟 B.元器件速度
C.进位传递延迟 D.各位加法器速度的不同答案:C。
例题:组成一个运算器需要多个部件,但下面的()不是组成运算器的部件。
A.状态寄存器 B.数据总线
C.ALU D.地址寄存器答案:D;数据总线供ALU与外界交互数据使用,地址寄存器不属于运算器,而属于存储器。