L4·10^7 – 10^9

CPU 微架构

CPU Microarchitecture

核心抽象指令执行

寄存器 + ALU + 控制单元 = 一台可以执行指令序列的机器。

学习进度:
What

CPU 微架构是实现指令集架构(ISA)的硬件设计。核心组件包括:控制单元(Control Unit)负责取指、译码、执行;ALU 执行算术和逻辑运算;寄存器文件存储操作数;总线连接各组件。现代 CPU 使用流水线(Pipelining)技术,将指令执行分为多个阶段(取指、译码、执行、访存、写回),每个时钟周期完成一条指令。更高级的技术包括超标量(Superscalar,每周期执行多条指令)、乱序执行(Out-of-Order Execution)、分支预测(Branch Prediction)。

Why

寄存器和 ALU 只能执行单个操作,无法自动执行指令序列。CPU 微架构引入'取指-译码-执行'循环,使计算机能够自动执行存储在内存中的程序。这是从'计算器'到'通用计算机'的飞跃。流水线技术进一步提升性能,使现代 CPU 达到每时钟周期执行多条指令的吞吐量。

How

程序员通过汇编语言和高级语言使用 CPU 的抽象。理解 CPU 微架构有助于理解:为什么循环展开能提升性能(减少分支);为什么分支预测失败代价高昂(流水线清空);为什么缓存命中率对性能至关重要(内存访问延迟)。性能优化工具(如 perf、VTune)直接分析 CPU 微架构事件。

Bottom-up:由下层如何构建

本层建立在以下层级之上:

Top-down:向上暴露什么接口

指令集流水线分支预测

Programmer View:程序员视角

我能操作吗?

通过指令集架构(ISA)间接操作。x86-64、ARM、RISC-V 是常见 ISA。汇编语言可直接控制指令序列。

成本模型

指标量级备注
时钟频率2-5 GHz现代 CPU 主频
IPC2-4 instructions/cycle超标量处理器每周期执行指令数
流水线深度14-19 级现代 CPU 流水线阶段数
分支预测失败代价15-20 周期流水线清空惩罚

常见陷阱

  • !分支预测失败:条件跳转导致流水线清空,浪费 15-20 个时钟周期。热点循环应尽量减少分支
  • !缓存未命中:内存访问延迟 100+ 周期,L1 缓存命中仅 4 周期。数据局部性对性能至关重要
  • !假共享(False Sharing):多核修改同一缓存行的不同变量,导致缓存一致性协议频繁失效