计算机组成原理的学习笔记(11)-- CPU·其三 中断和异常多处理器相关概念

208 阅读4分钟

1. 中断

中断的基本概念

  • 中断是计算机用于处理异步事件的重要机制,可打断当前指令的执行,切换到对应的中断服务程序进行处理。
  • 工作流程分为以下阶段:
    1. 中断响应:保存断点、关闭中断、切换到中断处理程序。
    2. 保护现场:保存被中断程序的状态(如寄存器等)。
    3. 中断服务:执行特定中断处理程序。
    4. 恢复现场:恢复被中断程序的状态。
    5. 中断返回:返回断点,继续原程序执行。

中断与异常

  • 中断:由外部设备或硬件请求触发,如 I/O 设备的完成信号。
  • 异常:由程序执行中的内部事件触发,如除零错误或非法指令。

中断屏蔽技术

  • 定义:通过控制中断优先级和屏蔽特定中断信号,确保关键任务不被打断。
  • 实现方式:
    1. 屏蔽字寄存器:用寄存器的每一位代表某类中断,当该位置 1 时屏蔽对应中断。
    2. 优先级控制:高优先级中断可以打断低优先级中断。
  • 应用:
    • 用于处理多重中断,确保关键任务先执行。
    • 在屏蔽低优先级中断的同时,允许高优先级中断响应。

2. 多处理器相关概念

1. 费林分类法

计算机科学家迈克尔·费林根据 指令流数据流 的并行性将计算机体系结构划分为四类:

  1. SISD(单指令流单数据流):
    • 普通的串行执行结构,如单核处理器。
    • CPU 同时只能执行一条指令并处理一条数据。
  2. SIMD(单指令流多数据流):
    • 单条指令同时对应多个数据,实现数据并行。
    • 常用于矢量处理器、GPU 等。
  3. MISD(多指令流单数据流):
    • 多条指令对同一数据进行处理,实际应用较少。
  4. MIMD(多指令流多数据流):
    • 多条指令处理多个不同的数据,实现最高程度的并行。
    • 应用于多核处理器、集群等。
    单数据流多数据流
    单指令流SISDSIMD
    多指令流MISDMIMD

2. SIMD 和向量处理器

  • SIMD(单指令流多数据流):
    • 同一个指令控制多个执行单元处理不同数据。
    • 程序设计风格接近串行,但要求数据高度同构。
  • 向量处理器:
    • 实现 SIMD 架构的一种方式。
    • 将数据从主存加载到 向量寄存器,通过流水线对寄存器中的数据执行操作,并将结果存回主存。

3. 硬件多线程

  • 定义:通过在硬件层面支持多个线程并行执行,充分利用处理器资源。
  • 实现方式:
    1. 细粒度多线程:
      • 每执行一条指令后切换到另一个线程。
      • 避免单线程停顿导致的资源浪费。
    2. 粗粒度多线程:
      • 在高开销停顿(如缓存失效)时切换线程。
      • 减少流水线切换带来的开销。
    3. 同时多线程(SMT):
      • 在单处理器内同时执行多个线程,结合多发射和动态调度技术,实现指令级和线程级并行。
      • 典型技术:英特尔的超线程技术(Hyper-Threading)。

4. 多核处理器

  • 定义:在一个芯片上集成多个核心(core),每个核心可独立执行任务。
  • 特点:
    • 每个核心有自己的寄存器和 L1/L2 缓存。
    • 多个核心共享 L3 缓存和主存。
    • 支持硬件多线程技术,可进一步提升性能。
  • 逻辑内核与物理内核:
    • 逻辑内核:硬件多线程技术下的虚拟核心。
    • 物理内核:实际存在的核心。

5. 共享内存多处理器(SMP)

  • 定义:多个处理器共享统一的物理地址空间。
  • 通信方式:通过共享变量。
  • 类型:
    1. UMA(统一内存访问):
      • 所有处理器对内存访问的延迟相同。
    2. NUMA(非统一内存访问):
      • 每个处理器有本地内存,访问本地内存更快。
      • 访问其他处理器的内存会有额外开销。

6. MPP

  • 定义:每个处理器拥有独立的资源和地址空间,通过显式消息传递通信。
  • 特点:
    • 更好的并行性和可扩展性。
    • 各处理器完全独立,资源不共享。

7. 集群

  • 定义:通过网络将多个独立计算机节点组成一个并行系统。
  • 特点:
    • 每个节点有独立资源。
    • 通信通过网络传递消息。
    • 是分布式系统和大数据技术的重要基础。