多指令流多数据流
多指令流多数据流MIMD是用于实现并行性的技术。MIMD计算机具有多个异步和独立工作的处理器。在任何时钟周期内,不同的处理器可以在不同的数据片段上执行不同的指令,也即是同时执行多个指令流,而这些指令流分别对不同数据流进行操作。MIMD架构可以用于诸如计算机辅助设计、计算机辅助制造、仿真、建模、通信交换机的多个应用领域。 MIMD机器可以是共享存储器或分布式存储器类别。共享存储器机器包括UMA、NUMA、COMA等。分布式存储器机器包括NORAM等。
基本信息
- 中文名
多指令流多数据流
- 外文名
Multiplone Instructi Stream Multiple Data Stream
- 简称
MIMD
- 含义
实现空间上的并行性的技术
- 应用学科
计算机
- 适用领域范围
计算机、互联网、人工智能
定义
多指令流多数据流(Multipe Instructions Stream Multiple Data Stream,MIMD),是Michael J. Flynn提出的根据指令流、数据流的多倍性特征对计算系统进行分类的方法(通常称为Flynn分类法)。1
MIMD是使用多个控制器来异步地控制多个处理器,能实现作业、任务、指令、数组各级全面并行的多机系统。多处理机属于MIMD。当前的高性能服务器与超级计算机大多具有多个处理机,能进行多任务处理,称多处理机系统。2
并行计算机系统绝大部分为MIMD系统,包括并行向量处理机(PVP,Parallel Vector Processor),对称对多处理机(SMP,Symmetrical Multi Processor),规模并行处理机(MPP,Massively Parallel Processor),工作站机群(COW,Cluster Of Workstations),分布式共享存储系统(DSM,Distributed shared Memory)。1
计算机系统分类
Michael J. Flynn提出按指令流和数据流的多倍性对计算系统分类(通常称为Flynn分类法)。
指令流:机器执行的指令序列。
数据流:由指令流调用的数据序列,包括输入数据和中间结果。
多倍性:在系统性能瓶颈部件上处于同一执行阶段的指令或数据的最大可能个数。2
Flynn分类法2
单指令流 | 多指令流 | |
单数据流 | 单指令单数据流(SISD) | 多指令流单数据流(MISD) |
多数据流 | 单指令流多数据流(SIMD) | 多指令流多数据流(MIMD) |
(1)单指令单数据流(Single Instruction Stream Single Data Stream,SISD)
SISD其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。流水线方式的单处理机有时也被当作SISD。2
SISD机器是一种传统的串行计算机,它的硬件不支持任何形式的并行计算,所有的指令都是串行执行。并且在某个时钟周期内,CPU只能处理一个数据流。因此这种机器被称作单指令流单数据流机器。早期的计算机都是SISD机器,如冯诺.依曼架构,如IBM PC机,早期的巨型机和许多8位的家用机等。
(2)单指令流多数据流(Single Instruction Stream Multiple Data Stream,SIMD)
SIMD是采用一个指令流处理多个数据流。
SIMD以并行处理机(阵列处理机)为代表,并行处理机包括多个重复的处理单元PU1~PUn,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同数据。这类机器在数字信号处理、图像处理、以及多媒体信息处理等领域非常有效。2
Intel处理器实现的MMXTM、SSE(Streaming SIMD Extensions)、SSE2及SSE3扩展指令集,都能在单个时钟周期内处理多个数据单元。也就是说我们用的单核计算机基本上都属于SIMD机器。
(3)多指令流单数据流(Multiple Instruction Stream Single Data Stream,MISD)