Files
final-exam/计算机系统结构/重点复习/小题1-冯氏分类法与并行度.md
T

103 lines
5.0 KiB
Markdown
Raw Normal View History

2026-06-16 21:34:37 +08:00
---
tags:
- 计算机系统结构
- 重点复习
- Flynn分类
- 并行度
create time: 2026-06-16 21:21
---
# 小题 1 — 冯氏分类法与并行度排列
## 概述
本题考查 **Flynn(冯氏)分类法** 的四种类型及其**并行度从高到低的排列**。Flynn 分类法是计算机系统结构最基本的分类方法,几乎每年必考(选择题/判断题)。
> [!tip] 考试重点
> 重点掌握 MIMD > SIMD > SISD 的并行度排序,理解 MISD 为什么在实际中不存在。选择题常考"哪个不存在"和"多处理机属于哪种类型"。
## 正文
### 一、Flynn 分类法的基本原理
Flynn(1966)按照**指令流**(Instruction Stream)和**数据流**(Data Stream)的多倍性将计算机系统分为四类:
| 分类维度 | 单倍性 | 多倍性 |
|:--------:|:------:|:------:|
| **指令流** | 一次只执行一条指令 | 同时执行多条不同指令 |
| **数据流** | 一次只处理一个数据 | 同时处理多个数据 |
### 二、四种类型详解
| 类型 | 全称 | 指令流 | 数据流 | 并行度 | 典型代表 |
|:----:|------|:------:|:------:|:------:|----------|
| **SISD** | Single Instruction, Single Data | 单 | 单 | **最低** | 传统单处理器 |
| **SIMD** | Single Instruction, Multiple Data | 单 | 多 | **中等** | 向量处理器、GPU |
| **MISD** | Multiple Instruction, Single Data | 多 | 单 | **理论分类** | 无实际计算机 |
| **MIMD** | Multiple Instruction, Multiple Data | 多 | 多 | **最高** | 多处理器、集群 |
> [!question] 思考:为什么 SIMD 的并行度比 SISD 高?
> SIMD 虽然只有一条指令流,但这条指令**同时作用于多个数据**。例如向量加法 `C = A + B`,SIMD 处理器可以同时对 64 个元素对进行加法,相当于同时完成了 64 个操作。而 SISD 一次只能处理一个元素对。
### 三、并行度从高到低排列
$$\text{MIMD} > \text{SIMD} > \text{SISD}$$
> [!abstract]- 答案
> **并行度排序:MIMD > SIMD > SISD**。MISD 为理论分类,无实际计算机,通常不参与排序。
> [!note] 排序理由
>
> **MIMD 并行度最高**:多个处理器各自独立执行不同的指令流处理不同的数据流。每个处理器都能独立工作,既有指令级并行又有数据级并行。例如 32 个处理器的集群,每个处理器同时运行不同的程序。
>
> **SIMD 并行度中等**:虽然只有一条指令流,但该指令同时作用于多个数据元素。并行度取决于数据通道宽度(如一次处理 128/256/512 位数据)。GPU 的一个 warp/wavefront 就是典型的 SIMD 执行模式。
>
> **SISD 并行度最低**:传统的单处理器,一次执行一条指令处理一个数据。虽然现代处理器内部有流水线、超标量等技术,但从 Flynn 分类的视角看仍是 SISD。
>
> **MISD 不参与排序**:多条指令同时处理同一数据——这种场景在实际中几乎不存在。某些容错计算机(如航天系统中对同一数据用多个独立算法验证)被**部分学者**归为 MISD,但学界主流观点认为 MISD 仅为理论分类。
### 四、各类的典型代表与特征对比
```mermaid
graph TD
ROOT["Flynn Classification"] --> U["Uniprocessor"]
ROOT --> P["Multiprocessor"]
U --> SISD["SISD: Traditional CPU"]
U --> SIMD["SIMD: Vector/GPU"]
P --> MISD["MISD: Theoretical Only"]
P --> MIMD["MIMD: Multi-CPU/Cluster"]
SIMD --> SIMD_APP["Matrix, Image Processing"]
MIMD --> MIMD_APP["Server, Supercomputer"]
```
| 特征 | SISD | SIMD | MISD | MIMD |
|------|:----:|:----:|:----:|:----:|
| 控制单元数量 | 1 | 1 | 多 | 多 |
| 处理器数量 | 1 | 多 | 多 | 多 |
| 指令同步 | 不需要 | 需要严格同步 | 复杂 | 独立执行 |
| 编程难度 | 低 | 中(需向量化) | - | 高(需并行编程) |
| 实际存在 | 是 | 是 | **否** | 是 |
> [!question] 现代处理器属于哪种类型?
> 现代多核处理器(如 Intel i7 的 8 核)从 Flynn 分类看属于 **MIMD**——每个核心可以独立执行不同的指令流。但单个核心内部的 SIMD 扩展(如 AVX-512)使每个核心也具备 SIMD 能力。因此现代处理器是 **MIMD + SIMD 的混合体**。
### 五、易混淆点辨析
| 问题 | 答案 |
|------|------|
| 多处理机属于哪种? | **MIMD**(B 卷选择题原题) |
| GPU 属于哪种? | **SIMD**(单指令多数据流) |
| 哪种类型不存在? | **MISD**(A 卷选择题原题) |
| 向量处理器属于哪种? | **SIMD** |
| 并行度最高的类型? | **MIMD** |
> [!warning] 考试陷阱
> 题目可能问"Flymn 分类法"(注意有些试卷会拼错为 Flymn),但指的都是 Flynn 分类法。另外要注意区分**多处理器**(multiprocessor,共享内存,MIMD)和**多计算机**(multicomputer,分布式内存,MIMD)——两者都属于 MIMD。
## 关联笔记
- [[计算机系统结构/复习文档/计算机系统结构基础与定量原理]]
- [[小题10-并行计算机系统结构分类]]
- [[大题1-CPU性能参数计算]]