首页/计算机组成原理/中央处理器/共享内存多处理器 SMP 🔗 在 Obsidian 中打开
计算机组成原理 · 中央处理器

共享内存多处理器 SMP

重要度 ⭐⭐⭐⭐中央处理器SMP共享内存多处理器对称多处理CPU
速查
SMP = 共享物理内存 + 处理器对等,属 MIMD。多核 CPU 即 SMP。关键问题 = 缓存一致性(如 MESI:M/E/S/I)。瓶颈:共享总线带宽 + 一致性开销。

核心概念

SMP(Symmetric Multiprocessing,对称多处理)是一种共享内存的多处理器架构,其中多个处理器(或核心)共享同一物理内存,且每个处理器的地位对等——任何处理器都可以访问任何内存地址、执行任何任务。

SMP 的核心特征

  1. 共享内存:所有处理器通过总线或互连网络访问统一的内存地址空间。
  2. 对称性:所有处理器地位平等,没有主从之分。
  3. 统一操作系统:一个 OS 管理所有处理器,任务可动态分配。
  4. 紧耦合:处理器间通过共享内存通信,延迟低。

缓存一致性问题

由于每个处理器有自己的私有缓存,同一内存地址可能在多个缓存中有不同副本。当一个处理器修改数据时,其他缓存中的副本变为无效,需要缓存一致性协议保证数据一致。

  • 监听协议(Snooping):每个缓存监听总线上的写操作,适合基于总线的 SMP。
  • 目录协议(Directory-based):用目录记录每个缓存行的状态,适合大规模系统。
  • MESI 协议状态:Modified(修改)、Exclusive(独占)、Shared(共享)、Invalid(无效)。

关键性质

特性说明
内存访问所有处理器统一编址,访问任意地址
处理器关系对等(Symmetric),无主从
通信方式通过共享内存(读写同一地址)
扩展性受限于内存带宽和一致性开销
编程模型共享地址空间,需同步机制(锁、信号量)
对比项SMP消息传递多处理器
内存共享统一地址空间各节点独立内存
通信读写共享变量发送/接收消息
编程难度较低(但需处理竞争)较高(需显式通信)
扩展性受限于共享总线/内存更好(分布式内存)

常见考法

考法解题套路
SMP 的定义和特征共享内存 + 对等地位 + 统一地址空间
缓存一致性问题多个缓存中同一数据的副本不一致 → 需一致性协议
MESI 协议状态转换M/E/S/I 四种状态,根据读写操作和总线信号转换
SMP vs 消息传递系统共享内存 vs 分布式内存,从通信、编程、扩展性对比
SMP 的性能瓶颈共享内存带宽限制、一致性协议开销、总线竞争

易错点

必记
  • SMP 的「S」指对等(Symmetric):不是 Simple。对等意味着任何处理器都可运行 OS 内核与用户代码。
  • 共享内存 $\neq$ 无竞争:多处理器同时访问同一地址会产生竞争,需同步机制。
  • 缓存一致性 $\neq$ 内存一致性:前者保证同一地址在各缓存中的一致;后者保证不同地址的操作顺序。
  • SMP 扩展性有限:共享总线和内存带宽是瓶颈,处理器增加到一定程度后性能不再线性提升。
  • 多核处理器属于 SMP:现代多核 CPU 的多个核心共享内存,本质就是 SMP。

核心结论

  1. SMP 的核心是共享内存 + 对等地位,属于 MIMD 架构。
  2. 缓存一致性是 SMP 的关键问题,MESI 协议是经典解决方案。
  3. SMP 编程需要同步机制(锁、信号量、原子操作)防止竞争条件。
  4. SMP 扩展性受共享内存带宽限制,大规模并行通常用消息传递架构。

记忆卡片

SMP 的全称?
Symmetric Multiprocessing(对称多处理)。
SMP 属于哪种并行?
MIMD(多指令多数据流)。
SMP 需什么协议保证一致性?
缓存一致性协议(如 MESI)。
MESI 四种状态 & 性能瓶颈?
Modified、Exclusive、Shared、Invalid;瓶颈 = 共享内存带宽和一致性开销。

交互动画 · SMP 缓存一致性与共享通信

P0Core 0 缓存 0 P1Core 1 缓存 1 共享总线(访问统一地址空间) 共享内存x = 0 两个对等处理器通过共享总线访问同一内存
观察 P0/P1 如何通过共享内存通信,以及缓存失效
提示:MESI 失效演示 x 更新后其他缓存副本被作废

相关知识点

sisd-simd-mimd multi-core-processor hardware-multithreading

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。