跳转至

计算机体系结构综述

计算机体系结构研究的是:抽象的计算任务如何在真实机器上被执行,以及硬件系统如何在性能、能耗、成本与正确性之间做权衡。它关心的对象包括指令集架构(ISA)、微架构(microarchitecture)、存储层次(memory hierarchy)以及并行结构。

它之所以归在“计算科学”中,是因为这里研究的不只是硬件器件本身,而是计算如何被机器表达、组织与加速。换句话说,体系结构站在软件与电路之间,研究的是 computation 如何落地为可执行系统,因此它既与计算机工程高度相连,也属于计算科学的核心组成部分。

为什么归类在计算科学中

视角 体系结构关注什么 为什么是计算科学问题
抽象 ISA、内存模型、层次接口 研究程序如何被机器理解与执行
性能 流水线、缓存、并行性、带宽 研究如何让同样的计算更快完成
正确性 一致性、异常、中断、特权级 研究系统行为是否符合计算语义

1. 抽象层次模型

计算机系统的核心设计哲学是抽象分层——每一层隐藏下层复杂性,向上层提供简洁接口。

graph TB
    A[应用程序 Application] --> B[操作系统 OS]
    B --> C[指令集架构 ISA]
    C --> D[微架构 Microarchitecture]
    D --> E[功能单元 Functional Units]
    E --> F[逻辑门 Logic Gates]
    F --> G[晶体管 Transistors]
    G --> H[物理层 Physics]

    style A fill:#e1f5fe
    style C fill:#fff9c4
    style D fill:#f3e5f5
    style H fill:#ffccbc

ISA(指令集架构)是硬件与软件之间的关键契约层:

  • 软件工程师面向 ISA 编程(或通过编译器生成 ISA 指令)
  • 硬件工程师在 ISA 约束下自由优化微架构实现
  • 同一 ISA 可以有多种微架构实现(如 x86 下的 Intel P6、Zen 系列)

2. 冯·诺依曼架构 vs 哈佛架构

2.1 冯·诺依曼架构(Von Neumann Architecture)

核心思想:存储程序(Stored Program)——指令和数据存放在同一存储器中。

五大组件:

组件 功能
运算器(ALU) 执行算术和逻辑运算
控制器(Control Unit) 取指令、译码、产生控制信号
存储器(Memory) 统一存储指令与数据
输入设备 接收外部数据
输出设备 输出计算结果

冯·诺依曼瓶颈:CPU 与存储器之间的总线带宽成为系统性能瓶颈(CPU-Memory bandwidth bottleneck)。

2.2 哈佛架构(Harvard Architecture)

  • 指令存储器和数据存储器物理分离
  • 可同时取指令和取数据——更高带宽
  • 常见于 DSP(数字信号处理器)、微控制器
  • 现代处理器在 L1 Cache 层采用修正哈佛架构(分离的 I-Cache 和 D-Cache,但共享主存)
graph LR
    subgraph "冯·诺依曼"
        CPU1[CPU] <-->|统一总线| MEM1[统一存储器]
    end

    subgraph "哈佛"
        CPU2[CPU] <-->|指令总线| IMEM[指令存储器]
        CPU2 <-->|数据总线| DMEM[数据存储器]
    end

3. 关键性能指标

3.1 CPU 性能方程

\[ \text{CPU Time} = \frac{\text{Instructions} \times \text{CPI}}{\text{Clock Rate}} \]

其中:

  • Instructions:程序的指令数(Instruction Count, IC),由程序、编译器、ISA 决定
  • CPI(Cycles Per Instruction):平均每条指令的时钟周期数,由微架构决定
  • Clock Rate(时钟频率):每秒时钟周期数,由工艺和微架构决定

IPC 与 CPI

IPC(Instructions Per Cycle)\(= 1/\text{CPI}\),衡量每个时钟周期执行的指令数。现代超标量处理器 IPC 通常 > 1。

3.2 MIPS 与 FLOPS

指标 定义 局限性
MIPS 每秒百万条指令 不同 ISA 的指令功能不同,不可直接比较
FLOPS 每秒浮点运算次数 科学计算常用;忽略整数和访存性能

3.3 基准测试

  • SPEC CPU:业界标准,分整数(SPECint)和浮点(SPECfp)
  • Geekbench:跨平台单核/多核
  • MLPerf:机器学习工作负载

4. Amdahl 定律

核心思想:系统加速比受不可并行部分限制。

\[ S = \frac{1}{(1 - f) + \frac{f}{N}} \]

其中:

  • \(f\):可加速部分占比
  • \(N\):该部分的加速倍数
  • \(S\):整体加速比

数值示例

若程序 80% 可并行化(\(f=0.8\)),使用 4 核(\(N=4\)):

\[S = \frac{1}{0.2 + \frac{0.8}{4}} = \frac{1}{0.2 + 0.2} = 2.5\times\]

即使无穷多核(\(N \to \infty\)),加速比上限为 \(1/(1-f) = 5\times\)

推论

  • 优化瓶颈部分的收益最大(Make the common case fast)
  • 纯粹增加核心数的收益递减
  • Gustafson 定律提供了互补视角——随着核心数增加,问题规模也可以增大

5. 功耗与设计约束

5.1 动态功耗

\[ P_{\text{dynamic}} = \alpha \cdot C \cdot V_{dd}^2 \cdot f \]
  • \(\alpha\):活动因子(switching activity)
  • \(C\):负载电容
  • \(V_{dd}\):供电电压
  • \(f\):时钟频率

降低电压是降低功耗最有效的手段(平方关系),但过低电压导致晶体管无法正确切换。

5.2 功耗墙(Power Wall)

Dennard Scaling 约在 2006 年失效:

  • 晶体管缩小但漏电流不再等比减小
  • 芯片功耗密度无法持续降低
  • 促使架构转向多核异构计算

5.3 暗硅(Dark Silicon)

由于散热限制,芯片上大量晶体管不能同时全速工作。应对策略:

  • 异构架构(CPU + GPU + NPU + DSP)
  • 动态电压频率调节(DVFS)
  • 专用加速器(ASIC)

6. 体系结构演进趋势

timeline
    title 计算机体系结构演进
    1940s-1950s : 真空管 : 冯·诺依曼原型机
    1960s-1970s : 集成电路 : IBM System/360 : 流水线
    1980s : RISC 革命 : MIPS, SPARC, ARM
    1990s : 超标量 + 乱序执行 : Pentium Pro
    2000s : 多核时代 : 功耗墙倒逼
    2010s : 异构计算 : GPU通用计算 : 移动SoC
    2020s : 领域专用架构 : Chiplet : RISC-V开源
时代 核心驱动力 关键创新
单核频率提升 Dennard Scaling 流水线、乱序执行、分支预测
多核并行 功耗墙 多核、SMT、SIMD
异构专用 暗硅、领域需求 GPU、TPU、NPU、FPGA
开放生态 成本与灵活性 RISC-V、Chiplet

7. 设计哲学

  1. Make the common case fast:优化最频繁的操作路径
  2. Simplicity favors regularity:简洁规整的设计降低复杂度
  3. Good design demands good compromises:在性能、功耗、面积、成本之间权衡
  4. Locality, locality, locality:时间局部性和空间局部性是存储层次设计的基石

延伸阅读

与其他主题的关系

  • 指令集架构 继续展开 ISA 作为软件与硬件接口的定义方式。
  • 处理器微架构 进一步解释流水线、乱序执行、缓存与分支预测这些性能来源。
  • 操作系统 说明异常、中断、虚拟内存与特权级如何在软件层被管理。
  • 并行计算 把多核、SIMD、GPU 等硬件能力上升到编程模型与系统实现层面。

参考文献

  1. John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann.
  2. David A. Patterson and John L. Hennessy. Computer Organization and Design. Morgan Kaufmann.
  3. John L. Hennessy and David A. Patterson. Computer Organization and Design RISC-V Edition. Morgan Kaufmann.

评论 #