SMP(Symmetric Multiprocessing,对称多处理)是一种共享内存的多处理器架构,其中多个处理器(或核心)共享同一物理内存,且每个处理器的地位对等——任何处理器都可以访问任何内存地址、执行任何任务。
由于每个处理器有自己的私有缓存,同一内存地址可能在多个缓存中有不同副本。当一个处理器修改数据时,其他缓存中的副本变为无效,需要缓存一致性协议保证数据一致。
| 特性 | 说明 |
|---|---|
| 内存访问 | 所有处理器统一编址,访问任意地址 |
| 处理器关系 | 对等(Symmetric),无主从 |
| 通信方式 | 通过共享内存(读写同一地址) |
| 扩展性 | 受限于内存带宽和一致性开销 |
| 编程模型 | 共享地址空间,需同步机制(锁、信号量) |
| 对比项 | SMP | 消息传递多处理器 |
|---|---|---|
| 内存 | 共享统一地址空间 | 各节点独立内存 |
| 通信 | 读写共享变量 | 发送/接收消息 |
| 编程难度 | 较低(但需处理竞争) | 较高(需显式通信) |
| 扩展性 | 受限于共享总线/内存 | 更好(分布式内存) |
| 考法 | 解题套路 |
|---|---|
| SMP 的定义和特征 | 共享内存 + 对等地位 + 统一地址空间 |
| 缓存一致性问题 | 多个缓存中同一数据的副本不一致 → 需一致性协议 |
| MESI 协议状态转换 | M/E/S/I 四种状态,根据读写操作和总线信号转换 |
| SMP vs 消息传递系统 | 共享内存 vs 分布式内存,从通信、编程、扩展性对比 |
| SMP 的性能瓶颈 | 共享内存带宽限制、一致性协议开销、总线竞争 |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。