1. 中断
中断的基本概念
- 中断是计算机用于处理异步事件的重要机制,可打断当前指令的执行,切换到对应的中断服务程序进行处理。
- 工作流程分为以下阶段:
- 中断响应:保存断点、关闭中断、切换到中断处理程序。
- 保护现场:保存被中断程序的状态(如寄存器等)。
- 中断服务:执行特定中断处理程序。
- 恢复现场:恢复被中断程序的状态。
- 中断返回:返回断点,继续原程序执行。
中断与异常
- 中断:由外部设备或硬件请求触发,如 I/O 设备的完成信号。
- 异常:由程序执行中的内部事件触发,如除零错误或非法指令。
中断屏蔽技术
- 定义:通过控制中断优先级和屏蔽特定中断信号,确保关键任务不被打断。
- 实现方式:
- 屏蔽字寄存器:用寄存器的每一位代表某类中断,当该位置 1 时屏蔽对应中断。
- 优先级控制:高优先级中断可以打断低优先级中断。
- 应用:
- 用于处理多重中断,确保关键任务先执行。
- 在屏蔽低优先级中断的同时,允许高优先级中断响应。
2. 多处理器相关概念
1. 费林分类法
计算机科学家迈克尔·费林根据 指令流 和 数据流 的并行性将计算机体系结构划分为四类:
- SISD(单指令流单数据流):
- 普通的串行执行结构,如单核处理器。
- CPU 同时只能执行一条指令并处理一条数据。
- SIMD(单指令流多数据流):
- 单条指令同时对应多个数据,实现数据并行。
- 常用于矢量处理器、GPU 等。
- MISD(多指令流单数据流):
- 多条指令对同一数据进行处理,实际应用较少。
- MIMD(多指令流多数据流):
- 多条指令处理多个不同的数据,实现最高程度的并行。
- 应用于多核处理器、集群等。
单数据流 多数据流 单指令流 SISD SIMD 多指令流 MISD MIMD
2. SIMD 和向量处理器
- SIMD(单指令流多数据流):
- 同一个指令控制多个执行单元处理不同数据。
- 程序设计风格接近串行,但要求数据高度同构。
- 向量处理器:
- 实现 SIMD 架构的一种方式。
- 将数据从主存加载到 向量寄存器,通过流水线对寄存器中的数据执行操作,并将结果存回主存。
3. 硬件多线程
- 定义:通过在硬件层面支持多个线程并行执行,充分利用处理器资源。
- 实现方式:
- 细粒度多线程:
- 每执行一条指令后切换到另一个线程。
- 避免单线程停顿导致的资源浪费。
- 粗粒度多线程:
- 在高开销停顿(如缓存失效)时切换线程。
- 减少流水线切换带来的开销。
- 同时多线程(SMT):
- 在单处理器内同时执行多个线程,结合多发射和动态调度技术,实现指令级和线程级并行。
- 典型技术:英特尔的超线程技术(Hyper-Threading)。
- 细粒度多线程:
4. 多核处理器
- 定义:在一个芯片上集成多个核心(core),每个核心可独立执行任务。
- 特点:
- 每个核心有自己的寄存器和 L1/L2 缓存。
- 多个核心共享 L3 缓存和主存。
- 支持硬件多线程技术,可进一步提升性能。
- 逻辑内核与物理内核:
- 逻辑内核:硬件多线程技术下的虚拟核心。
- 物理内核:实际存在的核心。
5. 共享内存多处理器(SMP)
- 定义:多个处理器共享统一的物理地址空间。
- 通信方式:通过共享变量。
- 类型:
- UMA(统一内存访问):
- 所有处理器对内存访问的延迟相同。
- NUMA(非统一内存访问):
- 每个处理器有本地内存,访问本地内存更快。
- 访问其他处理器的内存会有额外开销。
- UMA(统一内存访问):
6. MPP
- 定义:每个处理器拥有独立的资源和地址空间,通过显式消息传递通信。
- 特点:
- 更好的并行性和可扩展性。
- 各处理器完全独立,资源不共享。
7. 集群
- 定义:通过网络将多个独立计算机节点组成一个并行系统。
- 特点:
- 每个节点有独立资源。
- 通信通过网络传递消息。
- 是分布式系统和大数据技术的重要基础。