处理器体系架构

一、第一性原理层:计算的本质

1. 计算的最小抽象

计算 = 状态(State) + 状态转移(Transition)

所有处理器架构,本质上都是在设计:


2. 性能的三大基本约束

处理器设计永远在以下三者之间权衡:

  1. **延迟(Latency)**:一条指令多久完成
  2. **吞吐(Throughput)**:单位时间完成多少工作
  3. **能效(Performance / Watt)**:单位能耗完成多少计算

所有架构演进(流水线、乱序、GPU、ASIC)都不是“更高级”,而是对三者的不同取舍。


二、架构思想层:处理器设计的核心矛盾

1. 五大长期不变的结构性矛盾

  1. **顺序语义 vs 并行执行**
  2. **计算速度 vs 存储速度**
  3. **通用性 vs 能效**
  4. **硬件复杂度 vs 软件复杂度**
  5. **确定性执行 vs 投机执行**

后文出现的每一种机制,都是为了解决其中至少一个矛盾。


2. 三种基础并行形态(统一视角)

并行类型核心思想典型代表
ILP 指令级并行多条指令重叠流水线 / 超标量 / 乱序
DLP 数据级并行同一操作作用于多数据SIMD / 向量单元
TLP 线程级并行多执行上下文并行多核 / 超线程 / GPU

三、机制实现层:从抽象到硬件结构

本层不讨论“某个 CPU 怎么做”,而是讨论所有处理器都绕不开的机制集合


1. 状态存储机制

1.1 寄存器(Register)

1.2 内存(Memory)


2. 控制的两种基本范式

2.1 硬布线控制(Hardwired Control)

2.2 微程序控制(Microprogrammed Control)

二者的取舍,本质是:硬件复杂度 vs 软件复杂度


3. 指令执行的统一状态机模型

Fetch → Decode → Execute → Memory → Write Back → Update PC


4. 流水线:吞吐优先的设计哲学

4.1 核心思想

把一个长的状态转移,拆成多个短的、可重叠的状态转移。

4.2 代价


5. 冒险:并行带来的必然代价

5.1 结构冒险

5.2 数据冒险

5.3 控制冒险


6. 乱序执行:用复杂度换并行度

6.1 本质

6.2 关键结构

这是解决“顺序语义 vs 并行执行”最激进的方案之一。


四、架构分化层:不同计算模型的必然选择

1. CPU:控制复杂度优先

适合:操作系统、通用程序、复杂逻辑


2. GPU:吞吐与能效优先

2.1 本质差异

2.2 SIMT 模型

适合:图形、AI、数据并行计算


3. FPGA:结构可编程

适合:低延迟、定制化硬件加速


4. ASIC:能效极致化

适合:明确、长期稳定的计算模式


五、统一选型方法论

维度CPUGPUFPGAASIC
控制复杂度极低
数据并行极高固定
延迟敏感极高
能效极高
可编程性

六、终极总结:不变的才是架构

指令集会变工艺会变核心数量会变

但不变的是:

关联内容(自动生成)