vault backup: 2026-06-15 22:39:56

This commit is contained in:
2026-06-15 22:39:57 +08:00
parent b307d9e22a
commit f8fb8553d3
10 changed files with 1480 additions and 0 deletions
@@ -0,0 +1,129 @@
---
tags:
- 计算机系统结构
- 复习
- 并行处理
create time: 2026-06-15 10:00
---
# 多处理器与并行处理
## 概述
本文档讲解多处理器系统的基本概念、存储一致性模型、通信开销分析以及并行系统性能评估。多处理器和并行处理是现代计算机系统结构的重要方向,涉及软硬件协同设计的多个层面。
> [!tip] 考试重点
> 存储一致性的三个条件是论述题高频考点。远程访问对并行系统性能影响的计算(CPI 分析)在综合题中出现。
## 正文
### 一、多处理器系统概述
#### 1.1 分类
| 类型 | 特征 | Flynn 分类 | 典型代表 |
|------|------|:----------:|----------|
| 单处理器 | 单指令单数据 | SISD | 传统 PC |
| 向量处理器 | 单指令多数据 | SIMD | GPU、TPU |
| **多处理器** | 多指令多数据,共享内存 | MIMD | 服务器集群 |
| 多计算机 | 多指令多数据,分布式内存 | MIMD | 超算集群 |
#### 1.2 SIMD vs MIMD
| 特性 | SIMD | MIMD |
|------|------|------|
| 指令流 | 单一控制流 | 多个独立控制流 |
| 数据流 | 同一操作作用于多个数据 | 各处理器独立处理不同数据 |
| 适用场景 | 规则的数据并行(矩阵运算) | 不规则的并行任务 |
| 灵活性 | 低(需同步) | 高(独立执行) |
### 二、存储一致性(Cache Coherence)
#### 2.1 问题背景
在多处理器系统中,每个处理器都有自己的 Cache。当多个处理器访问共享数据时,可能出现**数据不一致**的问题。
```
处理器 P 写入 X = 1
↓ (Cache 更新)
处理器 Q 的 Cache 中 X 仍为旧值
```
#### 2.2 一致性定义
一个存储系统如果满足以下三个条件,则称是一致的:
> [!important] 存储一致性的三个条件
>
> **条件 1(写后读一致性)**:处理器 P 写 X 后又读 X,若期间无其他处理器写 X,则 P 读到的是自己写入的值。
>
> **条件 2(写传播一致性)**:处理器 P 写 X 后,处理器 Q 读 X,若期间无其他写操作,则 Q 读到的是 P 写入的值。
>
> **条件 3(写顺序一致性)**:对 X 的两次写之间若无其他处理器写 X,则最后写入的值保留(写顺序对所有处理器可见)。
#### 2.3 一致性协议
| 协议 | 原理 | 适用场景 |
|------|------|----------|
| **监听协议**(Snooping) | 所有 Cache 监听总线上的事务 | 小规模多处理器(总线互连) |
| **目录协议**(Directory) | 用目录记录每个内存块的状态 | 大规模多处理器(交叉开关互连) |
**MSI 协议**(监听协议的基础):
| 状态 | 含义 |
|:----:|------|
| **M**(Modified) | 该行已被修改,与主存不一致,只有本 Cache 有最新副本 |
| **S**(Shared) | 该行未被修改,多个 Cache 可能有副本 |
| **I**(Invalid) | 该行无效 |
> [!question] 监听协议为什么不适合大规模系统?
> 监听协议要求所有 Cache 监听总线,总线带宽成为瓶颈。当处理器数量增加时,总线冲突急剧增加,监听协议的可扩展性很差。目录协议通过点对点通信避免了这个问题。
### 三、并行系统性能分析
#### 3.1 远程访问的影响
在分布式共享内存系统中,远程内存访问的延迟远高于本地访问。
**CPI 计算**:
$$CPI = CPI_{base} + \text{远程访问率} \times \text{远程访问延迟(时钟数)}$$
> [!example] 远程访问性能影响
> 32 个处理器的集群,本地执行时间 10ns,CPI = 1.0。若有 0.5% 指令需远程访问(2000ns):
>
> 远程访问时钟 $= 2000 / 10 = 200$
>
> $CPI = 1.0 + 0.5\% \times 200 = 2.0$
>
> **结论**:0.5% 的远程访问使 CPI 翻倍,性能下降 50%。
#### 3.2 并行计算的挑战
| 挑战 | 说明 | 应对方法 |
|------|------|----------|
| **并行性有限** | Amdahl 定律限制了并行加速的上限 | 优化串行部分、提高并行比例 |
| **通信开销** | 处理器间数据交换的延迟 | 优化通信模式、减少同步 |
| **负载不均衡** | 各处理器工作量不等 | 动态调度、任务细分 |
#### 3.3 计算/通信比
$$\text{计算/通信比} = \frac{\text{计算量}}{\text{通信量}}$$
- 随数据规模增加而**增大**(计算量增长快于通信量)
- 随处理器数目增加而**减小**(每个处理器分到的计算减少,但通信开销相对增加)
> [!tip] 提高并行效率的关键
> 尽量提高计算/通信比:增大问题规模、优化通信模式(减少全局通信)、使用高带宽低延迟的互连网络。
### 四、设计定量原理在并行系统中的应用
1. **以经常性事件为重点**:优化本地访问路径(高频事件),而非远程访问
2. **Amdahl 定律**:并行加速受限于串行部分的比例
3. **CPU 性能公式**:远程访问增加了有效 CPI
4. **局部性原理**:数据局部性越好,远程访问越少,并行效率越高
## 关联笔记
- [[计算机系统结构/复习文档/计算机系统结构基础与定量原理]]
- [[计算机系统结构/复习文档/存储系统与Cache]]
- [[计算机系统结构/index|试题册索引]]