计算机硬件
1945 年,冯·诺依曼写下了一份 101 页的报告,把”计算”从一种专用的物理装置变成了一种通用的逻辑结构:把程序存进内存,让 CPU 逐条取出执行,用 I/O 连接外部世界。
这个决定定义了此后八十年的计算机硬件设计。今天每一块 CPU、每一条内存、每一块 SSD,都是这个基本框架在不同物理约束下的演化产物。理解硬件,就是理解:在冯·诺依曼框架给出的基本约束下,工程师在每个时代用当时能做到的材料和工艺,在速度、容量、功耗、成本之间做出了什么取舍。
这个系列不是产品评测,也不是电子学教材。它聚焦在计算机体系结构层——软件工程师需要理解的那部分硬件知识:为什么 cache miss 很贵,为什么 x86 有历史包袱,为什么串行接口比并行接口更快,为什么 Apple Silicon 让行业重新思考 SoC 的边界。
一、目录
本系列共 7 篇文章,按冯·诺依曼框架的各个组件逐层展开,从基础架构到当前 AI 芯片的前沿。
10-hardware/
├── 00-hardware-MOC.md ← 本文件
├── 01-冯·诺依曼架构:通用计算机的设计哲学.md ← 从 ENIAC 到存储程序机,八十年框架的起点
├── 02-处理器:从晶体管到指令集的演进.md ← CISC / RISC / 多核 / 异构核心
├── 03-存储层次:局部性原理与 cache 层级.md ← cache miss 为什么贵,局部性原理
├── 04-持久化存储:从打孔卡到 NVMe 的演进.md ← HDD / NAND Flash / NVMe / 写入放大
├── 05-互联与总线:从并行到串行的演进.md ← PCIe / USB / Thunderbolt / NVLink / CXL
├── 06-系统集成:从主板芯片组到 SoC.md ← 北桥南桥消失 / Apple M 系列 / 统一内存
└── 07-异构计算:GPU、TPU 与 AI 加速器.md ← CUDA / 矩阵运算并行性 / AI 芯片分类核心叙事线索
线索一:约束驱动演化
每一次硬件的重大演进,背后都是上一代技术触到了某个物理或工程约束:
- 真空管太热太大 → 晶体管
- 晶体管手工焊接太慢 → 集成电路
- 单核频率撞上功耗墙 → 多核
- CPU 和内存速度差距越来越大 → cache 层级
- SATA 接口带宽不够用 → NVMe/PCIe
- 通用 CPU 做矩阵乘法效率太低 → GPU/TPU
理解约束,就理解了为什么技术演化是这个方向,而不是别的方向。
线索二:向后兼容是一张永久支票
x86 ISA 从 1978 年的 8086 延续至今,每一代 CPU 都要能跑四十年前的代码。这张向后兼容的支票让 Intel 统治了个人电脑时代,但也让每一代架构师都要在芯片里保留大量”遗产电路”。ARM 没有这个历史包袱,所以在移动端功耗敏感的场景里赢了。这条线索贯穿处理器、总线、接口的所有演进。
线索三:集成是终局,但不是终点
从分离组件(CPU 插槽 + 内存条 + 南北桥芯片组)到 SoC(所有东西在一块芯片上),是过去二十年硬件设计最显著的趋势。集成带来的好处是延迟低、功耗小、带宽大;代价是灵活性降低(内存不能升级了)。Apple M 系列把 SoC 的思路推到了桌面端,证明这个方向在性能上也是可行的。异构计算(CPU + GPU + NPU 协同)是当前这条线索的前沿。
文章系列
基础:冯·诺依曼框架
核心问题:计算机为什么是现在这个样子,而不是别的样子?
- 01-冯·诺依曼架构:通用计算机的设计哲学 从 ENIAC 的专用机到存储程序的通用机,冯·诺依曼的那个决定奠定了八十年硬件设计的基本框架。
处理器:指令集与执行的演进
核心问题:CPU 是如何从一块芯片变成现代处理器的?CISC 和 RISC 的分歧意味着什么?
- 02-处理器:从晶体管到指令集的演进 从 Intel 4004 到 Apple M4,追踪处理器设计在物理约束和软件需求的双重压力下如何演化。CISC 的历史包袱、RISC 的哲学、多核的无奈、异构核心的出现。
存储层次:速度与容量的永恒矛盾
核心问题:为什么 CPU 需要 cache?为什么 cache miss 对软件性能影响那么大?
- 03-存储层次:局部性原理与 cache 层级 快的贵、大的慢,这个物理约束的解法是分级存储。局部性原理是整个 cache 系统的假设前提,理解它才能理解为什么某些代码快、某些代码慢。
持久化存储:让数据跨越时间
核心问题:从打孔卡到 NVMe SSD,每一次存储介质的革命背后是什么驱动力?
- 04-持久化存储:从打孔卡到 NVMe 的演进 IBM RAMAC 的第一块硬盘、Winchester 的密封磁头、NAND Flash 的写入放大问题、NVMe 绕过 SATA 的原因。每个阶段的演进都由上一代的瓶颈驱动。
互联:让所有部件说同一种话
核心问题:为什么现代高速接口都是串行的?PCIe 的设计思想是什么?
- 05-互联与总线:从并行到串行的演进 一个反直觉的历史事实:越来越多的并行线路反而让传输变慢。ISA → PCI → PCIe 的演进,USB 各代,Thunderbolt 的定位,以及 NVLink 和 CXL 这些面向 AI 时代的新互联。
系统集成:从主板到 SoC
核心问题:北桥南桥为什么消失了?SoC 是怎么从手机芯片变成桌面处理器的?
- 06-系统集成:从主板芯片组到 SoC 芯片组(Chipset)的历史角色,内存控制器为什么从主板搬进了 CPU,移动端的功耗约束如何催生了 SoC,Apple M1 的统一内存架构为什么重要。
异构计算:超越冯·诺依曼的边界
核心问题:为什么 GPU 能做 AI 训练?专用加速器(TPU/NPU)的出现意味着什么?
- 07-异构计算:GPU、TPU 与 AI 加速器 NVIDIA GeForce 256 到 H100,从图形渲染管线到 CUDA 通用计算,再到 Google TPU 的出现。冯·诺依曼架构擅长顺序逻辑,AI 需要大规模并行矩阵运算——这个不匹配催生了整个 AI 加速器行业。
阅读路径
路径一:从零开始理解计算机硬件
01(冯·诺依曼框架,建立基础模型)
→ 02(处理器,最核心的组件)
→ 03(存储层次,理解速度差距)
→ 04(持久化,数据如何保存)
→ 05(互联,部件如何通信)
→ 06(系统集成,拼成完整的机器)
→ 07(异构计算,当前的前沿)路径二:软件工程师理解性能
03(存储层次:cache miss 为什么贵)
→ 02(处理器:乱序执行和分支预测)
→ 05(互联:PCIe 带宽对 GPU 性能的影响)
→ 07(异构计算:为什么 GPU 做矩阵运算快)路径三:理解现代 SoC 和 AI 芯片
02(处理器演进:RISC 的胜利)
→ 06(SoC:集成的逻辑)
→ 07(异构计算:专用加速器的必然性)与其他系列的关联
- 03-内存:每个程序都以为自己拥有全部 — 硬件存储层次与操作系统虚拟内存的接壤点(硬件篇讲物理机制,Linux 篇讲软件抽象)
- 12-存储:持久化的代价 — Linux 如何管理持久化存储(文件系统、挂载、LVM),建立在硬件篇的物理基础上
- 06-系统调用:内核与用户空间的边界 — CPU 的特权级(Ring 0/Ring 3)是系统调用机制的硬件基础
暂存内容
以下目录内容暂时保留,后续整理时决定去留:
20-storage-basics/— 原存储介质系列,内容已被04-持久化存储覆盖,计划移除