Appearance
算术逻辑单元(ALU)
考情分析
ALU 相关内容在 408 中以选择题为主,考察加法器的进位传播方式、CLA 的基本思想和延迟分析,以及 ALU 产生的标志位含义。偶尔大题会要求写出先行进位的逻辑表达式。
ALU 概述
ALU(Arithmetic Logic Unit)是 CPU 中执行算术运算和逻辑运算的核心部件。
ALU 执行的操作包括:
- 算术运算:加、减(通过求补转换为加法)、乘、除
- 逻辑运算:AND、OR、NOT、XOR
- 移位运算:逻辑移位、算术移位、循环移位
ALU 的标志位输出
| 标志位 | 名称 | 含义 |
|---|---|---|
| ZF | 零标志 | 结果为 0 时置 1 |
| SF(N) | 符号标志 | 结果最高位为 1 时置 1 |
| CF | 进位标志 | 最高位产生进位/借位(无符号溢出) |
| OF(V) | 溢出标志 | 有符号数运算溢出 |
CF 和 OF 的区别:CF 对无符号数有意义,OF 对有符号数有意义。同一次运算可以同时 CF=1 而 OF=0。
一位全加器
全加器(Full Adder, FA)是加法器的基本构建单元。三个输入
定义两个辅助量:
- 生成量(Generate):
,本位无论低位进位如何都产生进位 - 传播量(Propagate):
,低位进位能通过本位继续传播
则进位公式简化为:
串行加法器
最简结构:只用 1 个全加器,每个时钟周期处理 1 位,进位通过触发器存储并传递到下一周期。
- 优点:硬件成本最低
- 缺点:
位加法需要 个时钟周期
串行进位加法器(行波进位)
用
进位像波浪一样从低位逐级传播到高位,因此也叫行波进位加法器(Ripple Carry Adder)。
延迟分析:设每个 FA 的进位延迟为
先行进位加法器(CLA)
CLA(Carry Lookahead Adder)的核心思想:所有进位并行计算,消除逐级等待。
将递推公式展开,消去对低位进位的依赖:
每个
CLA 的层次结构
实际应用中,4 位一组做 CLA,组间可以串行或再做一级 CLA:
| 层次 | 结构 | |
|---|---|---|
| 组内串行 + 组间串行 | 纯行波加法器 | |
| 组内并行 + 组间串行 | 4 位 CLA + 行波 | |
| 组内并行 + 组间并行 | 两级 CLA |
加法器对比总结
| 类型 | 硬件成本 | 延迟 | 适用场景 |
|---|---|---|---|
| 串行加法器(1 个 FA) | 最低 | 低速场合 | |
| 行波进位( | 中等 | 一般场合 | |
| CLA(组内+组间并行) | 高 | 高速处理器 |
交互可视化
例题
例 1:4 位 CLA,已知
先算
| 0 | 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 2 | 0 | 1 | 0 | 1 |
| 3 | 1 | 0 | 0 | 1 |
验证:
例 2:16 位加法器采用 4 位一组的两级 CLA,设门延迟为
- 计算各位
: - 组内 CLA 产生组级生成/传播信号:
- 组间 CLA 产生各组进位:
- 组内根据进位算出各位和:
总延迟
考点清单
- [ ] ALU 的输入(操作数 + 功能选择)和输出(结果 + 标志位)
- [ ] ZF、SF、CF、OF 四个标志位的含义及区别
- [ ] 全加器公式:
, - [ ] 生成量
,传播量 - [ ] 行波进位延迟
,与位数成正比 - [ ] CLA 核心:展开进位表达式,所有进位只依赖
- [ ] 组内并行 + 组间并行可实现常数级延迟