Skip to content

408 > ### 计算机组成原理 > #### CO-05-08 多处理器(SISD/SIMD/MIMD/多核/SMP)


一、定位信息

项目内容
所属章节第5章 中央处理器
知识单元编号CO-05-08
主题多处理器(SISD/SIMD/MIMD/多核/SMP)
考纲要求了解Flynn分类法,理解多处理器系统的基本概念
历年考查频率中频(选择题为主)
预计分值2分(选择)

二、知识点讲解

1. Flynn分类法

Flynn分类法由Michael Flynn于1966年提出,按照指令流数据流的数目对计算机体系结构进行分类。

两个维度

  • 指令流(Instruction Stream):机器执行的指令序列
  • 数据流(Data Stream):指令流调用的数据序列
类型全称指令流数据流特点典型代表
SISD单指令流单数据流11传统顺序执行的单处理器早期单核CPU
SIMD单指令流多数据流1一条指令同时对多个数据操作GPU、向量处理器、SSE/AVX
MISD多指令流单数据流1多条指令对同一数据操作理论模型,实际很少见
MIMD多指令流多数据流多个处理器独立执行不同指令多核CPU、多处理器系统

2. SISD(Single Instruction stream, Single Data stream)

SISD是最传统的计算机架构:

  • 只有一个处理器
  • 每个时钟周期执行一条指令
  • 处理一个数据
  • 采用串行方式执行指令

特点

  • 硬件结构简单
  • 通过流水线技术可以提高性能
  • 无法利用数据级并行

3. SIMD(Single Instruction stream, Multiple Data stream)

SIMD是一种数据级并行技术:

  • 一条指令同时对多个数据元素执行相同的操作
  • 适合处理数组运算、图像处理、科学计算等数据密集型任务

典型实现

  • 向量处理器:具有向量寄存器和向量ALU,一条向量指令可以处理整个向量
  • GPU(图形处理器):数千个核心可以同时执行相同的指令
  • SSE/AVX指令集:x86架构的SIMD扩展,一条指令可同时处理4-16个浮点数
  • NEON指令集:ARM架构的SIMD扩展

SIMD的优势

  • 在相同时间内处理更多数据
  • 硬件利用率高
  • 特别适合规则的数据并行计算

SIMD的局限

  • 要求所有数据执行相同的操作
  • 不适合分支密集的代码(不同数据可能需要不同操作)
  • 需要数据对齐

4. MISD(Multiple Instruction stream, Single Data stream)

MISD是一种理论模型:

  • 多个处理器对同一数据执行不同的操作
  • 实际中极少有真正的MISD系统
  • 某些容错系统(多处理器对同一数据做相同计算以检查错误)可视为MISD的变体

5. MIMD(Multiple Instruction stream, Multiple Data stream)

MIMD是最通用的并行计算架构:

  • 多个处理器独立执行不同的指令,处理不同的数据
  • 每个处理器有自己的程序计数器和寄存器组
  • 处理器之间通过共享存储器或消息传递进行通信

MIMD的两种主要形式

对比维度共享存储多处理器(SMP)分布式存储多计算机
存储器组织所有处理器共享统一地址空间每个处理器有独立的本地存储器
通信方式通过共享变量(读写共享内存)通过消息传递(发送/接收消息)
编程难度相对简单(共享内存模型)较复杂(需要显式消息传递)
可扩展性受限于总线/内存带宽可扩展性好
典型代表多核CPU、对称多处理器集群、超级计算机
通信延迟低(内存访问延迟)高(网络通信延迟)

6. 多核处理器(Multi-core Processor)

定义:在一个处理器芯片上集成多个独立的处理核心(Core)。

基本结构

  • 每个核心有自己的ALU、寄存器组、L1 Cache
  • 所有核心通常共享L2/L3 Cache和主存
  • 核心之间通过片上互连网络(如总线、环形互联、Mesh)通信

多核与多处理器的区别

对比维度多核处理器多处理器系统
集成位置同一芯片上不同芯片上
核间通信片上互连,速度快系统总线/网络,速度较慢
共享资源通常共享L2/L3 Cache通常共享主存
功耗较低(片上通信省电)较高
成本较低(单芯片)较高(多芯片+主板)
典型产品Intel Core i7、AMD Ryzen服务器双路/四路系统

7. 对称多处理器(SMP, Symmetric Multi-Processing)

定义:多个处理器通过共享总线连接到共享存储器,每个处理器的地位是对称的(平等的)。

SMP的关键特征

  1. 对称性:每个处理器地位平等,可以平等地访问所有内存和I/O设备
  2. 共享内存:所有处理器共享统一的物理地址空间
  3. 单一操作系统:由一个操作系统统一管理所有处理器
  4. 通过总线通信:处理器之间通过系统总线或交叉开关连接

SMP的性能瓶颈

  • 总线带宽:多个处理器竞争总线带宽
  • 内存带宽:多个处理器同时访问共享内存
  • Cache一致性:多个处理器的Cache中可能有同一内存地址的不同副本,需要维护一致性

8. Cache一致性问题

在多处理器系统中,每个处理器都有自己的Cache。当一个处理器修改了Cache中的数据时,其他处理器Cache中同一地址的旧数据就变得无效。这就是Cache一致性问题

解决方案

(1)监听协议(Snooping Protocol)

  • 每个Cache控制器监听(snoop)总线上的所有访存操作
  • 当检测到其他处理器修改了自己Cache中也有的数据时,将自己Cache中的数据标记为无效
  • 典型协议:MESI协议(Modified/Exclusive/Shared/Invalid)
  • 适合基于总线的多处理器系统

(2)目录协议(Directory Protocol)

  • 使用一个集中式的目录记录每个内存块的状态和位置
  • 当修改数据时,通过目录通知所有持有该数据副本的Cache
  • 适合大规模多处理器系统

MESI协议的四种状态

状态含义说明
M(Modified)已修改数据已被修改,与主存不一致,只有本Cache有此数据
E(Exclusive)独占数据与主存一致,只有本Cache有此数据
S(Shared)共享数据与主存一致,可能有多个Cache持有此数据
I(Invalid)无效数据无效,不能使用

9. 硬件多线程

为了提高单个处理器核心的利用率,现代处理器通常支持硬件多线程

类型原理优点缺点
细粒度多线程每个时钟周期轮换执行不同线程能有效隐藏长延迟操作单个线程执行速度慢
粗粒度多线程只在长延迟事件(如Cache缺失)发生时才切换线程对单线程性能影响小切换开销大
同时多线程(SMT)在同一个时钟周期内,发射多个线程的指令充分利用功能单元硬件复杂度高

Intel的**超线程技术(Hyper-Threading)**就是同时多线程(SMT)的一种实现,一个物理核心可以同时执行两个线程。


三、记忆辅助

  1. Flynn分类口诀:"S单M多,I指令D数据。"SISD=单指令单数据,SIMD=单指令多数据,MISD=多指令单数据,MIMD=多指令多数据。

  2. "SIMD一条指令打一片":SIMD的核心特点是一条指令同时处理多个数据,像机关枪扫射一样。GPU、向量处理器都是SIMD。

  3. "MISD基本不存在":在Flynn四种分类中,MISD几乎没有实际应用,考试中很少考查,但需要知道它的定义。

  4. MESI协议四状态记忆:"M脏E独S共I无"——Modified是脏数据(已修改),Exclusive是独占,Shared是共享,Invalid是无效。

  5. SMP三要素:"对称+共享+单OS"——处理器对称平等、共享统一内存空间、由单一操作系统管理。


四、例题精解

例题1

题目:按照Flynn分类法,GPU(图形处理器)属于( )类型。 A. SISD B. SIMD C. MISD D. MIMD

四步解题

第一步:审题——GPU的Flynn分类。

第二步:分析——GPU包含数千个小型处理核心,这些核心通常执行相同的指令(由一个指令单元控制),但对不同的数据进行操作。这是典型的"单指令流多数据流"特征。

第三步:验证——虽然现代GPU也支持一定程度的MIMD特性(如warp内的分支发散),但按照Flynn的经典分类,GPU的核心执行模型属于SIMD。

第四步:答案——选 B(SIMD)


例题2

题目:在MESI协议中,当处理器P1要写入一个处于S(Shared)状态的Cache行时,需要执行的操作是( )。 A. 直接修改,状态变为M B. 先在总线上发送使无效信号,使其他Cache中该行变为I状态,然后修改,状态变为M C. 先将数据写回主存,再修改 D. 直接修改,状态变为E

四步解题

第一步:审题——MESI协议中,从S状态进行写操作的过程。

第二步:分析——S状态表示数据在多个Cache中有副本,且与主存一致。当P1要写入时,必须先通知其他Cache将该行标记为I(无效),确保只有P1拥有有效副本,然后才能修改。

第三步:验证——这个过程称为"写使无效"(Write Invalidate),是MESI协议维护Cache一致性的核心机制。写入后,P1的Cache行状态变为M(已修改,与主存不一致)。

第四步:答案——选 B


例题3

题目:下列关于多处理器系统的叙述中,正确的是( )。 A. 多核处理器的每个核心必须执行相同的程序 B. SMP系统中每个处理器都有独立的操作系统副本 C. SIMD适合数据级并行,MIMD适合线程级并行 D. 共享存储多处理器系统不存在Cache一致性问题

四步解题

第一步:审题——考查多处理器系统的基本概念。

第二步:分析

  • A:多核处理器的每个核心可以执行完全不同的程序,核心之间是独立的。A错误。
  • B:SMP由一个操作系统统一管理所有处理器,不是每个处理器有独立的OS。B错误。
  • C:SIMD是一条指令处理多个数据,属于数据级并行;MIMD是多个处理器独立执行不同指令,属于线程级(或任务级)并行。C正确。
  • D:共享存储系统中,多个处理器共享内存地址空间,每个处理器的Cache中可能有同一地址的不同副本,正是Cache一致性问题的主要来源。D错误。

第三步:验证——C的描述完全正确,SIMD和MIMD的并行层次不同。

第四步:答案——选 C


五、考情分析

维度说明
考查题型选择题为主(概念辨析/分类判断)
考查重点Flynn分类法、SMP特征、Cache一致性(MESI协议)、多核与多处理器的区别
命题趋势近年408考试中此部分分值较低,但概念辨析题每年都会出现
分值预估选择题2分
复习建议重点掌握Flynn分类和SMP/MESI协议的基本概念,不需要深入计算

六、易错点

  1. SIMD ≠ 多处理器:SIMD是一个处理器内部的数据并行机制(一条指令多个数据),不是多个处理器。不要将SIMD与MIMD混淆。

  2. GPU不完全是SIMD:虽然GPU的核心模型是SIMD,但现代GPU支持warp内的分支(通过屏蔽线程实现),具有一定的MIMD特性。408考试中通常将GPU归类为SIMD。

  3. SMP的"对称"是指处理器地位平等:不是指存储器对称。SMP中每个处理器可以平等地访问所有内存和I/O设备,没有主从之分。

  4. 多核 ≠ 多处理器:多核是单芯片多核心,多处理器是多芯片多CPU。虽然逻辑上类似,但在通信延迟、共享资源、功耗等方面有显著区别。

  5. Cache一致性问题只在多处理器/多核系统中出现:单处理器系统中,Cache对程序员是透明的,不存在一致性问题。一致性问题的核心是多个Cache持有同一地址的不同副本。

  6. MESI的E状态不是M状态:E(Exclusive)表示只有本Cache有此数据副本,且与主存一致;M(Modified)表示数据已被修改,与主存不一致。区别在于数据是否被修改过。


七、来源标注

来源说明
主要教材唐朔飞《计算机组成原理》第3版,第5章5.8节
辅助教材袁春风《计算机组成与系统结构》第3版
考纲依据全国硕士研究生招生考试计算机学科专业基础综合考试大纲(408)
补充参考Patterson & Hennessy《计算机组成与设计》第6章;《计算机体系结构:量化研究方法》第4章

考研全科复习资料 - 基于2026考研统考大纲