摘要:计算机系统架构主要分为SISD、SIMD、MISD和MIMD四类。SISD为单核串行处理SIMD通过单指令处理多数据MIMD支持多处理器并行处理不同任务。内存架构包括UMA统一访问、NUMA非均匀访问和COMA全缓存三种模式分别适用于不同的并行计算需求。这些架构各具特点需要根据具体应用场景选择合适的方案。目录系统与内存架构支持并发的计算机系统架构单指令流单数据流SISDSISD 架构的优势SISD 架构的劣势单指令流多数据流SIMDSIMD 架构的优势SIMD 架构的劣势多指令流单数据流MISD多指令流多数据流MIMD支持并发的内存架构均匀存储访问UMA非均匀存储访问NUMA全缓存存储架构COMA系统与内存架构在设计程序或并发系统时需要考虑不同的系统和内存架构类型。这一点至关重要因为某一种系统与内存架构可能适用于某类任务但在处理另一类任务时却容易出现错误。支持并发的计算机系统架构1972 年迈克尔・弗林提出了一套用于划分计算机系统架构类型的分类法该分类法将架构分为以下四种类型单指令流单数据流SISD单指令流多数据流SIMD多指令流单数据流MISD多指令流多数据流MIMD单指令流单数据流SISD顾名思义这类系统仅有一个串行输入的数据流且只有一个处理单元来执行该数据流。它们与采用并行计算架构的单处理器系统类似。SISD 架构的优势功耗较低不存在多核心间复杂的通信协议问题SISD 架构的劣势运行速度受限与单核处理器类似不适用于大型应用程序单指令流多数据流SIMD顾名思义这类系统拥有多个输入数据流且配备多个处理单元可在任意指定时间对单条指令进行处理。它们与采用并行计算架构的多处理器系统类似。显卡是 SIMD 架构最典型的例子这类硬件拥有数百个独立的处理单元。以数组相加为例对比 SISD 和 SIMD 的计算差异计算数组 **[5, 15, 20]与[15, 25, 10]** 相加时SISD 架构需要执行三次独立的加法操作而 SIMD 架构仅需一次加法操作就能完成两组数组的对应元素相加。SIMD 架构的优势仅通过单条指令就能对多个数据元素执行相同操作可通过增加处理器核心数提升系统的吞吐量处理速度高于 SISD 架构SIMD 架构的劣势处理器的多个核心之间存在复杂的通信交互成本高于 SISD 架构多指令流单数据流MISD采用 MISD 架构的系统拥有多个处理单元这些单元会对同一数据集执行不同的指令完成各类不同的操作。目前商用的 MISD 架构产品尚未面世。多指令流多数据流MIMD采用 MIMD 架构的系统中多处理器系统的每个处理器都能独立并行地对不同数据集执行不同的指令集。这与 SIMD 架构恰好相反SIMD 架构是用单条操作指令处理多个数据集。常规的多处理器均采用 MIMD 架构该架构主要应用于多个领域包括计算机辅助设计 / 计算机辅助制造、仿真建模、通信交换机等。支持并发的内存架构在实现并发和并行相关功能时提升程序运行速度是核心需求之一。计算机设计人员给出的一种解决方案是打造共享内存多计算机即这类计算机拥有单一的物理地址空间处理器的所有核心均可对该空间进行访问。共享内存多计算机有多种架构类型其中三类核心架构如下均匀存储访问UMA在该模型中所有处理器对物理内存进行统一共享且访问所有内存字的耗时完全相同。每个处理器可配备私有高速缓存外设则需遵循既定的访问规则。基于 UMA 模型的系统分为两种若所有处理器都能平等访问所有外设该系统为对称多处理器若仅有一个或少数几个处理器可访问外设该系统为非对称多处理器。非均匀存储访问NUMA在 NUMA 多处理器模型中访问内存字的耗时会随内存字的存储位置不同而变化。该模型中共享内存被物理分布在所有处理器中这些分散的内存被称为本地内存所有本地内存共同构成一个全局地址空间供所有处理器访问。全缓存存储架构COMACOMA 模型是 NUMA 模型的一种专用改进版本在该模型中所有分布式的主内存都被改造为高速缓存。