计算机组成知识点整理(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 模型

可达到的GFLOPS/s=min(峰值存储带宽×算术强度,峰值浮点性能)\text{可达到的} \mathrm{GFLOPS/s} = \min(\text{峰值存储带宽} \times \text{算术强度}, \text{峰值浮点性能})

  • 优化浮点性能:平衡加法和乘法、提高指令级并行性并使用 SIMD
  • 优化内存性能:软件预取(避免取数阻塞)、内存关联(避免非本地数据访问)

历年真题

  1. (本题缺图)四种硬件多线程技术
  • 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-:并行处理器/
Author
Nuoyan Chen
Posted on
May 28, 2025
Licensed under