系统与内存架构
在设计程序或并发系统时,需要考虑不同的系统和内存架构风格。这是非常必要的,因为一种系统和内存风格可能适合一项任务,但可能容易在其他任务中出错。
支持并发的计算机系统架构
Michael Flynn 于 1972 年提出了对不同风格的计算机系统架构进行分类的分类法。该分类法定义了以下四种不同的样式 −
- 单指令流、单数据流 (SISD)
- 单指令流、多数据流 (SIMD)
- 多指令流、单数据流 (MISD)
- 多指令流、多数据流 (MIMD)。
单指令流、单数据流 (SISD)
顾名思义,此类系统将有一个连续的传入数据流和一个执行数据流的单个处理单元。它们就像具有并行计算架构的单处理器系统一样。以下是 SISD 的架构 −

SISD 的优点
SISD 架构的优点如下 −
- 它需要更少的功率。
- 多个核心之间不存在复杂的通信协议问题。
SISD 的缺点
SISD 架构的缺点如下 −
- SISD 架构的速度与单核处理器一样有限。
- 它不适合较大的应用程序。
单指令流、多数据流 (SIMD)
顾名思义,这种系统将具有多个传入数据流和多个处理单元,这些处理单元可以在任何给定时间执行单个指令。它们就像具有并行计算架构的多处理器系统一样。以下是 SIMD 的架构 −

SIMD 的最佳示例是显卡。这些卡有数百个单独的处理单元。如果我们谈论 SISD 和 SIMD 之间的计算差异,那么对于加法数组 [5, 15, 20] 和 [15, 25, 10],SISD 架构必须执行三个不同的加法运算。另一方面,使用 SIMD 架构,我们可以在单个加法运算中将它们相加。
SIMD 的优势
SIMD 架构的优势如下 −
仅使用一条指令即可对多个元素执行相同的操作。
可以通过增加处理器的核心数量来增加系统的吞吐量。
处理速度高于 SISD 架构。
SIMD 的缺点
SIMD 架构的缺点如下 −
- 处理器核心之间存在复杂的通信。
- 成本高于 SISD 架构。
多指令单数据 (MISD) 流
具有 MISD 流的系统具有多个处理单元,通过对同一数据集执行不同的指令来执行不同的操作。以下是 MISD 的架构 −

MISD 架构的代表尚未在商业上存在。
多指令多数据 (MIMD) 流
在使用 MIMD 架构的系统中,多处理器系统中的每个处理器可以并行地对不同的数据集独立执行不同的指令集。它与 SIMD 架构相反,在 SIMD 架构中,单个操作在多个数据集上执行。以下是 MIMD 的架构 −

普通多处理器使用 MIMD 架构。这些架构主要用于许多应用领域,例如计算机辅助设计/计算机辅助制造、模拟、建模、通信交换机等。
支持并发的内存架构
在使用并发和并行等概念时,总是需要加快程序速度。计算机设计师发现的一个解决方案是创建共享内存多计算机,即具有单个物理地址空间的计算机,该空间由处理器拥有的所有核心访问。在这种情况下,可以有许多不同的架构风格,但以下是三种重要的架构风格 −
UMA(统一内存访问)
在此模型中,所有处理器统一共享物理内存。所有处理器对所有内存字的访问时间均相同。每个处理器可能有一个私有缓存。外围设备遵循一组规则。
当所有处理器都平等地访问所有外围设备时,系统称为对称多处理器。当只有一个或几个处理器可以访问外围设备时,系统称为非对称多处理器。

非统一内存访问 (NUMA)
在 NUMA 多处理器模型中,访问时间随内存字的位置而变化。在这里,共享内存物理分布在所有处理器之间,称为本地内存。所有本地内存的集合形成一个全局地址空间,所有处理器都可以访问该空间。

仅缓存内存架构 (COMA)
COMA 模型是 NUMA 模型的专门版本。在这里,所有分布式主内存都转换为缓存内存。
