1. 多处理器
多处理器是指包含两个或更多中央处理器(CPU)的计算机系统,这些 CPU 共享对公共随机存取存储器(RAM)的完全访问权。使用多处理器的主要目的是为了提高系统的执行速度,此外还包括容错性和应用匹配等目标。多处理器主要分为两类:一类称为共享内存多处理器,另一类称为分布式内存多处理器。在共享内存多处理器中,所有 CPU 共享公共内存;而在分布式内存多处理器中,每个 CPU 都拥有自己的私有内存。!
两个或多个处理器与共享内存之间的互连通过以下三种方式实现:
1) 分时共享总线
2) 多端口内存
3) 交叉开关网络
1) 分时共享总线
!
正如其名,在这种方法中包含一条单一的共享总线,所有的处理器和内存单元都通过它进行通信。
假设 CPU-1 正在使用这条公共共享总线与内存单元交互,那么由于我们只有一条总线用于通信,所有其他的处理器必须处于空闲状态。
优点:
- 实现简单。
- 由于只有一条公共总线,实现成本非常低。
缺点:
- 数据传输速率较慢。
2) 多端口内存
与共享公共总线方法不同,这种方法为每个处理器提供了独立的总线来与内存模块通信。
假设 CPU-1 想要与内存模块 1 交互,那么端口 mm1 会被启用。同理,如果 CPU-4 想要与内存模块 4 交互,则端口 mm4 会被启用。因此,所有的进程都可以并行通信。如果多个 CPU 同时请求同一个内存模块,将按照 CPU-1、CPU-2、CPU-3、CPU-4 的顺序分配优先级。
!
3) 交叉开关网络
与多端口内存不同,这里在内存单元和 CPU 之间安装了一个交换网络。交换开关负责根据发出的请求,决定是否将请求传递给特定的内存模块。
!
优点:
- 数据吞吐率高。
缺点:
- 实现复杂,因为涉及大量的交换开关。
- 实现成本较高。
多处理器的应用
- 作为单处理器使用,例如单指令流单数据流(SISD)。
- 作为多处理器使用,例如单指令流多数据流(SIMD),通常用于向量处理。
- 在单一视角下的多条指令序列,例如多指令流单数据流(MISD),用于描述超线程或流水线处理器。
- 在单个系统内执行多个独立的指令序列,从多个视角出发,例如多指令流多数据流(MIMD)。
使用多处理器的好处
- 性能增强。
- 支持多应用。
- 应用内部的多任务处理。
- 高吞吐量和响应速度。
- CPU 之间的硬件共享。
优点:
性能提升: 多处理器系统可以比单处理器系统更快地执行任务,因为工作量可以分配给多个处理器。
更好的可扩展性: 与单处理器系统相比,多处理器系统更易于扩展,因为可以通过增加额外的处理器来处理增加的工作量。
提高可靠性: 即使一个处理器发生故障,多处理器系统也能继续运行,因为剩余的处理器可以继续执行任务。
降低成本: 与构建多个处理相同工作量的单处理器系统相比,多处理器系统可能更具成本效益。
增强并行性: 多处理器系统允许更大的并行性,因为不同的处理器可以同时执行不同的任务。
缺点:
复杂性增加: 多处理器系统比单处理器系统更复杂,并且它们需要额外的硬件、软件和管理资源。
更高的功耗: 与单处理器系统相比,多处理器系统运行需要更多的电力,这可能会增加系统运行和维护的成本。
编程困难: 开发能够有效利用多个处理器的软件可能具有挑战性,并且需要专业的编程技能。
同步问题: 多处理器系统…