第 1 章 计算机抽象与技术 (Computer Abstractions and Technology)
核心结论
-
3 类计算应用:PC(个人电脑)/ Server(服务器)/ Embedded(嵌入式);每类有不同的设计目标(性能 / 可靠性 / 成本 / 实时性)。
-
8 大思想:摩尔定律 / 抽象 / 加速常见情形 / 并行 / 流水线 / 预测 / 存储分层 / 冗余提高可靠性——贯穿全书的指导原则。
-
性能公式
CPU time = 指令数 × CPI × 时钟周期时间:3 个独立变量影响性能;优化任一变量都能提升性能。 -
功耗墙(§1.7):单核频率 2005 年后停止增长,功耗成瓶颈;转向多核与并行。
-
抽象层级:高级语言 → 汇编 → 操作系统 → ISA → 微架构 → 电路 → 器件;每一层把下层复杂性封装为可管理接口。
-
多核时代(§1.8):从单核频率竞赛转向多核并行;并行编程(线程 / GPU / SIMD)成为新主流。
|
本章主旨
本章是全书的"导论章"——给出后续 5 章 + 4 附录都要用到的统一术语、性能公式、抽象层级。8 大思想是本书的"价值取向",每章都会回到这些原则。CPU 性能公式是工程优化的核心抓手——所有"如何让程序跑得更快"的问题最终落到三个变量之一。 |
一、核心概念
本章围绕 6 个核心概念展开:从 3 类应用出发,介绍 8 大思想与抽象层级,再用性能公式定义"什么是快",最后讨论功耗墙与多核时代。
| 概念 | 定义 + 重要性 | 实现提示 |
|---|---|---|
3 类计算应用 |
PC(个人电脑)/ Server(服务器)/ Embedded(嵌入式);每类的设计目标不同(性能 / 可靠性 / 成本 / 实时)。 |
§1.1;嵌入式最大类但单价最低;服务器可靠性要求最高;PC 性能 / 成本平衡。 |
8 大思想 |
摩尔定律 / 抽象 / 加速常见情形 / 并行 / 流水线 / 预测 / 存储分层 / 冗余——贯穿全书的设计原则。 |
§1.2;每个原则都在后续章节展开为具体技术。 |
抽象层级 |
应用 → 高级语言 → 汇编 → OS → ISA → 微架构 → 电路 → 器件;每层封装下层复杂性。 |
§1.3;本书聚焦 ISA 与微架构层。 |
性能公式 |
|
§1.6;优化任何一项都能提速;3 项同时优化 = 数量级提升。 |
功耗墙 |
单核频率 2005 年后因功耗停止增长;转向多核 / 并行 / 专用硬件。 |
§1.7;理解功耗墙才能解释"为什么 CPU 不再变快"。 |
多核与并行 |
Sea Change:从频率竞赛转向多核并行;并行编程 / GPU / SIMD 成为新主流。 |
§1.8;Amdahl 定律限制并行收益。 |
二、详细笔记
2.1 3 类计算应用 (Three Classes of Computing Applications)
What:PC / Server / Embedded 是 3 种主要应用类型;每类有不同的设计目标与硬件配置。
Why:理解应用场景才能选择合适的硬件 / ISA / 微架构;不同场景的"性能"含义不同(PC 关注单线程响应,服务器关注吞吐,嵌入式关注实时与功耗)。
How:
3 类应用特征对比:
| 类别 | 典型设备 | 设计目标 | 关键约束 |
|---|---|---|---|
PC(个人电脑) |
桌面 / 笔记本 / 工作站 |
单用户性能 + 低成本 |
单线程响应、外设丰富 |
Server(服务器) |
Web 服务器 / 数据库 / 超算 |
高吞吐 + 高可靠 |
7×24 运行、多用户、容错 |
Embedded(嵌入式) |
汽车 / 家电 / IoT / 手机 |
实时性 + 低功耗 + 低成本 |
单一应用、严格时序、电池寿命 |
|
"嵌入式"是数量最多的计算机
|
When:硬件选型 / ISA 选择(ARM 主导嵌入式,x86 主导 PC / 服务器);性能优化策略(PC 优化单线程,服务器优化吞吐,嵌入式优化功耗 / 实时)。
Example:手机是 嵌入式 + PC 混合——嵌入式特性(低功耗、单一应用)+ PC 特性(图形显示、用户交互);现代 SoC(Apple A 系列 / 高通骁龙)兼具两者。
2.2 8 大思想 (Eight Great Ideas in Computer Architecture)
What:8 个贯穿全书的设计原则——理解它们等于理解计算机体系结构的"价值观"。
Why:每章都回到这些原则;掌握后能快速判断新技术的"是否值得"。
How:
8 大思想列表(§1.2):
-
Design for Moore’s Law:为 18-24 月翻倍的晶体管数设计。
-
Use Abstraction to Simplify Design:用抽象层级降低设计复杂度。
-
Make the Common Case Fast:优化高频情况(90/10 法则)。
-
Performance via Parallelism:并行执行多任务。
-
Performance via Pipelining:流水线提高吞吐量。
-
Performance via Prediction:预测分支 / 缓存命中率。
-
Hierarchy of Memories:分层存储(寄存器 / 缓存 / 内存 / 磁盘)。
-
Dependability via Redundancy:冗余提高可靠性(RAID / ECC / 多副本)。
|
8 大思想的工程落地
|
When:评估新技术 / 优化系统性能;选型决策("应该优化哪个变量")。
Example:CPU 流水线设计是 Pipelining + Prediction + Common Case Fast 的综合应用——用流水线并行执行、用分支预测减少 stall、用乱序执行优化常见情况。
2.3 抽象层级 (Abstraction Layers)
What:从应用到器件的层级化抽象;每层封装下层复杂性,对上层提供简洁接口。
Why:工程师只在某一层工作;理解层级边界才能定位"性能问题在哪一层"。
How:
抽象层级(§1.3,自顶向下):
-
应用层:Python / Java / C++ 等高级语言。
-
算法层:排序 / 搜索 / 哈希等数据结构与算法。
-
操作系统层:进程 / 线程 / 虚拟内存 / 文件系统。
-
汇编层:机器指令的助记符表示(x86 / ARM / RISC-V)。
-
ISA 层:指令集架构——硬件 / 软件接口。
-
微架构层:ISA 的具体实现(流水线、缓存、分支预测)。
-
电路层:逻辑门、触发器。
-
器件层:晶体管、电阻、电容。
|
本书的覆盖范围
|
When:debug 性能问题时先定位层级;上层优化(算法)通常 > 下层优化(微架构)。
Example:网页慢——是网络问题(OS 层)?算法问题(哈希冲突)?还是 CPU 不够快(微架构)?抽象层级帮你系统排查。
2.4 性能公式 (Performance Equation)
What:CPU 时间 = 指令数 × CPI × 时钟周期时间;3 个独立变量决定 CPU 性能。
Why:优化性能必先优化 3 变量之一;理解 3 变量分别受哪些因素影响。
How:
性能公式(式 1-1 / §1.6):
-
Instruction count(指令数):算法 + 编译器 + ISA 决定。
-
CPI(Cycles Per Instruction,每指令周期数):微架构 + 指令混合决定。
-
Clock cycle time(时钟周期):工艺 + 微架构决定。
衍生概念:
-
MIPS(Million Instructions Per Second):每秒百万条指令;不考虑指令混合,意义有限。
-
MFLOPS:每秒百万次浮点运算;FLOPS 是 HPC 标准。
-
SPEC 基准:标准化程序集合,跨平台对比性能。
|
3 变量的优化策略
|
When:性能优化时定位瓶颈变量;benchmarking 时报告 3 个变量(不只是总时间)。
Example:同一程序在 2 GHz CPU 上 vs 4 GHz CPU 上——如果指令数与 CPI 不变,时钟周期减半 → CPU 时间减半(理论)。
2.5 功耗墙 (The Power Wall)
What:单核 CPU 频率 2005 年后停止增长,因为功耗与频率成正比,散热与电池寿命成为瓶颈。
Why:理解功耗墙才能解释"为什么 CPU 不再像以前那样变快";理解多核 / 并行 / 专用硬件转向的必然性。
How:
动态功耗公式(§1.7):
其中 C = 电容、V = 电压、f = 频率。电压与频率相互关联(V 降低约 f 平方根),所以 P ∝ f³。
|
功耗墙的后果
|
When:选型决策(移动端 ARM vs PC x86);优化方向(单线程优化 vs 并行优化)。
Example:Intel i7-13700K(2023)有 16 核,频率 5.4 GHz;同频 i7-2600K(2011)仅 4 核。性能提升主要靠 核数增加 而非 单核频率提高。
2.6 多核与并行 (Multicore & Parallelism)
What:Sea Change——从单核频率竞赛转向多核并行;并行编程(线程 / GPU / SIMD)成为新主流。
Why:理解多核转向才能解释现代 CPU 性能提升路径;理解 Amdahl 定律才能识别"并行能提速多少"。
How:
Amdahl 定律(§1.8):
其中 p = 可并行比例、n = 并行单元数。
3 种并行形式:
-
指令级并行 (ILP):单核流水线 / 超标量 / 乱序执行。
-
数据级并行 (DLP):SIMD(一条指令处理多个数据,如 AVX / NEON)。
-
任务级并行 (TLP):多线程 / 多进程 / 多核。
|
Amdahl 定律的工程含义
|
When:评估并行化潜力;选型决策(CPU 核数 vs GPU);识别性能瓶颈(串行部分)。
Example:图像处理 90% 可并行(每个像素独立),10% 串行(输入加载 / 输出保存);8 核加速 ≈ 1 / (0.1 + 0.9/8) ≈ 4.4×(不是 8×)。
三、关键图表
视觉图表
四、思维导图
mindmap
root((第 1 章 计算机抽象与技术))
3类应用
PC
Server
Embedded
8大思想
摩尔定律
抽象
加速常见情形
并行流水线
预测
存储分层
冗余
抽象层级
应用算法OS
ISA微架构
电路器件
性能公式
指令数CPI时钟
SPEC基准
MIPS
功耗墙
CV方f
单核停滞
多核转向
多核并行
ILP DLP TLP
Amdahl定律
加速上限
五、重点与易错点
-
3 类应用的设计目标不同:嵌入式 ≠ PC 的缩小版——性能 / 可靠性 / 功耗优先级完全不同。
-
8 大思想贯穿全书:每章都会回到其中 1-2 个原则;掌握后才能快速理解新技术的"为什么"。
-
抽象层级不能跨越:算法问题不要试图从电路层解决;电路问题不要试图从应用层解决。
-
CPU 性能公式 3 变量独立:优化任何一项都能提速;同时优化 = 数量级提升;只优化一项 = 边际收益递减。
-
SPEC 基准 > 厂商自报数据:标准化、跨平台、有方法学。
-
功耗墙 ≠ 性能天花板:转向多核 / 并行 / 专用硬件(GPU / TPU)后性能仍在持续提升。
-
Amdahl 定律决定并行上限:99% 并行 ≈ 100× 加速;99.9% 并行 ≈ 1000× 加速。
-
CPU 选型考虑应用:嵌入式 ARM / 低功耗、服务器多核高吞吐、PC 单核性能 + 性价比。
-
跨章衔接:第 2 章讲 ISA;第 3 章讲算术运算;第 4 章讲 CPU 微架构;第 5 章讲内存层级(8 大思想之一);第 6 章讲并行。
-