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