【自学嵌入式:计算机组成原理】20. 半加器电路的搭建
20. 半加器电路的搭建
算术逻辑单元(ALU)
ALU(Arithmetic Logic Unit,算术逻辑单元)是计算机 CPU 的核心组件之一,负责处理算术运算与逻辑运算,是实现计算机基本计算功能的硬件基础。
一、核心功能
ALU 的主要任务是执行两类基础运算,支撑计算机对数据的处理逻辑:
(1)算术运算
处理数字的数学操作,涵盖:
- 基本四则运算:加(\(+\))、减(\(-\))、乘(\(×\))、除(\(÷\));
- 进阶运算可通过“加减运算的组合”实现(如乘法本质是多次加法迭代,除法本质是多次减法迭代)。
(2)逻辑运算
处理布尔逻辑判断,基于与(\(AND\))、或(\(OR\))、非(\(NOT\)) 等基础逻辑门,实现:
- 按位逻辑运算(如判断两个二进制数对应位的逻辑关系);
- 条件比较(如判断两个数的大小、相等性等关系)。
二、在 CPU 中的地位
ALU 是 CPU 的运算核心,其工作流程可简化为三步:
- 从寄存器读取运算所需的输入数据;
- 根据指令要求,执行算术或逻辑运算(如 \(A + B\) 或 \(A \land B\));
- 将运算结果写回寄存器,或传递给控制单元(CU)协调后续操作。
简言之,ALU 直接决定计算机的计算能力,是“数据处理”功能的硬件基石。
半加器(Half Adder)
半加器是数字电路中最基础的加法组件,用于实现两个 1 位二进制数的加法,但存在功能限制(无法处理来自低位的进位输入)。
一、功能与限制
(1)核心功能
半加器接收两个 1 位二进制输入(记为 \(A\)、\(B\)),输出两类结果:
- 和(Sum):\(A\) 与 \(B\) 相加的 1 位二进制结果,对应逻辑 \(\text{Sum} = A \oplus B\)(异或运算,输入不同时和为 \(1\),输入相同时和为 \(0\));
- 进位(Carry):当 \(A + B ≥ 2\) 时产生的进位信号(1 位二进制),对应逻辑 \(\text{Carry} = A \land B\)(与运算,仅输入均为 \(1\) 时进位为 \(1\))。
(2)功能限制
半加器无法处理“来自低位的进位”(即无法实现多位数的连续加法)。例如,计算 \(3 + 5\)(二进制 \(011 + 101\))时,半加器仅能处理最右侧的 \(1 + 1\),但无法整合更左侧位的进位。因此,半加器是“不完整的加法器”,需与全加器配合实现多位数加法。
二、真值表(输入-输出映射)
通过真值表枚举所有输入组合的结果,清晰呈现半加器的逻辑:
| 输入 \(A\) | 输入 \(B\) | 和(Sum) | 进位(Carry) | 二进制加法示例 |
|---|---|---|---|---|
| \(0\) | \(0\) | \(0\) | \(0\) | \(0 + 0 = 0\)(进位 \(0\)) |
| \(0\) | \(1\) | \(1\) | \(0\) | \(0 + 1 = 1\)(进位 \(0\)) |
| \(1\) | \(0\) | \(1\) | \(0\) | \(1 + 0 = 1\)(进位 \(0\)) |
| \(1\) | \(1\) | \(0\) | \(1\) | \(1 + 1 = 10_2\)(进位 \(1\)) |
三、电路组成(逻辑门组合)

半加器的功能通过异或门(XOR) 和与门(AND) 组合实现,体现“简单逻辑门构建复杂功能”的设计思想:
- 和(Sum):由异或门输出,对应逻辑 \(\text{Sum} = A \oplus B\)(输入不同时和为 \(1\),输入相同时和为 \(0\));
- 进位(Carry):由与门输出,对应逻辑 \(\text{Carry} = A \land B\)(仅当输入均为 \(1\) 时进位为 \(1\))。
四、本质与意义
半加器是理解 “二进制加法如何通过逻辑门实现” 的基础:
- 异或门处理“无进位时的和”(如 \(0+1\) 或 \(1+0\)),对应 \(\text{Sum} = A \oplus B\);
- 与门处理“有进位时的信号”(仅 \(1+1\) 产生进位),对应 \(\text{Carry} = A \land B\)。
虽然功能简单,半加器是构建 全加器(处理多位数加法)、算术逻辑单元(ALU) 的核心模块,体现“复杂运算由简单逻辑组合实现”的数字电路设计本质。
总结:
- ALU 是 CPU 的运算核心,支撑算术与逻辑运算;
- 半加器通过异或门(\(\text{Sum} = A \oplus B\))和与门(\(\text{Carry} = A \land B\))实现 1 位二进制加法,是理解复杂加法电路的起点。
掌握这两者的逻辑,可逐步深入学习 CPU 运算单元的设计原理。
浙公网安备 33010602011771号