1. 简介
计算机系统结构的分类方法之一,1966年M.J.Flynn提出了如下定义:
- 指令流(Instruction Stream):机器执行的指令序列。
- 数据流(Data Stream):指令调用的数据序列,包括输入数据和中间结果。
- 多倍性(Multiplicity):在系统最受限制的元件上同时处于同一执行阶段指令或数据执行的最大可能个数。
2. 分类
Flynn按照指令和数据流不同的组织方式,计算机系统可分为四类:
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
单指令流单数据流 SISD | 控制部分:一个 处理器:一个 主存模块:多个 | 单处理器系统 | |
单指令流多数据流 SIMD | 控制部分:一个 处理器:多个 主存模块:多个 | 各处理器以异步的形式 执行同一条指令 | 并行处理机 阵列处理机 超级向量处理机 |
多指令流单数据流 MISD | 控制部分:多个 处理器:一个 主存模块:多个 | 被证明并不可能, 至少不实际 | 目前没有,有文献称流水线计算机为此类 |
多指令流多数据流 MIMD | 控制部分:多个 处理器:多个 主存模块:多个 | 能够实现作业、任务、指令等 各级全面并行 | 多处理机系统多计算机 |
(1)单指令流单数据流(Single Instruction stream and Single Data stream,SISD)。SISD其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。流水线方式的单处理机有时也被当作SISD.早期的计算机都是SISD机器,如冯诺.依曼架构,如IBM PC机,早期的巨型机和许多8位的家用机等。
(2)单指令流多数据流(Single Instruction stream and Multiple Data stream,SIMD)。SIMD以并行处理机(阵列处理机)为代表,并行处理机包括多个重复的处理单元,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同数据。相联处理机也属于这一类。
(3)多指令流单数据流(Multiple Instruction stream and Single Data stream,MISD)。MISD具有n个处理单元,按n条不同指令的要求对同一数据流及其中间结果进行不同的处理。一个处理单元的输出又作为另一个处理单元的输入。这类系统实际上很少见到。有文献把流水线看作多个指令部件,称流水线计算机是MISD.
(4)多指令流多数据流(Multiple Instruction stream and Multiple Data stream,MIMD)。MIMD是指能实现作业、任务、指令等各级全面并行的多机系统。多处理机属于MIMD.当前的高性能服务器与超级计算机大多具有多个处理机,能进行多任务处理,称为多处理机系统,不论是大规模并行处理机还是对称多处理机,都属于MIMD.