计算机组成知识点整理(6):并行处理器
Last updated on June 7, 2025 pm
这是SJTU-ICE2603《计算机组成》课程的知识点整理系列。本文整理部分为“第6章:并行处理器”。
6.1 引言
- 多处理器优势:可伸缩性、高可用性、高功耗效率
- 任务级(进程级)并行:运行多个相互独立的任务,能提高吞吐量
- 并行处理程序:多个处理器上运行单个程序
- 硬件与软件分类:
- 硬件分类:串行与并行
- 软件分类:顺序(如矩阵乘法)与并发(如操作系统)
- 顺序/并发软件可运行于串行/并行硬件
- 并行编程的困难:调度和划分、均衡负载、通信开销
- 多处理器加速比:
- Amdahl定律:加速比受限于程序中的顺序部分
- 强比例缩放:保持问题规模不变时所测量的加速比,提升困难
- 弱比例缩放:问题规模与处理器的数量成比例增长时所测量的加速比
6.2 SISD、MIMD、SIMD、SPMD 和向量机
6.2.1 指令流与数据流
- SISD:单指令流单数据流,如单处理器
- SIMD:单指令流多数据流,数据级并行,如向量处理器
- MIMD:多指令流多数据流,线程/进程级并行,如多核 CPU、集群
- SPMD:单程序多数据流,即单个程序运行在所有处理器上
6.2.2 向量处理器
- 特点:高度流水的功能单元,具有一组向量寄存器
- 优势:
- 降低指令带宽
- 减少流水线停顿
- 简化数据并行编程
- 减少数据冒险的硬件检查
- 可通过交叉存储器降低访存开销
- 降低功耗和能耗
- 避免循环导致的控制冒险
- 与多媒体扩展的区别:数据宽度可变、支持按步长存取
6.3 硬件多线程
- 线程:包括程序计数器、寄存器状态和栈,通常共享地址空间
- 类型:
- 细粒度多线程:在每个时钟周期之后切换线程
- 能隐藏停顿造成的吞吐量损失,但单个线程执行速度减慢
- 粗粒度多线程:仅在长时间阻塞时切换线程(如末级 cache 缺失)
- 不会减慢单个线程的执行速度,但无法隐藏短阻塞,降低吞吐量损失有限
- 同时多线程(SMT):多发射和动态调度多线程指令
- 充分利用并行功能单元、动态调度解决相关性问题
- 线程级并行、指令级并行
- 细粒度多线程:在每个时钟周期之后切换线程
6.4 共享内存多处理器(SMP)
- 特点:为所有处理器提供统一物理地址空间
- 存储器访问时间:UMA(统一)、NUMA(非统一)
- 同步机制:用锁来同步共享变量
6.5 GPU
- 与 CPU 对比:
- 高度数据并行,依靠硬件多线程而非多级 cache 来隐藏内存延迟
- 存储器位宽和带宽更大(面向高带宽而非低延迟)
- 结构:是由多线程 SIMD 处理器组成的 MIMD
6.6 集群与仓储级计算机(WSC)
- 消息传递:每个处理器具有私有物理地址空间,硬件在处理器之间收发消息
- 集群:使用 I/O 系统相连的计算机集合,每台计算机有私有的存储器和 OS
- 优点:高可用性、伸缩性、低成本
- 缺点:管理成本高、互联带宽低
6.7 网络拓扑
- 特征:成本、性能、功耗、硅片上的可连通性
- 性能指标:
- 无负载延迟、拥塞延迟
- 总网络带宽:峰值带宽,即各链路带宽总和
- 二分带宽:最差分割下的跨分区带宽
- 常见拓扑:
- 环:低成本,二分带宽低
- 全连接:高性能,成本高
6.8 基准测试与性能模型
- 算术密度:存储器每访问一字节所包含的浮点运算比例
- Roofline 模型:
- 优化浮点性能:平衡加法和乘法、提高指令级并行性并使用 SIMD
- 优化内存性能:软件预取(避免取数阻塞)、内存关联(避免非本地数据访问)
历年真题
- (本题缺图)四种硬件多线程技术
- A:a为超标量、b为细粒度多线程、c为粗粒度多线程、d为同时多线程;
- B:a为超标量、b为粗粒度多线程、c为细粒度多线程、d为同时多线程;
- C:a为超标量、b为同时多线程、c为粗粒度多线程、d为细粒度多线程;
- D:a为超标量、b为同时多线程、c为细粒度多线程、d为粗粒度多线程;
Reference
https://gist.github.com/smallaccount101/6324d7c82d103783f21b7cc6da7d0f7c
计算机组成知识点整理(6):并行处理器
https://cny123222.github.io/2025/05/28/计算机组成知识点整理-6-:并行处理器/