在设计程序或并发系统时,需要考虑不同的系统和内存架构风格。 这是非常必要的,因为一个系统和内存风格可能适合于一项任务,但可能会出错以适应其他任务。
支持并发的计算机系统体系结构
1972年,迈克尔弗林(Michael Flynn)给出了用于分类不同风格计算机系统体系结构的分类法。 该分类法定义了以下四种不同的样式 -
- 单指令流,单数据流(SISD)
- 单指令流,多数据流(SIMD)
- 多指令流,单数据流(MISD)
- 多指令流,多数据流(MIMD)。
1. 单指令流,单数据流(SISD)
顾名思义,这种类型的系统将有一个连续的输入数据流和一个处理单元来执行数据流。 它们就像具有并行计算体系结构的单处理器系统一样。 以下是SISD的架构 -
SISD的优点
SISD架构的优点如下 -
- 它需要更少的电力。
- 多核之间没有复杂的通信协议问题。
SISD的缺点
SISD架构的缺点如下 -
- SISD架构的速度与单核处理器一样有限。
- 它不适合更大的应用程序。
2. 单指令流,多数据流(SIMD)
顾名思义,这种类型的系统会有多个输入数据流和多个处理单元,这些单元可以在任何给定时间作用于单条指令。 它们就像具有并行计算架构的多处理器系统。 以下是SIMD的架构 -
SIMD最好的例子就是显卡。显卡拥有数百个单独的处理单元。 如果要谈论SISD和SIMD之间的计算差异,那么对于添加数组[5,15,20]
和[15,25,10]
,SISD架构将不得不执行三种不同的添加操作。 另一方面,通过SIMD体系结构,我们可以添加一个单独的添加操作。
SIMD的优点
SIMD架构的优点如下 -
- 多个元素的相同操作只能使用一条指令执行。
- 通过增加处理器的核心数量可以增加系统的吞吐量。
- 处理速度高于SISD架构。
SIMD的缺点
SIMD架构的缺点如下 -
- 处理器的核心数量之间存在复杂的通信。
- 成本高于SISD架构。
3. 多指令单数据(MISD)流
具有MISD流的系统通过在同一数据集上执行不同指令来执行不同操作的处理单元数量。 以下是MISD的架构 -
MISD体系结构尚未商业化。
4. 多指令多数据(MIMD)流
在使用MIMD体系结构的系统中,多处理器系统中的每个处理器可以并行地在不同的一组数据集上独立地执行不同的指令集。 与SIMD体系结构相反,单一操作在多个数据集上执行。 以下是MIMD的架构 -
普通的多处理器使用MIMD体系结构。 这些架构基本上应用于许多应用领域,如计算机辅助设计/计算机辅助制造,仿真,建模,通信交换机等。
内存架构支持并发
在处理并发性和并行性等概念的同时,始终需要加速这些程序。 计算机设计人员发现的一个解决方案是创建共享内存多计算机,即具有单个物理地址空间的计算机,该计算机可以被处理器拥有的所有内核访问。 在这种情况下,可以有多种不同风格的架构,但以下是三种重要的架构风格 -
UMA(统一内存访问)
在此模型中,所有处理器均匀分享物理内存。 所有处理器对所有内存字都有相同的访问时间。 每个处理器可以有一个私有缓存存储器。 外围设备遵循一套规则。
当所有的处理器对所有的外围设备有相同的访问权限时,系统被称为对称多处理器。 当只有一个或几个处理器可以访问外围设备时,系统称为非对称多处理器。
非均匀内存访问(NUMA)
在NUMA多处理器模型中,访问时间随内存字的位置而变化。 这里,共享存储器物理地分布在所有处理器中,称为本地存储器。 所有本地存储器的集合形成一个全局地址空间,所有处理器都可以访问它。
仅缓存内存体系结构(COMA)
COMA模型是NUMA模型的专用版本。 这里,所有分配的主存储器都被转换成高速缓冲存储器。