2.6 加法器与运算器

逻辑门与全加器,串行进位加法器与先行进位加法器,算术逻辑单元 ALU 的功能与组成。

考查要求 ★★☆ 理解 全加器串行进位先行进位进位产生与传递函数ALU

门电路

计算机中的运算都可以由**与(AND)、或(OR)、非(NOT)**三种基本逻辑运算组合而成,常用的复合逻辑还有与非、或非、异或(XOR)、同或。异或的特点:A⊕BA \oplus B 在 A≠BA \ne B 时为 1,常用于加法求和、奇偶校验、比较是否相等。

一位全加器

全加器(FA)是最基本的加法单元,有加数 AiA_i、BiB_i 与低位传来的进位 Ci−1C_{i-1} 共 3 个输入,有本位和 SiS_i 与向高位的进位 CiC_i 共 2 个输出:

Si=Ai⊕Bi⊕Ci−1,Ci=AiBi+(Ai⊕Bi)Ci−1S_i = A_i \oplus B_i \oplus C_{i-1}, \qquad C_i = A_i B_i + (A_i \oplus B_i) C_{i-1}
FAAᵢBᵢCᵢ₋₁SᵢCᵢ
和 Sᵢ 经过两级异或(约 3ty);进位 Cᵢ 通常需要 2 级门延迟(与-或)

串行进位加法器

把 nn 个全加器串接起来,低位全加器的进位输出连到相邻高位全加器的进位输入,就构成了串行进位(行波进位)加法器。

  • 优点:结构简单,所需硬件少;
  • 缺点:进位逐级传递,最高位的和必须等低位进位全部产生后才能得到。若每级进位延迟为 2ty2t_y,则 nn 位加法器的进位延迟约为 2n ty2n\,t_y。

先行进位加法器

为提高速度,可以让各位的进位同时产生。记

Gi=AiBi (进位产生函数),Pi=Ai⊕Bi (或 Ai+Bi,进位传递函数)G_i = A_i B_i \ (\text{进位产生函数}), \qquad P_i = A_i \oplus B_i \ (\text{或 } A_i + B_i,\text{进位传递函数})

则 Ci=Gi+PiCi−1C_i = G_i + P_i C_{i-1}。将其逐级展开:

C1=G1+P1C0C2=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0\begin{aligned} C_1 &= G_1 + P_1 C_0 \\ C_2 &= G_2 + P_2 G_1 + P_2 P_1 C_0 \\ C_3 &= G_3 + P_3 G_2 + P_3 P_2 G_1 + P_3 P_2 P_1 C_0 \\ C_4 &= G_4 + P_4 G_3 + P_4 P_3 G_2 + P_4 P_3 P_2 G_1 + P_4 P_3 P_2 P_1 C_0 \end{aligned}

各进位只依赖于 GiG_i、PiP_i 和 C0C_0,可以由一级”与-或”电路并行产生,与位数无关——这就是先行进位(CLA)。但位数增多时,表达式会越来越长,电路过于复杂,所以通常 4 位一组:

  • 单级先行进位(组内并行、组间串行):每组内部并行,组与组之间串行传递;
  • 多级先行进位(组内并行、组间并行):每组再产生组进位产生函数 G∗G^* 和组进位传递函数 P∗P^*,由更高一级的先行进位部件让各组进位也并行产生。
交互演示加法器的进位延迟:各位和的产生时间
0246810121416182022242628303234时间(门延迟 ty)S1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16
等待进位 Cᵢ₋₁求和(异或)
串行进位:Cᵢ = Gᵢ + PᵢCᵢ₋₁ 逐位传递,每位约 2ty,n 位加法约需 2n ty(此处最慢的和约在 33 ty 产生)。

算术逻辑单元 ALU

ALU 是运算器的核心,能进行加、减、乘、除等算术运算和与、或、非、异或等逻辑运算,以及移位、求补等操作。

ALUA(n 位)B(n 位)F(n 位)ALUop(k 位)ZF OF SF CF
ALU 是组合逻辑电路:k 位操作控制端最多可选择 2ᵏ 种运算,输出结果 F 与标志位

即时练习

即时练习3 题
点击选项即可作答
  1. 1
    加法器中进位产生函数 Gᵢ 和进位传递函数 Pᵢ 分别是( )。
  2. 2
    下列关于串行进位加法器和先行进位加法器的叙述中,正确的是( )。
  3. 3
    ALU 属于( )。
学完了吗?

标记完成后,侧栏会显示进度。进度仅保存在本浏览器中。