5.1 CPU 的功能与组成

CPU 功能
程序控制、操作控制、时间控制、数据加工。CPU 由运算器(ALU、寄存器)和控制器(CU、指令部件)组成。

控制器组成

控制方式

硬布线 vs 微程序:硬布线控制速度快但扩展难,用于 RISC;微程序控制用控制存储器存放微指令,易于修改扩展,用于 CISC。一条机器指令对应一段微程序。

5.2 指令执行过程

一条指令的执行包含若干机器周期(CPU 周期),通常分为:

指令周期
CPU 取出并执行一条指令所需的全部时间。包含若干机器周期,每个机器周期包含若干时钟周期。

5.3 数据通路

数据通路
指令执行过程中数据在 CPU 中流动的路径,由寄存器、ALU、多路选择器和内部总线构成。

数据通路中关键寄存器:

单总线 vs 多总线:单总线数据通路结构简单但需分时使用,速度慢;双总线/三总线可并行传输,速度快但硬件复杂。

5.4 流水线技术

流水线技术
将指令执行过程分为多个子过程,使多条指令在不同子过程上重叠执行,提高 CPU 吞吐率。经典五级流水线:IF(取指)→ ID(译码)→ EX(执行)→ MEM(访存)→ WB(写回)。

流水线性能指标

n 条指令、k 级流水线,理想情况下:总时间 = (k + n − 1) × 时钟周期;非流水线时间 = n × k × 时钟周期。

流水线冲突(冒险)

数据旁路(Forwarding):将 EX 阶段的结果直接转发给后续需要的指令,不必等 WB 完成,可消除部分数据冲突。Load-use 冲突仍需 1 拍停顿。

5.5 多发射与超标量

超标量:每个周期并发发射多条指令(多个功能部件)。超流水线:将流水段细分,提高主频。动态调度:硬件重排指令顺序(乱序执行)以避免冲突。

5.6 多处理器基本概念 [22新增]

多处理器系统
由多个处理器(或处理器核心)组成的计算机系统,旨在通过并行计算提升系统性能。涉及处理器架构分类、并行粒度、线程级并行和处理器间互连等概念。

Flynn 分类法

根据指令流和数据流的多寡,将计算机系统分为四类:

类别指令流数据流代表特点
SISD传统单核 CPU单指令单数据,冯·诺依曼结构
SIMD向量处理器、GPU一条指令同时对多个数据操作
MISD(罕见,流水线可视为一种特例)多条指令操作同一数据流
MIMD多核处理器、多计算机每个处理器独立执行各自的指令和数据

向量处理器(SIMD 实现)

向量处理器将一条向量指令作用于多个数据元素(向量),实现数据级并行。现代 CPU 通过 SIMD 扩展指令集(如 x86 的 SSE/AVX、ARM 的 NEON)支持短向量运算,可同时处理 128 位或 256 位数据。

硬件多线程

在一个 CPU 核心上通过硬件支持快速切换多个线程,以隐藏访存延迟等长延迟操作:

多核处理器

将多个 CPU 核心集成在同一个芯片上,每个核心拥有独立的 L1 Cache 和寄存器,共享 L2/L3 Cache 和主存。多核处理器属于 MIMD 结构,是现代 CPU 的主流形态。

共享内存多处理器(SMP)

SMP(Symmetric Multi-Processing)
对称多处理——所有处理器共享同一个物理内存空间,地位平等,任何一个处理器都可以访问任意内存位置。通过共享内存实现处理器间通信。

SMP 的关键挑战:Cache 一致性(Cache Coherence)——当多个处理器的私有 Cache 缓存了同一内存块时,某处理器对该块的修改必须被其他处理器感知。常见解决方案包括:

MESI 协议:每个 Cache 行有 4 种状态 —— M(Modified,已修改且独占)、E(Exclusive,干净且独占)、S(Shared,干净且共享)、I(Invalid,无效)。写入 Shared 行需先"使无效"(Invalidate)其他副本。