附录 A 逻辑设计基础 (The Basics of Logic Design)
核心结论
-
门电路(§A.2):AND / OR / NOT / NAND / NOR / XOR;真值表与逻辑方程等价;任何组合逻辑都可由 NAND 实现。
-
组合逻辑(§A.3):输出仅依赖当前输入;用真值表 / 卡诺图 / 硬件描述语言(HDL)实现。
-
算术逻辑单元 (ALU)(§A.5):组合逻辑的核心——加 / 减 / 与 / 或 / 比较;LEGv8 ALU 是 64-bit 逐位运算。
-
超前进位加法器(§A.6):用并行电路减少进位传播延迟;O(log n) 而非 O(n)。
-
触发器 / 锁存器(§A.8):时序元件的核心——存储 1 bit;D 触发器最常用。
-
SRAM / DRAM(§A.9):6T SRAM cell / 1T DRAM cell;SRAM 快但贵,DRAM 慢但密。
-
有限状态机 (FSM)(§A.10):时序逻辑的标准模型——状态 + 输入 → 输出 + 下一状态;Mealy / Moore 两种。
-
时序方法学(§A.11):同步设计(最常用)/ 异步设计(罕见);时钟周期约束。
|
本章主旨
附录 A 是"硬件基础"——把第 4 章 CPU 微架构的"概念"映射到"电路实现"。理解门电路 + 组合逻辑 + 时序元件(触发器 / 锁存器)才能理解 CPU 如何在硅片上实现。本附录是硬件工程师的速成课;软件读者可只关注 §A.5 ALU 与 §A.8 触发器。 |
一、核心概念
本章围绕 8 个核心概念展开:门电路 → 组合逻辑 → HDL → ALU → 超前进位 → 时钟 → 触发器 / 锁存器 → SRAM / DRAM → FSM → 时序方法学。
| 概念 | 定义 + 重要性 | 实现提示 |
|---|---|---|
门电路 |
AND / OR / NOT / NAND / NOR / XOR;真值表与逻辑方程等价;NAND 是 universal gate。 |
§A.2;所有数字电路的基本元件。 |
组合逻辑 |
输出仅依赖当前输入;用真值表 / 卡诺图 / HDL 描述。 |
§A.3;CPU 的 ALU / 解码器都是组合逻辑。 |
HDL 硬件描述语言 |
Verilog / VHDL / SystemVerilog;用代码描述硬件,便于综合。 |
§A.4;现代硬件设计的标准工具。 |
ALU |
加 / 减 / 与 / 或 / 移位 / 比较;LEGv8 ALU 是 64-bit 逐位运算单元。 |
§A.5;CPU 的核心组合逻辑。 |
超前进位加法器 |
并行电路减少进位延迟;O(log n) 而非 O(n);现代 CPU 标准。 |
§A.6;与串行进位加法器对比。 |
时钟与同步 |
时钟同步所有时序元件;同步设计简化时序分析。 |
§A.7、§A.11;现代硬件几乎全同步。 |
触发器 / 锁存器 |
存储 1 bit;D 触发器最常用;建立时间 / 保持时间约束。 |
§A.8;寄存器 / 内存 / 状态机的基本元件。 |
SRAM / DRAM |
SRAM 用 6T cell(快、贵、不需刷新);DRAM 用 1T cell(慢、便宜、需刷新)。 |
§A.9;现代内存层级的基础。 |
有限状态机 (FSM) |
状态 + 输入 → 输出 + 下一状态;Mealy(输出依赖输入)/ Moore(输出仅依赖状态)。 |
§A.10;CPU 控制单元、协议栈、自动机都用 FSM。 |
二、详细笔记
2.1 门电路与组合逻辑 (Gates & Combinational Logic)
What:门是数字电路的基本元件;组合逻辑由门组合而成。
Why:所有数字硬件都建立在门与组合逻辑之上;理解后才能看懂 CPU / 内存 / 总线如何工作。
How:
基本门(§A.2):
-
AND:所有输入为 1 输出 1。
-
OR:任一输入为 1 输出 1。
-
NOT:输入反向。
-
NAND:AND + NOT;universal gate(任何函数可只用 NAND 实现)。
-
NOR:OR + NOT;universal gate。
-
XOR:输入不同时输出 1;加法器核心。
组合逻辑(§A.3):输出 = f(输入),无记忆。
|
NAND 的 universal 性
|
When:硬件设计;理解 CPU 内部电路;debug 电路 bug。
Example:a XOR b = (a AND NOT b) OR (NOT a AND b) ——2 级门电路。
2.2 ALU 与超前进位 (ALU & Carry Lookahead)
What:ALU 是 CPU 的"心脏"——执行所有算术与逻辑;超前进位加速加法。
Why:ALU 设计决定 CPU 性能;理解才能看懂延迟 / 吞吐率权衡。
How:
1-bit ALU(§A.5):加 / 减 / 与 / 或 输入各 1 bit;进位传下一位。
LEGv8 64-bit ALU:64 个 1-bit ALU 串接;并行做"加 + 与 + 或";结果由控制信号选择。
超前进位加法器(§A.6):
其中 G_i = A_i B_i(生成进位)、P_i = A_i + B_i(传播进位)。所有进位并行计算,O(log n) 延迟。
|
串行 vs 超前进位
|
When:CPU 微架构设计;性能分析(加法延迟);理解 pipeline EX 段。
Example:Intel Core i7 加法器延迟 ~3 个周期(深度 ~30 级);3D 渲染中点积、距离计算都用加法。
2.3 时钟与触发器 (Clocks & Flip-Flops)
What:时钟同步所有时序元件;触发器存储 1 bit。
Why:现代硬件几乎全同步;理解时钟才能理解时序约束(setup / hold)。
How:
时钟(§A.7):
-
周期 T:相邻两个上升沿(或下降沿)的时间间隔。
-
频率 f = 1/T:现代 CPU 3-5 GHz(T ≈ 0.2-0.3 ns)。
-
占空比:高电平时间 / T。
D 触发器(§A.8):在时钟上升沿采样 D,输出到 Q。
时序约束(§A.11):
-
Setup time:时钟沿前数据必须稳定的最小时间。
-
Hold time:时钟沿后数据必须保持的最小时间。
-
违反约束 → 亚稳态(metastability)→ 不可预测结果。
|
时钟频率的物理限制
|
When:硬件设计;时序分析(静态时序分析工具);debug 时序违例。
Example:Intel Core i9 频率 5.5 GHz ⇒ T ≈ 0.18 ns;触发器 setup ~50 ps;剩余 ~130 ps 给组合逻辑。
2.4 SRAM / DRAM / FSM (Memory & State Machines)
What:SRAM / DRAM 是内存基础;FSM 是时序逻辑模型。
Why:现代内存层级用 SRAM / DRAM;CPU 控制单元、协议栈、嵌入式都用 FSM。
How:
SRAM(§A.9):
-
6T cell:2 交叉耦合反相器 + 2 访问晶体管。
-
读 / 写无需刷新;速度 ~1 ns;典型 L1 / L2 cache。
DRAM:
-
1T cell:1 晶体管 + 1 电容;密度高但需周期性刷新。
-
速度 ~10-100 ns;典型主内存。
有限状态机(§A.10):
-
Mealy:输出 = f(状态, 输入)。
-
Moore:输出 = f(状态)。
|
SRAM vs DRAM 权衡
|
When:硬件设计;选型(cache 用 SRAM,主内存用 DRAM);CPU 控制单元。
Example:Apple M1 的 L1 cache ~32 KB SRAM / 核;统一内存 ~16 GB LPDDR5 DRAM。
三、关键图表
视觉图表
非可视化条目
|
非可视化条目(表 / 算法)
|
核心公式对照表
|
核心公式对照表
|
四、思维导图
mindmap
root((附录 A 逻辑设计基础))
门电路
ANDORNANDXOR
真值表
universal gate
组合逻辑
输出依赖输入
卡诺图
HDL描述
ALU
加减与或
LEGv8 64bit
超前进位
时钟
周期频率
占空比
同步设计
触发器
D触发器
setuphold
亚稳态
SRAMDRAM
6Tvs1T
不刷新vs刷新
cachevs主存
FSM
MealyMoore
状态转换
CPU控制
五、重点与易错点
-
NAND 是 universal gate:任何组合逻辑都可用 NAND 实现;CPU 几乎只用 CMOS NAND。
-
超前进位 O(log n):64-bit 加法器从 64 级延迟降到 6 级;现代 CPU 都用 CLA 或类似。
-
Setup / hold 违例 = 亚稳态:不可预测结果;高频电路需要严格时序约束。
-
SRAM 不需刷新、DRAM 需刷新:SRAM 快但贵;DRAM 慢但密。
-
Mealy vs Moore FSM:Mealy 输出依赖输入(响应快但有 glitch);Moore 输出仅依赖状态(稳定但延迟一拍)。
-
同步设计 = 单一全局时钟:现代硬件几乎全同步;异步设计仅在特殊场景(高速 I/O)。
-
触发器是 CPU 的"记忆":没有触发器就没有状态;所有寄存器 / 内存都基于触发器。
-
硬件描述语言 (HDL) 是硬件工程师的"编程语言":Verilog / VHDL 把硬件描述成代码,综合成电路。
-
跨章衔接:第 4 章 CPU 微架构用本附录的门 / ALU / 触发器实现;附录 C 把 HDL 用于控制单元实现。
-