SISD、SIMD、MIMD的基本概念
单指令流单数据流(SISD)结构
该计算机通常仅包含一个处理器和一个存储器。
特性:
- 各指令序列只能并发、不能并行,每条指令处理一两个数据。
- 不是数据级并行技术。
硬件组成:
- 一个处理器+一个主存储器
- 若采用指令流水线,需设置多个功能部件,采用多模块交叉存储器。
前面介绍的计算机架构都是SISD结构。
单指令流多数据流(SIMD)
特性:
- 各指令序列只能并发、不能并行,但每条指令可同时处理多个数据。
- 是一个数据级并行技术。
硬件组成:
- 一个指令控制部件(CU)+多个处理单元/执行单元(如ALU)+多个局部存储器+一个主存储器
- 每个执行单元有各自的寄存器组、局部寄存器及地址寄存器。
- 不同执行单元执行同一条指令,处理不同的数据。
多指令流单数据流(MISD)
能同时执行多条指令,处理同一个数据,现实中不存在这种计算机。
多指令流多数据流(MIMD)
如现实中的intel i5或 i7等处理器。
特性:
- 各指令序列并行执行,分别处理多个不同的数据。
- 是一种线程级并行,甚至是线程级以上并行技术。
进一步分类可分为:
多处理器系统
特性:
各处理器之间,可以通过LOAD/STORE指令,访问同一个主存储器,可通过主存相互传送数据。
硬件组成:
- 一台计算机内,包含多个处理器+一个主存储器。
- 多个处理器共享单一的物理地址空间。
多计算机系统(如分布式计算系统)
特性:
各计算机之间,不能通过LOAD/STORE指令直接进行访问对方的存储器,只能通过“消息传递”相互传送数据。
硬件组成:
- 由多个计算机组成,因此由多个处理器+多个主存储器
- 每台计算机拥有各自的私有存储器,物理地址空间相互独立。
向量处理器(SIMD思想的进阶应用)
特性:
- 一条指令的处理对象是”向量”
- 擅长对向量型数据并行计算、浮点数运算,常被用超级计算机中,处理科学研究中巨大运算量。
硬件组成:
- 多个处理单元,多组“向量寄存器”。
- 主存储器采用“多个端口同时读取”的交叉多模块存储器。
- 主存储器大小限定了机器的解题规模,因此要有多容量、集中式的主存储器。