更新时间:2022-08-25 12:13
多指令流多数据流MIMD是用于实现并行性的技术。MIMD计算机具有多个异步和独立工作的处理器。在任何时钟周期内,不同的处理器可以在不同的数据片段上执行不同的指令,也即是同时执行多个指令流,而这些指令流分别对不同数据流进行操作。MIMD架构可以用于诸如计算机辅助设计、计算机辅助制造、仿真、建模、通信交换机的多个应用领域。 MIMD机器可以是共享存储器或分布式存储器类别。共享存储器机器包括UMA、NUMA、COMA等。分布式存储器机器包括NORAM等。
多指令流多数据流(Multipe Instructions Stream Multiple Data Stream,MIMD),是Michael J. Flynn提出的根据指令流、数据流的多倍性特征对计算系统进行分类的方法(通常称为Flynn分类法)。
MIMD是使用多个控制器来异步地控制多个处理器,能实现作业、任务、指令、数组各级全面并行的多机系统。多处理机属于MIMD。当前的高性能服务器与超级计算机大多具有多个处理机,能进行多任务处理,称多处理机系统。
并行计算机系统绝大部分为MIMD系统,包括并行向量处理机(PVP,Parallel Vector Processor),对称对多处理机(SMP,Symmetrical Multi Processor),规模并行处理机(MPP,Massively Parallel Processor),工作站机群(COW,Cluster Of Workstations),分布式共享存储系统(DSM,Distributed shared Memory)。
Michael J. Flynn提出按指令流和数据流的多倍性对计算系统分类(通常称为Flynn分类法)。
指令流:机器执行的指令序列。
数据流:由指令流调用的数据序列,包括输入数据和中间结果。
多倍性:在系统性能瓶颈部件上处于同一执行阶段的指令或数据的最大可能个数。
Flynn分类法
(1)单指令单数据流(Single Instruction Stream Single Data Stream,SISD)
SISD其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。流水线方式的单处理机有时也被当作SISD。
SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期内,CPU只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是SISD机器,如冯诺.依曼架构,如IBM PC机,早期的巨型机和许多8位的家用机等。
(2)单指令流多数据流(Single Instruction Stream Multiple Data Stream,SIMD)
SIMD是采用一个指令流处理多个数据流。
SIMD以并行处理机(阵列处理机)为代表,并行处理机包括多个重复的处理单元PU1~PUn,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同数据。这类机器在数字信号处理、图像处理、以及多媒体信息处理等领域非常有效。
Intel处理器实现的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说我们用的单核计算机基本上都属于SIMD机器。
(3)多指令流单数据流(Multiple Instruction Stream Single Data Stream,MISD)
MISD具有n个处理单元,按n条不同指令的要求对同一数据流及其中间结果进行不同的处理。一个处理单元的输出又将作为另一个处理单元的输入。
MISD是采用多个指令流来处理单个数据流。由于实际情况中,采用多指令流处理多数据流才是更有效的方法,因此MISD只是作为理论模型出现,没有投入到实际应用之中。
(4)多指令流多数据流(Multiple Instruction Stream MultipleData Stream,MIMD)
MIMD系统是指能实现作业、任务、指令、数组各级全面并行的多机系统。
MIMD机器可以同时执行多个指令流,这些指令流分别对不同数据流进行操作。最新的多核计算平台就属于MIMD的范畴,例如Intel和AMD的双核处理器等都属于MIMD。
按Flynn分类法对计算机分类举例
MIMD计算机包括:并行向量处理机(PVP)、对称对多处理机(SMP)、大规模并行处理机(MPP)、工作机群(COW)、分布式共享存储系统(DSM)。
MIMD计算机体系结构合一的结构模型 20 世纪 90 年代以后,上述各种并行计算机的体系结构呈现渐趋一致的趋势。促使体系结构渐 趋一致而最终合一的主要因素是:所有体系结构 都要求快速的高质量的互连网络;都希望尽量避 免或降低延迟;都希望能尽量隐藏通信代价;都必须支持不同的同步形式。
五种MIMD计算和结构特征比较
处理器都通过软件或硬件装置连接到“全局可用”存储器。操作系统通常保持其内存一致性。从程序员的角度来看,这种存储器模型比分布式存储器模型更好理解。而且,存储器一致性由操作系统管理而不是靠写入程序管理。当然共享存储模型也右明显的缺点:当处理器数量超过三十二个时,处理起来非常困难;共享存储器模型不如分布式存储器模型灵活。
UMA(均匀存储访问),COMA(全高速缓存存储访问)和NUMA(非均匀存储访问)都属于共享存储器(多处理机)。
UMA模型的特点:
① 物理存储器(SM1~SMm)被所有处理器均匀共享。所谓均匀共享是指:所有处理器访问任 何存储器所需的时间都相同。
② 每个处理器可带有私有高速缓存。
③ 外围设备以一定的形式被共享。
NUMA模型的特点:
① 被共享的存储器在物理上是分布在所有的处理器中,所有的本地存储器(LM1~LMn)的集合组成全局地址空间。
② 处理器访问存储器所需的时间不相等,访问本地存储器LM或通过群内互连网络( Cluster Interconnection Network,CIN)访问群内共享存储器 ( Cluster Shared Memory,CSM)费时较少,访问非本地存储器或通过全局互连网络 ( Global Interconnection Network,GIN)访问全局共享存储器 (Global Shared Memory,GSM)费时较多,即所谓非均匀存储访问。
③ 每个处理器可带有私有高速缓存,外设也可以以某种形式共享。
COMA模型的特点:
① 各处理器结点中没有存储层次结构,全部高速缓存组成全局地址空间。
② 利用分布的高速缓存目录D对远程高速缓 存进行访问。
③ COMA中的高速缓存容量一般都大于二级高速缓存容量。
④ 开始使用COMA时,数据可以任意分配到 高速缓存C中,在运行过程中,数据将被迁移到 使用该数据的处理器结点的高速缓存中。
在分布式存储器中,每个处理器具有其自己的单独存储器地址。对于要共享的数据,它必须作为消息从一个处理器传递到另一个处理器。例如NORMA就属于分布式存储器。
在一个分布存储的多处理机系统中,如果所有的存储 器都是私有的,仅能由本地处理器访问,就称为非远程储访问(NO-Remote Memory Access,NORMA)。
NORMA模型的特点:
① 每个结点都是由处理器( P)、本地存储 器( M)和(或) I/O 设备组成的自治计算机。多个结点由基于消息传递的互连网络互连。
② 所有的存储器都是私有的。
③ 绝大多数 NORMA 都不支持远程存储器的。